diff --git a/api/swagger/docs.go b/api/swagger/docs.go index 1a5cdb39..c4ae64b6 100644 --- a/api/swagger/docs.go +++ b/api/swagger/docs.go @@ -9739,7 +9739,7 @@ const docTemplate = `{ "metricParameters": { "type": "array", "items": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse" + "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse" } }, "metricQuery": { @@ -9748,7 +9748,6 @@ const docTemplate = `{ "name": { "type": "string" }, - "organizationIds": { "type": "array", "items": { @@ -11039,65 +11038,6 @@ const docTemplate = `{ } } }, - "github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse": { - "type": "object", - "properties": { - "children": { - "type": "array", - "items": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - } - }, - "is_allowed": { - "type": "boolean" - }, - "key": { - "type": "string" - } - } - }, - "github_com_openinfradev_tks-api_pkg_domain.MergedPermissionSetResponse": { - "type": "object", - "properties": { - "configuration": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "dashboard": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "notification": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "policy": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "project_management": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "stack": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - } - } - }, - "github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse": { - "type": "object", - "required": [ - "key", - "order", - "value" - ], - "properties": { - "key": { - "type": "string" - }, - "order": { - "type": "integer" - }, - "value": { - "type": "string" - } - } - }, "github_com_openinfradev_tks-api_pkg_domain.OrganizationResponse": { "type": "object", "properties": { @@ -12331,6 +12271,25 @@ const docTemplate = `{ } } }, + "github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse": { + "type": "object", + "required": [ + "key", + "order", + "value" + ], + "properties": { + "key": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "value": { + "type": "string" + } + } + }, "github_com_openinfradev_tks-api_pkg_domain.SystemNotificationParameter": { "type": "object", "properties": { @@ -12490,7 +12449,7 @@ const docTemplate = `{ "metricParameters": { "type": "array", "items": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse" + "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse" } }, "metricQuery": { @@ -13053,7 +13012,7 @@ const docTemplate = `{ "metricParameters": { "type": "array", "items": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse" + "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse" } }, "metricQuery": { diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index c4fd3f12..4629849a 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -9733,7 +9733,7 @@ "metricParameters": { "type": "array", "items": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse" + "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse" } }, "metricQuery": { @@ -11032,65 +11032,6 @@ } } }, - "github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse": { - "type": "object", - "properties": { - "children": { - "type": "array", - "items": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - } - }, - "is_allowed": { - "type": "boolean" - }, - "key": { - "type": "string" - } - } - }, - "github_com_openinfradev_tks-api_pkg_domain.MergedPermissionSetResponse": { - "type": "object", - "properties": { - "configuration": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "dashboard": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "notification": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "policy": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "project_management": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - }, - "stack": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse" - } - } - }, - "github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse": { - "type": "object", - "required": [ - "key", - "order", - "value" - ], - "properties": { - "key": { - "type": "string" - }, - "order": { - "type": "integer" - }, - "value": { - "type": "string" - } - } - }, "github_com_openinfradev_tks-api_pkg_domain.OrganizationResponse": { "type": "object", "properties": { @@ -12324,6 +12265,25 @@ } } }, + "github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse": { + "type": "object", + "required": [ + "key", + "order", + "value" + ], + "properties": { + "key": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "value": { + "type": "string" + } + } + }, "github_com_openinfradev_tks-api_pkg_domain.SystemNotificationParameter": { "type": "object", "properties": { @@ -12483,7 +12443,7 @@ "metricParameters": { "type": "array", "items": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse" + "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse" } }, "metricQuery": { @@ -13046,7 +13006,7 @@ "metricParameters": { "type": "array", "items": { - "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse" + "$ref": "#/definitions/github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse" } }, "metricQuery": { diff --git a/api/swagger/swagger.yaml b/api/swagger/swagger.yaml index 17dd7af9..f23f3c40 100644 --- a/api/swagger/swagger.yaml +++ b/api/swagger/swagger.yaml @@ -1152,7 +1152,7 @@ definitions: type: string metricParameters: items: - $ref: '#/definitions/github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse' + $ref: '#/definitions/github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse' type: array metricQuery: type: string @@ -1320,8 +1320,6 @@ definitions: name: type: string type: object - github_com_openinfradev_tks-api_pkg_domain.ExistsPolicyTemplateKindResponse: - type: object github_com_openinfradev_tks-api_pkg_domain.FilterResponse: properties: column: @@ -2006,19 +2004,6 @@ definitions: stack: $ref: '#/definitions/github_com_openinfradev_tks-api_pkg_domain.MergePermissionResponse' type: object - github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse: - properties: - key: - type: string - order: - type: integer - value: - type: string - required: - - key - - order - - value - type: object github_com_openinfradev_tks-api_pkg_domain.OrganizationResponse: properties: admin: @@ -2841,6 +2826,19 @@ definitions: severity: type: string type: object + github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse: + properties: + key: + type: string + order: + type: integer + value: + type: string + required: + - key + - order + - value + type: object github_com_openinfradev_tks-api_pkg_domain.SystemNotificationParameter: properties: operator: @@ -2944,7 +2942,7 @@ definitions: type: string metricParameters: items: - $ref: '#/definitions/github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse' + $ref: '#/definitions/github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse' type: array metricQuery: type: string @@ -3317,7 +3315,7 @@ definitions: type: string metricParameters: items: - $ref: '#/definitions/github_com_openinfradev_tks-api_pkg_domain.MetricParameterResponse' + $ref: '#/definitions/github_com_openinfradev_tks-api_pkg_domain.SystemNotificationMetricParameterResponse' type: array metricQuery: type: string diff --git a/internal/database/database.go b/internal/database/database.go index 4a480a4e..3f26ca8b 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -60,127 +60,37 @@ func InitDB() (*gorm.DB, error) { } func migrateSchema(db *gorm.DB) error { - // Auth - if err := db.AutoMigrate(&model.CacheEmailCode{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.ExpiredTokenTime{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.User{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.Role{}); err != nil { - return err - } - - // Organization - if err := db.AutoMigrate(&model.Organization{}); err != nil { - return err - } - - // CloudAccount - if err := db.AutoMigrate(&model.CloudAccount{}); err != nil { - return err - } - - // StackTemplate - if err := db.AutoMigrate(&model.StackTemplate{}); err != nil { - return err - } - - // Cluster - if err := db.AutoMigrate(&model.Cluster{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.ClusterFavorite{}); err != nil { - return err - } - - // Services - if err := db.AutoMigrate(&model.AppGroup{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.Application{}); err != nil { - return err - } - - // AppServe - if err := db.AutoMigrate(&model.AppServeApp{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.AppServeAppTask{}); err != nil { - return err - } - - // SystemNotification - if err := db.AutoMigrate(&model.SystemNotification{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.SystemNotificationAction{}); err != nil { - return err - } - - // SystemNotificationTemplate - if err := db.AutoMigrate(&model.MetricParameter{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.SystemNotificationTemplate{}); err != nil { - return err - } - - // SystemNotificationRule - if err := db.AutoMigrate(&model.SystemNotificationCondition{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.SystemNotificationRule{}); err != nil { - return err - } - - // Role - if err := db.AutoMigrate(&model.Role{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.Permission{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.Endpoint{}); err != nil { - return err - } - - // Project - if err := db.AutoMigrate(&model.Project{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.ProjectMember{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.ProjectNamespace{}); err != nil { - return err - } - if err := db.AutoMigrate(&model.ProjectRole{}); err != nil { - return err - } - - // Audit - if err := db.AutoMigrate(&model.Audit{}); err != nil { - return err - } - - // PolicyTemplate - if err := db.AutoMigrate(&model.PolicyTemplateSupportedVersion{}); err != nil { - return err - } - - if err := db.AutoMigrate(&model.PolicyTemplate{}); err != nil { - return err - } - - if err := db.AutoMigrate(&model.Policy{}); err != nil { - return err - } - - if err := db.AutoMigrate(&model.Dashboard{}); err != nil { + if err := db.AutoMigrate(&model.CacheEmailCode{}, + &model.ExpiredTokenTime{}, + &model.User{}, + &model.Role{}, + &model.Organization{}, + &model.CloudAccount{}, + &model.StackTemplate{}, + &model.Cluster{}, + &model.ClusterFavorite{}, + &model.AppGroup{}, + &model.Application{}, + &model.AppServeApp{}, + &model.AppServeAppTask{}, + &model.SystemNotification{}, + &model.SystemNotificationAction{}, + &model.SystemNotificationMetricParameter{}, + &model.SystemNotificationTemplate{}, + &model.SystemNotificationCondition{}, + &model.SystemNotificationRule{}, + &model.Permission{}, + &model.Endpoint{}, + &model.Project{}, + &model.ProjectMember{}, + &model.ProjectNamespace{}, + &model.ProjectRole{}, + &model.Audit{}, + &model.PolicyTemplateSupportedVersion{}, + &model.PolicyTemplate{}, + &model.Policy{}, + &model.Dashboard{}, + ); err != nil { return err } diff --git a/internal/delivery/http/system-notification-template.go b/internal/delivery/http/system-notification-template.go index ce4aefa0..7ce845ad 100644 --- a/internal/delivery/http/system-notification-template.go +++ b/internal/delivery/http/system-notification-template.go @@ -48,7 +48,7 @@ func (h *SystemNotificationTemplateHandler) CreateSystemNotificationTemplate(w h if err = serializer.Map(r.Context(), input, &dto); err != nil { log.Info(r.Context(), err) } - dto.MetricParameters = make([]model.MetricParameter, len(input.MetricParameters)) + dto.MetricParameters = make([]model.SystemNotificationMetricParameter, len(input.MetricParameters)) for i, metricParameter := range input.MetricParameters { if err := serializer.Map(r.Context(), metricParameter, &dto.MetricParameters[i]); err != nil { log.Info(r.Context(), err) @@ -157,7 +157,7 @@ func (h *SystemNotificationTemplateHandler) GetSystemNotificationTemplate(w http } } - out.SystemNotificationTemplate.MetricParameters = make([]domain.MetricParameterResponse, len(systemNotificationTemplate.MetricParameters)) + out.SystemNotificationTemplate.MetricParameters = make([]domain.SystemNotificationMetricParameterResponse, len(systemNotificationTemplate.MetricParameters)) for i, metricParameters := range systemNotificationTemplate.MetricParameters { if err := serializer.Map(r.Context(), metricParameters, &out.SystemNotificationTemplate.MetricParameters[i]); err != nil { log.Info(r.Context(), err) @@ -204,7 +204,7 @@ func (h *SystemNotificationTemplateHandler) UpdateSystemNotificationTemplate(w h log.Info(r.Context(), err) } dto.ID = systemNotificationTemplateId - dto.MetricParameters = make([]model.MetricParameter, len(input.MetricParameters)) + dto.MetricParameters = make([]model.SystemNotificationMetricParameter, len(input.MetricParameters)) for i, metricParameter := range input.MetricParameters { if err := serializer.Map(r.Context(), metricParameter, &dto.MetricParameters[i]); err != nil { log.Info(r.Context(), err) diff --git a/internal/model/system-notification-template.go b/internal/model/system-notification-template.go index 4c8ba603..eabf2dd5 100644 --- a/internal/model/system-notification-template.go +++ b/internal/model/system-notification-template.go @@ -6,7 +6,7 @@ import ( ) // Models -type MetricParameter struct { +type SystemNotificationMetricParameter struct { gorm.Model SystemNotificationTemplateId uuid.UUID @@ -24,7 +24,7 @@ type SystemNotificationTemplate struct { OrganizationIds []string `gorm:"-:all"` Description string MetricQuery string - MetricParameters []MetricParameter `gorm:"foreignKey:SystemNotificationTemplateId;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT"` + MetricParameters []SystemNotificationMetricParameter `gorm:"foreignKey:SystemNotificationTemplateId;constraint:OnUpdate:RESTRICT,OnDelete:RESTRICT"` CreatorId *uuid.UUID Creator User `gorm:"foreignKey:CreatorId"` UpdatorId *uuid.UUID diff --git a/pkg/domain/system-notification-template.go b/pkg/domain/system-notification-template.go index 8b242289..7889a615 100644 --- a/pkg/domain/system-notification-template.go +++ b/pkg/domain/system-notification-template.go @@ -5,16 +5,16 @@ import ( ) type SystemNotificationTemplateResponse struct { - ID string `json:"id"` - Name string `json:"name"` - Description string `json:"description"` - MetricQuery string `json:"metricQuery" validate:"required"` - MetricParameters []MetricParameterResponse `json:"metricParameters,omitempty"` - Organizations []SimpleOrganizationResponse `json:"organizations,omitempty"` - Creator SimpleUserResponse `json:"creator"` - Updator SimpleUserResponse `json:"updator"` - CreatedAt time.Time `json:"createdAt"` - UpdatedAt time.Time `json:"updatedAt"` + ID string `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + MetricQuery string `json:"metricQuery" validate:"required"` + MetricParameters []SystemNotificationMetricParameterResponse `json:"metricParameters,omitempty"` + Organizations []SimpleOrganizationResponse `json:"organizations,omitempty"` + Creator SimpleUserResponse `json:"creator"` + Updator SimpleUserResponse `json:"updator"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` } type SimpleSystemNotificationTemplateResponse struct { @@ -25,18 +25,18 @@ type SimpleSystemNotificationTemplateResponse struct { UpdatedAt time.Time `json:"updatedAt"` } -type MetricParameterResponse struct { +type SystemNotificationMetricParameterResponse struct { Order int `json:"order" validate:"required"` Key string `json:"key" validate:"required,name"` Value string `json:"value" validate:"required"` } type CreateSystemNotificationTemplateRequest struct { - Name string `json:"name" validate:"required,name"` - Description string `json:"description"` - OrganizationIds []string `json:"organizationIds" validate:"required"` - MetricQuery string `json:"metricQuery" validate:"required"` - MetricParameters []MetricParameterResponse `json:"metricParameters"` + Name string `json:"name" validate:"required,name"` + Description string `json:"description"` + OrganizationIds []string `json:"organizationIds" validate:"required"` + MetricQuery string `json:"metricQuery" validate:"required"` + MetricParameters []SystemNotificationMetricParameterResponse `json:"metricParameters"` } type CreateSystemNotificationTemplateResponse struct { @@ -44,11 +44,11 @@ type CreateSystemNotificationTemplateResponse struct { } type UpdateSystemNotificationTemplateRequest struct { - Name string `json:"name" validate:"required,name"` - Description string `json:"description"` - OrganizationIds []string `json:"organizationIds" validate:"required"` - MetricQuery string `json:"metricQuery" validate:"required"` - MetricParameters []MetricParameterResponse `json:"metricParameters"` + Name string `json:"name" validate:"required,name"` + Description string `json:"description"` + OrganizationIds []string `json:"organizationIds" validate:"required"` + MetricQuery string `json:"metricQuery" validate:"required"` + MetricParameters []SystemNotificationMetricParameterResponse `json:"metricParameters"` } type GetSystemNotificationTemplatesResponse struct {