Skip to content

Commit

Permalink
feat(webhook): Optimize the event structure (#45)
Browse files Browse the repository at this point in the history
* feat(webhook): Optimize the event structure

* feat(webhook): Optimize the event structure

* feat(webhook): Optimize the event structure

* feat(webhook): Optimize the event structure
  • Loading branch information
flc1125 authored Dec 31, 2024
1 parent a83f8cb commit 7a10278
Show file tree
Hide file tree
Showing 11 changed files with 1,337 additions and 780 deletions.
14 changes: 7 additions & 7 deletions features.md
Original file line number Diff line number Diff line change
Expand Up @@ -275,20 +275,20 @@ API 文档:https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/

### webhook

- [ ] 需求/任务/缺陷类
- [ ] `story::create`
- [ ] `story::update`
- [ ] `story::delete`
- [x] 需求/任务/缺陷类
- [x] `story::create`
- [x] `story::update`
- [x] `story::delete`
- [x] `task::create`
- [x] `task::update`
- [x] `task::delete`
- [x] `bug::create`
- [x] `bug::update`
- [x] `bug::delete`
- [ ] 评论类:需求/任务/缺陷
- [ ] `story_comment::add`
- [ ] `story_comment::update`
- [ ] `story_comment::delete`
- [x] `story_comment::add`
- [x] `story_comment::update`
- [x] `story_comment::delete`
- [ ] `task_comment::add`
- [ ] `task_comment::update`
- [ ] `task_comment::delete`
Expand Down
582 changes: 291 additions & 291 deletions webhook/event_bug.go

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions webhook/event_bug_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,19 +143,19 @@ func TestBugEvent_BugUpdateEvent(t *testing.T) {
assert.Equal(t, "", event.OldFixer)
assert.Equal(t, "", event.OldCustomField199)
assert.Equal(t, "", event.OldCustomField200)
assert.Nil(t, event.NewID)
assert.Nil(t, event.NewSecretRootID)
assert.Nil(t, event.NewSid)
assert.Nil(t, event.NewProjectID)
assert.Nil(t, event.NewParentID)
assert.Equal(t, "123222", *event.NewTitle)
assert.Nil(t, event.NewDescription)
assert.Nil(t, event.NewClosed)
assert.Equal(t, "2024-12-30 18:25:09", *event.NewModified)
assert.Nil(t, event.NewLastModify)
assert.Nil(t, event.NewAuditer)
assert.Nil(t, event.NewDe)
assert.Nil(t, event.NewCustomFieldFive)
assert.Empty(t, event.NewID)
assert.Empty(t, event.NewSecretRootID)
assert.Empty(t, event.NewSid)
assert.Empty(t, event.NewProjectID)
assert.Empty(t, event.NewParentID)
assert.Equal(t, "123222", event.NewTitle)
assert.Empty(t, event.NewDescription)
assert.Empty(t, event.NewClosed)
assert.Equal(t, "2024-12-30 18:25:09", event.NewModified)
assert.Empty(t, event.NewLastModify)
assert.Empty(t, event.NewAuditer)
assert.Empty(t, event.NewDe)
assert.Empty(t, event.NewCustomFieldFive)
assert.Equal(t, "title,modified", event.ChangeFields)
}

Expand Down
192 changes: 96 additions & 96 deletions webhook/event_iteration.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,102 +130,102 @@ type IterationUpdateEvent struct {
OldCustomField48 string `json:"old_custom_field_48,omitempty"`
OldCustomField49 string `json:"old_custom_field_49,omitempty"`
OldCustomField50 string `json:"old_custom_field_50,omitempty"`
NewID *string `json:"new_id,omitempty"`
NewSort *string `json:"new_sort,omitempty"`
NewWorkitemTypeID *string `json:"new_workitem_type_id,omitempty"`
NewEntityType *string `json:"new_entity_type,omitempty"`
NewReleaseID *string `json:"new_release_id,omitempty"`
NewWorkspaceID *string `json:"new_workspace_id,omitempty"`
NewPlanAppID *string `json:"new_plan_app_id,omitempty"`
NewName *string `json:"new_name,omitempty"`
NewDescription *string `json:"new_description,omitempty"`
NewMarkdownDescription *string `json:"new_markdown_description,omitempty"`
NewDescriptionType *string `json:"new_description_type,omitempty"`
NewStartDate *string `json:"new_startdate,omitempty"`
NewStories *string `json:"new_stories,omitempty"`
NewEndDate *string `json:"new_enddate,omitempty"`
NewBugs *string `json:"new_bugs,omitempty"`
NewEffortTotalCompleted *string `json:"new_effort_total_completed,omitempty"`
NewEffortTotal *string `json:"new_effort_total,omitempty"`
NewDuration *string `json:"new_duration,omitempty"`
NewVelocity *string `json:"new_velocity,omitempty"`
NewCreator *string `json:"new_creator,omitempty"`
NewModifier *string `json:"new_modifier,omitempty"`
NewColor *string `json:"new_color,omitempty"`
NewIcon *string `json:"new_icon,omitempty"`
NewLine *string `json:"new_line,omitempty"`
NewCreated *string `json:"new_created,omitempty"`
NewModified *string `json:"new_modified,omitempty"`
NewParentID *string `json:"new_parent_id,omitempty"`
NewAncestorID *string `json:"new_ancestor_id,omitempty"`
NewPath *string `json:"new_path,omitempty"`
NewCompleted *string `json:"new_completed,omitempty"`
NewReleaseOwner *string `json:"new_releaseowner,omitempty"`
NewLaunchDate *string `json:"new_launchdate,omitempty"`
NewNotice *string `json:"new_notice,omitempty"`
NewStatus *string `json:"new_status,omitempty"`
NewIsDelay *string `json:"new_isdelay,omitempty"`
NewReleaseName *string `json:"new_releasename,omitempty"`
NewEstimatedPoints *string `json:"new_estimated_points,omitempty"`
NewTemplatedID *string `json:"new_templated_id,omitempty"`
NewIsTop *string `json:"new_is_top,omitempty"`
NewTopTime *string `json:"new_top_time,omitempty"`
NewDashboardSetting *string `json:"new_dashboard_setting,omitempty"`
NewCreatedFrom *string `json:"new_created_from,omitempty"`
NewLockInfo *string `json:"new_lock_info,omitempty"`
NewLocker *string `json:"new_locker,omitempty"`
NewCrucialMoment *string `json:"new_crucial_moment,omitempty"`
NewLabel *string `json:"new_label,omitempty"`
NewCustomField1 *string `json:"new_custom_field_1,omitempty"`
NewCustomField2 *string `json:"new_custom_field_2,omitempty"`
NewCustomField3 *string `json:"new_custom_field_3,omitempty"`
NewCustomField4 *string `json:"new_custom_field_4,omitempty"`
NewCustomField5 *string `json:"new_custom_field_5,omitempty"`
NewCustomField6 *string `json:"new_custom_field_6,omitempty"`
NewCustomField7 *string `json:"new_custom_field_7,omitempty"`
NewCustomField8 *string `json:"new_custom_field_8,omitempty"`
NewCustomField9 *string `json:"new_custom_field_9,omitempty"`
NewCustomField10 *string `json:"new_custom_field_10,omitempty"`
NewCustomField11 *string `json:"new_custom_field_11,omitempty"`
NewCustomField12 *string `json:"new_custom_field_12,omitempty"`
NewCustomField13 *string `json:"new_custom_field_13,omitempty"`
NewCustomField14 *string `json:"new_custom_field_14,omitempty"`
NewCustomField15 *string `json:"new_custom_field_15,omitempty"`
NewCustomField16 *string `json:"new_custom_field_16,omitempty"`
NewCustomField17 *string `json:"new_custom_field_17,omitempty"`
NewCustomField18 *string `json:"new_custom_field_18,omitempty"`
NewCustomField19 *string `json:"new_custom_field_19,omitempty"`
NewCustomField20 *string `json:"new_custom_field_20,omitempty"`
NewCustomField21 *string `json:"new_custom_field_21,omitempty"`
NewCustomField22 *string `json:"new_custom_field_22,omitempty"`
NewCustomField23 *string `json:"new_custom_field_23,omitempty"`
NewCustomField24 *string `json:"new_custom_field_24,omitempty"`
NewCustomField25 *string `json:"new_custom_field_25,omitempty"`
NewCustomField26 *string `json:"new_custom_field_26,omitempty"`
NewCustomField27 *string `json:"new_custom_field_27,omitempty"`
NewCustomField28 *string `json:"new_custom_field_28,omitempty"`
NewCustomField29 *string `json:"new_custom_field_29,omitempty"`
NewCustomField30 *string `json:"new_custom_field_30,omitempty"`
NewCustomField31 *string `json:"new_custom_field_31,omitempty"`
NewCustomField32 *string `json:"new_custom_field_32,omitempty"`
NewCustomField33 *string `json:"new_custom_field_33,omitempty"`
NewCustomField34 *string `json:"new_custom_field_34,omitempty"`
NewCustomField35 *string `json:"new_custom_field_35,omitempty"`
NewCustomField36 *string `json:"new_custom_field_36,omitempty"`
NewCustomField37 *string `json:"new_custom_field_37,omitempty"`
NewCustomField38 *string `json:"new_custom_field_38,omitempty"`
NewCustomField39 *string `json:"new_custom_field_39,omitempty"`
NewCustomField40 *string `json:"new_custom_field_40,omitempty"`
NewCustomField41 *string `json:"new_custom_field_41,omitempty"`
NewCustomField42 *string `json:"new_custom_field_42,omitempty"`
NewCustomField43 *string `json:"new_custom_field_43,omitempty"`
NewCustomField44 *string `json:"new_custom_field_44,omitempty"`
NewCustomField45 *string `json:"new_custom_field_45,omitempty"`
NewCustomField46 *string `json:"new_custom_field_46,omitempty"`
NewCustomField47 *string `json:"new_custom_field_47,omitempty"`
NewCustomField48 *string `json:"new_custom_field_48,omitempty"`
NewCustomField49 *string `json:"new_custom_field_49,omitempty"`
NewCustomField50 *string `json:"new_custom_field_50,omitempty"`
NewID string `json:"new_id,omitempty"`
NewSort string `json:"new_sort,omitempty"`
NewWorkitemTypeID string `json:"new_workitem_type_id,omitempty"`
NewEntityType string `json:"new_entity_type,omitempty"`
NewReleaseID string `json:"new_release_id,omitempty"`
NewWorkspaceID string `json:"new_workspace_id,omitempty"`
NewPlanAppID string `json:"new_plan_app_id,omitempty"`
NewName string `json:"new_name,omitempty"`
NewDescription string `json:"new_description,omitempty"`
NewMarkdownDescription string `json:"new_markdown_description,omitempty"`
NewDescriptionType string `json:"new_description_type,omitempty"`
NewStartDate string `json:"new_startdate,omitempty"`
NewStories string `json:"new_stories,omitempty"`
NewEndDate string `json:"new_enddate,omitempty"`
NewBugs string `json:"new_bugs,omitempty"`
NewEffortTotalCompleted string `json:"new_effort_total_completed,omitempty"`
NewEffortTotal string `json:"new_effort_total,omitempty"`
NewDuration string `json:"new_duration,omitempty"`
NewVelocity string `json:"new_velocity,omitempty"`
NewCreator string `json:"new_creator,omitempty"`
NewModifier string `json:"new_modifier,omitempty"`
NewColor string `json:"new_color,omitempty"`
NewIcon string `json:"new_icon,omitempty"`
NewLine string `json:"new_line,omitempty"`
NewCreated string `json:"new_created,omitempty"`
NewModified string `json:"new_modified,omitempty"`
NewParentID string `json:"new_parent_id,omitempty"`
NewAncestorID string `json:"new_ancestor_id,omitempty"`
NewPath string `json:"new_path,omitempty"`
NewCompleted string `json:"new_completed,omitempty"`
NewReleaseOwner string `json:"new_releaseowner,omitempty"`
NewLaunchDate string `json:"new_launchdate,omitempty"`
NewNotice string `json:"new_notice,omitempty"`
NewStatus string `json:"new_status,omitempty"`
NewIsDelay string `json:"new_isdelay,omitempty"`
NewReleaseName string `json:"new_releasename,omitempty"`
NewEstimatedPoints string `json:"new_estimated_points,omitempty"`
NewTemplatedID string `json:"new_templated_id,omitempty"`
NewIsTop string `json:"new_is_top,omitempty"`
NewTopTime string `json:"new_top_time,omitempty"`
NewDashboardSetting string `json:"new_dashboard_setting,omitempty"`
NewCreatedFrom string `json:"new_created_from,omitempty"`
NewLockInfo string `json:"new_lock_info,omitempty"`
NewLocker string `json:"new_locker,omitempty"`
NewCrucialMoment string `json:"new_crucial_moment,omitempty"`
NewLabel string `json:"new_label,omitempty"`
NewCustomField1 string `json:"new_custom_field_1,omitempty"`
NewCustomField2 string `json:"new_custom_field_2,omitempty"`
NewCustomField3 string `json:"new_custom_field_3,omitempty"`
NewCustomField4 string `json:"new_custom_field_4,omitempty"`
NewCustomField5 string `json:"new_custom_field_5,omitempty"`
NewCustomField6 string `json:"new_custom_field_6,omitempty"`
NewCustomField7 string `json:"new_custom_field_7,omitempty"`
NewCustomField8 string `json:"new_custom_field_8,omitempty"`
NewCustomField9 string `json:"new_custom_field_9,omitempty"`
NewCustomField10 string `json:"new_custom_field_10,omitempty"`
NewCustomField11 string `json:"new_custom_field_11,omitempty"`
NewCustomField12 string `json:"new_custom_field_12,omitempty"`
NewCustomField13 string `json:"new_custom_field_13,omitempty"`
NewCustomField14 string `json:"new_custom_field_14,omitempty"`
NewCustomField15 string `json:"new_custom_field_15,omitempty"`
NewCustomField16 string `json:"new_custom_field_16,omitempty"`
NewCustomField17 string `json:"new_custom_field_17,omitempty"`
NewCustomField18 string `json:"new_custom_field_18,omitempty"`
NewCustomField19 string `json:"new_custom_field_19,omitempty"`
NewCustomField20 string `json:"new_custom_field_20,omitempty"`
NewCustomField21 string `json:"new_custom_field_21,omitempty"`
NewCustomField22 string `json:"new_custom_field_22,omitempty"`
NewCustomField23 string `json:"new_custom_field_23,omitempty"`
NewCustomField24 string `json:"new_custom_field_24,omitempty"`
NewCustomField25 string `json:"new_custom_field_25,omitempty"`
NewCustomField26 string `json:"new_custom_field_26,omitempty"`
NewCustomField27 string `json:"new_custom_field_27,omitempty"`
NewCustomField28 string `json:"new_custom_field_28,omitempty"`
NewCustomField29 string `json:"new_custom_field_29,omitempty"`
NewCustomField30 string `json:"new_custom_field_30,omitempty"`
NewCustomField31 string `json:"new_custom_field_31,omitempty"`
NewCustomField32 string `json:"new_custom_field_32,omitempty"`
NewCustomField33 string `json:"new_custom_field_33,omitempty"`
NewCustomField34 string `json:"new_custom_field_34,omitempty"`
NewCustomField35 string `json:"new_custom_field_35,omitempty"`
NewCustomField36 string `json:"new_custom_field_36,omitempty"`
NewCustomField37 string `json:"new_custom_field_37,omitempty"`
NewCustomField38 string `json:"new_custom_field_38,omitempty"`
NewCustomField39 string `json:"new_custom_field_39,omitempty"`
NewCustomField40 string `json:"new_custom_field_40,omitempty"`
NewCustomField41 string `json:"new_custom_field_41,omitempty"`
NewCustomField42 string `json:"new_custom_field_42,omitempty"`
NewCustomField43 string `json:"new_custom_field_43,omitempty"`
NewCustomField44 string `json:"new_custom_field_44,omitempty"`
NewCustomField45 string `json:"new_custom_field_45,omitempty"`
NewCustomField46 string `json:"new_custom_field_46,omitempty"`
NewCustomField47 string `json:"new_custom_field_47,omitempty"`
NewCustomField48 string `json:"new_custom_field_48,omitempty"`
NewCustomField49 string `json:"new_custom_field_49,omitempty"`
NewCustomField50 string `json:"new_custom_field_50,omitempty"`
ChangeFields string `json:"change_fields,omitempty"`
Secret string `json:"secret,omitempty"`
RioToken string `json:"rio_token,omitempty"`
Expand Down
2 changes: 1 addition & 1 deletion webhook/event_iteration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func TestIterationEvent_IterationUpdateEvent(t *testing.T) {
assert.Equal(t, "0", event.OldSort)
assert.Equal(t, "111112223001000128", event.OldWorkitemTypeID)
assert.Equal(t, "iteration", event.OldEntityType)
assert.Nil(t, event.NewCustomField47)
assert.Empty(t, event.NewCustomField47)
assert.Equal(t, "sort,ancestor_id,path,modified", event.ChangeFields)
assert.Equal(t, "318950437", event.QueueID)
}
Expand Down
Loading

0 comments on commit 7a10278

Please sign in to comment.