Skip to content

Commit f4ea1a1

Browse files
committed
clean code
1 parent 10d0450 commit f4ea1a1

File tree

5 files changed

+53
-65
lines changed

5 files changed

+53
-65
lines changed

models/webhook/webhook.go

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ import (
2424

2525
// MetaSettings represents the metadata settings for webhook
2626
type MetaSettings struct {
27-
PayloadOptimization *PayloadOptimizationConfig `json:"payload_optimization,omitempty"` // Payload optimization configuration
27+
PayloadOptimization PayloadOptimizationConfig `json:"payload_optimization"` // Payload optimization configuration
2828
}
2929

3030
// PayloadOptimizationConfig represents the configuration for webhook payload optimization
3131
type PayloadOptimizationConfig struct {
32-
Files *PayloadOptimizationItem `json:"files,omitempty"` // Files optimization config
33-
Commits *PayloadOptimizationItem `json:"commits,omitempty"` // Commits optimization config
32+
Files PayloadOptimizationItem `json:"files"` // Files optimization config
33+
Commits PayloadOptimizationItem `json:"commits"` // Commits optimization config
3434
}
3535

3636
// PayloadOptimizationItem represents a single optimization item configuration
@@ -40,17 +40,17 @@ type PayloadOptimizationItem struct {
4040
}
4141

4242
// DefaultMetaSettings returns the default webhook meta settings
43-
func DefaultMetaSettings() *MetaSettings {
44-
return &MetaSettings{
43+
func DefaultMetaSettings() MetaSettings {
44+
return MetaSettings{
4545
PayloadOptimization: DefaultPayloadOptimizationConfig(),
4646
}
4747
}
4848

4949
// DefaultPayloadOptimizationConfig returns the default payload optimization configuration
50-
func DefaultPayloadOptimizationConfig() *PayloadOptimizationConfig {
51-
return &PayloadOptimizationConfig{
52-
Files: &PayloadOptimizationItem{Enable: false, Limit: 0},
53-
Commits: &PayloadOptimizationItem{Enable: false, Limit: 0},
50+
func DefaultPayloadOptimizationConfig() PayloadOptimizationConfig {
51+
return PayloadOptimizationConfig{
52+
Files: PayloadOptimizationItem{Enable: false, Limit: 0},
53+
Commits: PayloadOptimizationItem{Enable: false, Limit: 0},
5454
}
5555
}
5656

@@ -383,7 +383,7 @@ func DeleteWebhookByOwnerID(ctx context.Context, ownerID, id int64) error {
383383
}
384384

385385
// GetMetaSettings returns the webhook meta settings
386-
func (w *Webhook) GetMetaSettings() *MetaSettings {
386+
func (w *Webhook) GetMetaSettings() MetaSettings {
387387
if w.MetaSettings == "" {
388388
return DefaultMetaSettings()
389389
}
@@ -394,25 +394,16 @@ func (w *Webhook) GetMetaSettings() *MetaSettings {
394394
return DefaultMetaSettings()
395395
}
396396

397-
// Ensure payload optimization config is initialized
398-
if settings.PayloadOptimization == nil {
399-
settings.PayloadOptimization = DefaultPayloadOptimizationConfig()
400-
}
401-
402-
return &settings
397+
return settings
403398
}
404399

405400
// GetPayloadOptimizationConfig returns the payload optimization configuration
406-
func (w *Webhook) GetPayloadOptimizationConfig() *PayloadOptimizationConfig {
401+
func (w *Webhook) GetPayloadOptimizationConfig() PayloadOptimizationConfig {
407402
return w.GetMetaSettings().PayloadOptimization
408403
}
409404

410405
// SetMetaSettings sets the webhook meta settings
411-
func (w *Webhook) SetMetaSettings(settings *MetaSettings) error {
412-
if settings == nil {
413-
settings = DefaultMetaSettings()
414-
}
415-
406+
func (w *Webhook) SetMetaSettings(settings MetaSettings) error {
416407
data, err := json.Marshal(settings)
417408
if err != nil {
418409
return fmt.Errorf("failed to marshal webhook meta settings: %w", err)
@@ -423,11 +414,8 @@ func (w *Webhook) SetMetaSettings(settings *MetaSettings) error {
423414
}
424415

425416
// SetPayloadOptimizationConfig sets the payload optimization configuration
426-
func (w *Webhook) SetPayloadOptimizationConfig(config *PayloadOptimizationConfig) error {
417+
func (w *Webhook) SetPayloadOptimizationConfig(config PayloadOptimizationConfig) error {
427418
settings := w.GetMetaSettings()
428-
if config == nil {
429-
config = DefaultPayloadOptimizationConfig()
430-
}
431419
settings.PayloadOptimization = config
432420
return w.SetMetaSettings(settings)
433421
}

models/webhook/webhook_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -342,13 +342,13 @@ func TestWebhookPayloadOptimization(t *testing.T) {
342342
assert.Equal(t, 0, config.Commits.Limit)
343343

344344
// Test setting configuration via meta settings
345-
metaSettings := &MetaSettings{
346-
PayloadOptimization: &PayloadOptimizationConfig{
347-
Files: &PayloadOptimizationItem{
345+
metaSettings := MetaSettings{
346+
PayloadOptimization: PayloadOptimizationConfig{
347+
Files: PayloadOptimizationItem{
348348
Enable: true,
349349
Limit: 5,
350350
},
351-
Commits: &PayloadOptimizationItem{
351+
Commits: PayloadOptimizationItem{
352352
Enable: true,
353353
Limit: -3,
354354
},
@@ -371,12 +371,12 @@ func TestWebhookPayloadOptimization(t *testing.T) {
371371
assert.True(t, webhook.IsPayloadOptimizationEnabled())
372372

373373
// Test backward compatibility with direct payload optimization config setting
374-
newConfig := &PayloadOptimizationConfig{
375-
Files: &PayloadOptimizationItem{
374+
newConfig := PayloadOptimizationConfig{
375+
Files: PayloadOptimizationItem{
376376
Enable: false,
377377
Limit: 10,
378378
},
379-
Commits: &PayloadOptimizationItem{
379+
Commits: PayloadOptimizationItem{
380380
Enable: false,
381381
Limit: 20,
382382
},

routers/api/v1/utils/hook.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -257,30 +257,30 @@ func addHook(ctx *context.APIContext, form *api.CreateHookOption, ownerID, repoI
257257

258258
// Set webhook meta settings
259259
if form.MetaSettings != nil {
260-
metaSettings := &webhook.MetaSettings{}
260+
metaSettings := webhook.MetaSettings{}
261261

262262
// Parse payload optimization config
263263
if payloadOptMap, ok := form.MetaSettings["payload_optimization"].(map[string]any); ok {
264-
payloadOptConfig := &webhook.PayloadOptimizationConfig{}
264+
payloadOptConfig := webhook.PayloadOptimizationConfig{}
265265

266266
// Parse files config
267267
if filesConfig, ok := payloadOptMap["files"].(map[string]any); ok {
268-
payloadOptConfig.Files = &webhook.PayloadOptimizationItem{
268+
payloadOptConfig.Files = webhook.PayloadOptimizationItem{
269269
Enable: getPayloadOptimizationEnable(filesConfig),
270270
Limit: getPayloadOptimizationLimit(filesConfig),
271271
}
272272
} else {
273-
payloadOptConfig.Files = &webhook.PayloadOptimizationItem{Enable: false, Limit: 0}
273+
payloadOptConfig.Files = webhook.PayloadOptimizationItem{Enable: false, Limit: 0}
274274
}
275275

276276
// Parse commits config
277277
if commitsConfig, ok := payloadOptMap["commits"].(map[string]any); ok {
278-
payloadOptConfig.Commits = &webhook.PayloadOptimizationItem{
278+
payloadOptConfig.Commits = webhook.PayloadOptimizationItem{
279279
Enable: getPayloadOptimizationEnable(commitsConfig),
280280
Limit: getPayloadOptimizationLimit(commitsConfig),
281281
}
282282
} else {
283-
payloadOptConfig.Commits = &webhook.PayloadOptimizationItem{Enable: false, Limit: 0}
283+
payloadOptConfig.Commits = webhook.PayloadOptimizationItem{Enable: false, Limit: 0}
284284
}
285285

286286
metaSettings.PayloadOptimization = payloadOptConfig
@@ -458,30 +458,30 @@ func editHook(ctx *context.APIContext, form *api.EditHookOption, w *webhook.Webh
458458

459459
// Update webhook meta settings
460460
if form.MetaSettings != nil {
461-
metaSettings := &webhook.MetaSettings{}
461+
metaSettings := webhook.MetaSettings{}
462462

463463
// Parse payload optimization config
464464
if payloadOptMap, ok := (*form.MetaSettings)["payload_optimization"].(map[string]any); ok {
465-
payloadOptConfig := &webhook.PayloadOptimizationConfig{}
465+
payloadOptConfig := webhook.PayloadOptimizationConfig{}
466466

467467
// Parse files config
468468
if filesConfig, ok := payloadOptMap["files"].(map[string]any); ok {
469-
payloadOptConfig.Files = &webhook.PayloadOptimizationItem{
469+
payloadOptConfig.Files = webhook.PayloadOptimizationItem{
470470
Enable: getPayloadOptimizationEnable(filesConfig),
471471
Limit: getPayloadOptimizationLimit(filesConfig),
472472
}
473473
} else {
474-
payloadOptConfig.Files = &webhook.PayloadOptimizationItem{Enable: false, Limit: 0}
474+
payloadOptConfig.Files = webhook.PayloadOptimizationItem{Enable: false, Limit: 0}
475475
}
476476

477477
// Parse commits config
478478
if commitsConfig, ok := payloadOptMap["commits"].(map[string]any); ok {
479-
payloadOptConfig.Commits = &webhook.PayloadOptimizationItem{
479+
payloadOptConfig.Commits = webhook.PayloadOptimizationItem{
480480
Enable: getPayloadOptimizationEnable(commitsConfig),
481481
Limit: getPayloadOptimizationLimit(commitsConfig),
482482
}
483483
} else {
484-
payloadOptConfig.Commits = &webhook.PayloadOptimizationItem{Enable: false, Limit: 0}
484+
payloadOptConfig.Commits = webhook.PayloadOptimizationItem{Enable: false, Limit: 0}
485485
}
486486

487487
metaSettings.PayloadOptimization = payloadOptConfig

routers/web/repo/setting/webhook.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -261,13 +261,13 @@ func createWebhook(ctx *context.Context, params webhookParams) {
261261
}
262262

263263
// Set webhook meta settings with payload optimization config
264-
metaSettings := &webhook.MetaSettings{
265-
PayloadOptimization: &webhook.PayloadOptimizationConfig{
266-
Files: &webhook.PayloadOptimizationItem{
264+
metaSettings := webhook.MetaSettings{
265+
PayloadOptimization: webhook.PayloadOptimizationConfig{
266+
Files: webhook.PayloadOptimizationItem{
267267
Enable: params.WebhookForm.PayloadOptimizationFilesEnable,
268268
Limit: params.WebhookForm.PayloadOptimizationFilesLimit,
269269
},
270-
Commits: &webhook.PayloadOptimizationItem{
270+
Commits: webhook.PayloadOptimizationItem{
271271
Enable: params.WebhookForm.PayloadOptimizationCommitsEnable,
272272
Limit: params.WebhookForm.PayloadOptimizationCommitsLimit,
273273
},
@@ -330,13 +330,13 @@ func editWebhook(ctx *context.Context, params webhookParams) {
330330
w.Meta = string(meta)
331331

332332
// Set webhook meta settings with payload optimization config
333-
metaSettings := &webhook.MetaSettings{
334-
PayloadOptimization: &webhook.PayloadOptimizationConfig{
335-
Files: &webhook.PayloadOptimizationItem{
333+
metaSettings := webhook.MetaSettings{
334+
PayloadOptimization: webhook.PayloadOptimizationConfig{
335+
Files: webhook.PayloadOptimizationItem{
336336
Enable: params.WebhookForm.PayloadOptimizationFilesEnable,
337337
Limit: params.WebhookForm.PayloadOptimizationFilesLimit,
338338
},
339-
Commits: &webhook.PayloadOptimizationItem{
339+
Commits: webhook.PayloadOptimizationItem{
340340
Enable: params.WebhookForm.PayloadOptimizationCommitsEnable,
341341
Limit: params.WebhookForm.PayloadOptimizationCommitsLimit,
342342
},

services/webhook/webhook_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,10 @@ func TestWebhookPayloadOptimization(t *testing.T) {
112112
}
113113

114114
// Test case 1: No optimization enabled
115-
webhook.SetMetaSettings(&webhook_model.MetaSettings{
116-
PayloadOptimization: &webhook_model.PayloadOptimizationConfig{
117-
Files: &webhook_model.PayloadOptimizationItem{Enable: false, Limit: 0},
118-
Commits: &webhook_model.PayloadOptimizationItem{Enable: false, Limit: 0},
115+
webhook.SetMetaSettings(webhook_model.MetaSettings{
116+
PayloadOptimization: webhook_model.PayloadOptimizationConfig{
117+
Files: webhook_model.PayloadOptimizationItem{Enable: false, Limit: 0},
118+
Commits: webhook_model.PayloadOptimizationItem{Enable: false, Limit: 0},
119119
},
120120
})
121121

@@ -165,10 +165,10 @@ func TestWebhookPayloadOptimization(t *testing.T) {
165165
}
166166

167167
// Test case 2: Files optimization enabled, limit = 0 (trim all)
168-
webhook.SetMetaSettings(&webhook_model.MetaSettings{
169-
PayloadOptimization: &webhook_model.PayloadOptimizationConfig{
170-
Files: &webhook_model.PayloadOptimizationItem{Enable: true, Limit: 0},
171-
Commits: &webhook_model.PayloadOptimizationItem{Enable: false, Limit: 0},
168+
webhook.SetMetaSettings(webhook_model.MetaSettings{
169+
PayloadOptimization: webhook_model.PayloadOptimizationConfig{
170+
Files: webhook_model.PayloadOptimizationItem{Enable: true, Limit: 0},
171+
Commits: webhook_model.PayloadOptimizationItem{Enable: false, Limit: 0},
172172
},
173173
})
174174
err = webhook_model.UpdateWebhook(db.DefaultContext, webhook)
@@ -214,10 +214,10 @@ func TestWebhookPayloadOptimization(t *testing.T) {
214214
}
215215

216216
// Test case 3: Commits optimization enabled, limit = 1 (keep first)
217-
webhook.SetMetaSettings(&webhook_model.MetaSettings{
218-
PayloadOptimization: &webhook_model.PayloadOptimizationConfig{
219-
Files: &webhook_model.PayloadOptimizationItem{Enable: false, Limit: 0},
220-
Commits: &webhook_model.PayloadOptimizationItem{Enable: true, Limit: 1},
217+
webhook.SetMetaSettings(webhook_model.MetaSettings{
218+
PayloadOptimization: webhook_model.PayloadOptimizationConfig{
219+
Files: webhook_model.PayloadOptimizationItem{Enable: false, Limit: 0},
220+
Commits: webhook_model.PayloadOptimizationItem{Enable: true, Limit: 1},
221221
},
222222
})
223223
err = webhook_model.UpdateWebhook(db.DefaultContext, webhook)

0 commit comments

Comments
 (0)