正在显示
55 个修改的文件
包含
2928 行增加
和
3 行删除
| @@ -196,7 +196,7 @@ func (clientVersionService *ClientVersionService) UpdateClientVersion(updateClie | @@ -196,7 +196,7 @@ func (clientVersionService *ClientVersionService) UpdateClientVersion(updateClie | ||
| 196 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 196 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 197 | } | 197 | } |
| 198 | if clientVersion == nil { | 198 | if clientVersion == nil { |
| 199 | - return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateClientVersionCommand.Id))) | 199 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%v", updateClientVersionCommand.Id)) |
| 200 | } | 200 | } |
| 201 | if err := clientVersion.Update(tool_funs.SimpleStructToMap(updateClientVersionCommand)); err != nil { | 201 | if err := clientVersion.Update(tool_funs.SimpleStructToMap(updateClientVersionCommand)); err != nil { |
| 202 | return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | 202 | return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) |
| @@ -47,3 +47,27 @@ func CreateClientVersionRepository(options map[string]interface{}) (domain.Clien | @@ -47,3 +47,27 @@ func CreateClientVersionRepository(options map[string]interface{}) (domain.Clien | ||
| 47 | } | 47 | } |
| 48 | return repository.NewClientVersionRepository(transactionContext) | 48 | return repository.NewClientVersionRepository(transactionContext) |
| 49 | } | 49 | } |
| 50 | + | ||
| 51 | +func CreateProjectModuleRepository(options map[string]interface{}) (domain.ProjectModuleRepository, error) { | ||
| 52 | + var transactionContext *pg.TransactionContext | ||
| 53 | + if value, ok := options["transactionContext"]; ok { | ||
| 54 | + transactionContext = value.(*pg.TransactionContext) | ||
| 55 | + } | ||
| 56 | + return repository.NewProjectModuleRepository(transactionContext) | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +func CreateProjectModuleVersionRepository(options map[string]interface{}) (domain.ProjectModuleVersionRepository, error) { | ||
| 60 | + var transactionContext *pg.TransactionContext | ||
| 61 | + if value, ok := options["transactionContext"]; ok { | ||
| 62 | + transactionContext = value.(*pg.TransactionContext) | ||
| 63 | + } | ||
| 64 | + return repository.NewProjectModuleVersionRepository(transactionContext) | ||
| 65 | +} | ||
| 66 | + | ||
| 67 | +func CreateProjectModuleFilesRepository(options map[string]interface{}) (domain.ProjectModuleFilesRepository, error) { | ||
| 68 | + var transactionContext *pg.TransactionContext | ||
| 69 | + if value, ok := options["transactionContext"]; ok { | ||
| 70 | + transactionContext = value.(*pg.TransactionContext) | ||
| 71 | + } | ||
| 72 | + return repository.NewProjectModuleFilesRepository(transactionContext) | ||
| 73 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type CreateProjectModuleCommand struct { | ||
| 10 | + // 项目名称 | ||
| 11 | + ProjectName string `json:"projectName" valid:"Required"` | ||
| 12 | + // 项目唯一键值 | ||
| 13 | + ProjectKey string `json:"projectKey" valid:"Required"` | ||
| 14 | + // 描述信息 | ||
| 15 | + Description string `json:"description" valid:"Required"` | ||
| 16 | + // 状态 1:正常 2:删除 | ||
| 17 | + Status int `json:"status" valid:"Required"` | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (createProjectModuleCommand *CreateProjectModuleCommand) Valid(validation *validation.Validation) { | ||
| 21 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func (createProjectModuleCommand *CreateProjectModuleCommand) ValidateCommand() error { | ||
| 25 | + valid := validation.Validation{} | ||
| 26 | + b, err := valid.Valid(createProjectModuleCommand) | ||
| 27 | + if err != nil { | ||
| 28 | + return err | ||
| 29 | + } | ||
| 30 | + if !b { | ||
| 31 | + for _, validErr := range valid.Errors { | ||
| 32 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 33 | + } | ||
| 34 | + } | ||
| 35 | + return nil | ||
| 36 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type RemoveProjectModuleCommand struct { | ||
| 10 | + // 项目编号 | ||
| 11 | + ProjectModuleId int64 `json:"projectModuleId" valid:"Required"` | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +func (removeProjectModuleCommand *RemoveProjectModuleCommand) Valid(validation *validation.Validation) { | ||
| 15 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (removeProjectModuleCommand *RemoveProjectModuleCommand) ValidateCommand() error { | ||
| 19 | + valid := validation.Validation{} | ||
| 20 | + b, err := valid.Valid(removeProjectModuleCommand) | ||
| 21 | + if err != nil { | ||
| 22 | + return err | ||
| 23 | + } | ||
| 24 | + if !b { | ||
| 25 | + for _, validErr := range valid.Errors { | ||
| 26 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + return nil | ||
| 30 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type UpdateProjectModuleCommand struct { | ||
| 10 | + // 项目编号 | ||
| 11 | + ProjectModuleId int64 `json:"projectModuleId" valid:"Required"` | ||
| 12 | + // 项目名称 | ||
| 13 | + ProjectName string `json:"projectName" valid:"Required"` | ||
| 14 | + // 项目唯一键值 | ||
| 15 | + ProjectKey string `json:"projectKey" valid:"Required"` | ||
| 16 | + // 描述信息 | ||
| 17 | + Description string `json:"description" valid:"Required"` | ||
| 18 | + // 状态 1:正常 2:删除 | ||
| 19 | + Status int `json:"status" valid:"Required"` | ||
| 20 | +} | ||
| 21 | + | ||
| 22 | +func (updateProjectModuleCommand *UpdateProjectModuleCommand) Valid(validation *validation.Validation) { | ||
| 23 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +func (updateProjectModuleCommand *UpdateProjectModuleCommand) ValidateCommand() error { | ||
| 27 | + valid := validation.Validation{} | ||
| 28 | + b, err := valid.Valid(updateProjectModuleCommand) | ||
| 29 | + if err != nil { | ||
| 30 | + return err | ||
| 31 | + } | ||
| 32 | + if !b { | ||
| 33 | + for _, validErr := range valid.Errors { | ||
| 34 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 35 | + } | ||
| 36 | + } | ||
| 37 | + return nil | ||
| 38 | +} |
| 1 | +package query | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type GetProjectModuleQuery struct { | ||
| 10 | + // 项目编号 | ||
| 11 | + ProjectModuleId int64 `json:"projectModuleId" valid:"Required"` | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +func (getProjectModuleQuery *GetProjectModuleQuery) Valid(validation *validation.Validation) { | ||
| 15 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (getProjectModuleQuery *GetProjectModuleQuery) ValidateQuery() error { | ||
| 19 | + valid := validation.Validation{} | ||
| 20 | + b, err := valid.Valid(getProjectModuleQuery) | ||
| 21 | + if err != nil { | ||
| 22 | + return err | ||
| 23 | + } | ||
| 24 | + if !b { | ||
| 25 | + for _, validErr := range valid.Errors { | ||
| 26 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + return nil | ||
| 30 | +} |
| 1 | +package query | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type ListProjectModuleQuery struct { | ||
| 10 | + // 查询偏离量 | ||
| 11 | + Offset int `json:"offset" valid:"Required"` | ||
| 12 | + // 查询限制 | ||
| 13 | + Limit int `json:"limit" valid:"Required"` | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (listProjectModuleQuery *ListProjectModuleQuery) Valid(validation *validation.Validation) { | ||
| 17 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (listProjectModuleQuery *ListProjectModuleQuery) ValidateQuery() error { | ||
| 21 | + valid := validation.Validation{} | ||
| 22 | + b, err := valid.Valid(listProjectModuleQuery) | ||
| 23 | + if err != nil { | ||
| 24 | + return err | ||
| 25 | + } | ||
| 26 | + if !b { | ||
| 27 | + for _, validErr := range valid.Errors { | ||
| 28 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 29 | + } | ||
| 30 | + } | ||
| 31 | + return nil | ||
| 32 | +} |
| 1 | +package service | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/linmadan/egglib-go/core/application" | ||
| 6 | + "github.com/linmadan/egglib-go/utils/tool_funs" | ||
| 7 | + "github.com/tiptok/godevp/pkg/application/factory" | ||
| 8 | + "github.com/tiptok/godevp/pkg/application/projectModule/command" | ||
| 9 | + "github.com/tiptok/godevp/pkg/application/projectModule/query" | ||
| 10 | + "github.com/tiptok/godevp/pkg/domain" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +// 项目模块服务 | ||
| 14 | +type ProjectModuleService struct { | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +// 创建 | ||
| 18 | +func (projectModuleService *ProjectModuleService) CreateProjectModule(createProjectModuleCommand *command.CreateProjectModuleCommand) (interface{}, error) { | ||
| 19 | + if err := createProjectModuleCommand.ValidateCommand(); err != nil { | ||
| 20 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 21 | + } | ||
| 22 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 23 | + if err != nil { | ||
| 24 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 25 | + } | ||
| 26 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 27 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 28 | + } | ||
| 29 | + defer func() { | ||
| 30 | + transactionContext.RollbackTransaction() | ||
| 31 | + }() | ||
| 32 | + newProjectModule := &domain.ProjectModule{ | ||
| 33 | + ProjectName: createProjectModuleCommand.ProjectName, | ||
| 34 | + ProjectKey: createProjectModuleCommand.ProjectKey, | ||
| 35 | + Description: createProjectModuleCommand.Description, | ||
| 36 | + Status: createProjectModuleCommand.Status, | ||
| 37 | + } | ||
| 38 | + var projectModuleRepository domain.ProjectModuleRepository | ||
| 39 | + if value, err := factory.CreateProjectModuleRepository(map[string]interface{}{ | ||
| 40 | + "transactionContext": transactionContext, | ||
| 41 | + }); err != nil { | ||
| 42 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 43 | + } else { | ||
| 44 | + projectModuleRepository = value | ||
| 45 | + } | ||
| 46 | + if projectModule, err := projectModuleRepository.Save(newProjectModule); err != nil { | ||
| 47 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 48 | + } else { | ||
| 49 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 50 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 51 | + } | ||
| 52 | + return projectModule, nil | ||
| 53 | + } | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | +// 返回 | ||
| 57 | +func (projectModuleService *ProjectModuleService) GetProjectModule(getProjectModuleQuery *query.GetProjectModuleQuery) (interface{}, error) { | ||
| 58 | + if err := getProjectModuleQuery.ValidateQuery(); err != nil { | ||
| 59 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 60 | + } | ||
| 61 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 62 | + if err != nil { | ||
| 63 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 64 | + } | ||
| 65 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 66 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 67 | + } | ||
| 68 | + defer func() { | ||
| 69 | + transactionContext.RollbackTransaction() | ||
| 70 | + }() | ||
| 71 | + var projectModuleRepository domain.ProjectModuleRepository | ||
| 72 | + if value, err := factory.CreateProjectModuleRepository(map[string]interface{}{ | ||
| 73 | + "transactionContext": transactionContext, | ||
| 74 | + }); err != nil { | ||
| 75 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 76 | + } else { | ||
| 77 | + projectModuleRepository = value | ||
| 78 | + } | ||
| 79 | + projectModule, err := projectModuleRepository.FindOne(map[string]interface{}{"projectModuleId": getProjectModuleQuery.ProjectModuleId}) | ||
| 80 | + if err != nil { | ||
| 81 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 82 | + } | ||
| 83 | + if projectModule == nil { | ||
| 84 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getProjectModuleQuery.ProjectModuleId))) | ||
| 85 | + } else { | ||
| 86 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 87 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 88 | + } | ||
| 89 | + return projectModule, nil | ||
| 90 | + } | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +// 返回列表 | ||
| 94 | +func (projectModuleService *ProjectModuleService) ListProjectModule(listProjectModuleQuery *query.ListProjectModuleQuery) (interface{}, error) { | ||
| 95 | + if err := listProjectModuleQuery.ValidateQuery(); err != nil { | ||
| 96 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 97 | + } | ||
| 98 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 99 | + if err != nil { | ||
| 100 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 101 | + } | ||
| 102 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 103 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 104 | + } | ||
| 105 | + defer func() { | ||
| 106 | + transactionContext.RollbackTransaction() | ||
| 107 | + }() | ||
| 108 | + var projectModuleRepository domain.ProjectModuleRepository | ||
| 109 | + if value, err := factory.CreateProjectModuleRepository(map[string]interface{}{ | ||
| 110 | + "transactionContext": transactionContext, | ||
| 111 | + }); err != nil { | ||
| 112 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 113 | + } else { | ||
| 114 | + projectModuleRepository = value | ||
| 115 | + } | ||
| 116 | + if count, projectModules, err := projectModuleRepository.Find(tool_funs.SimpleStructToMap(listProjectModuleQuery)); err != nil { | ||
| 117 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 118 | + } else { | ||
| 119 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 120 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 121 | + } | ||
| 122 | + return map[string]interface{}{ | ||
| 123 | + "count": count, | ||
| 124 | + "projectModules": projectModules, | ||
| 125 | + }, nil | ||
| 126 | + } | ||
| 127 | +} | ||
| 128 | + | ||
| 129 | +// 移除 | ||
| 130 | +func (projectModuleService *ProjectModuleService) RemoveProjectModule(removeProjectModuleCommand *command.RemoveProjectModuleCommand) (interface{}, error) { | ||
| 131 | + if err := removeProjectModuleCommand.ValidateCommand(); err != nil { | ||
| 132 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 133 | + } | ||
| 134 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 135 | + if err != nil { | ||
| 136 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 137 | + } | ||
| 138 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 139 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 140 | + } | ||
| 141 | + defer func() { | ||
| 142 | + transactionContext.RollbackTransaction() | ||
| 143 | + }() | ||
| 144 | + var projectModuleRepository domain.ProjectModuleRepository | ||
| 145 | + if value, err := factory.CreateProjectModuleRepository(map[string]interface{}{ | ||
| 146 | + "transactionContext": transactionContext, | ||
| 147 | + }); err != nil { | ||
| 148 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 149 | + } else { | ||
| 150 | + projectModuleRepository = value | ||
| 151 | + } | ||
| 152 | + projectModule, err := projectModuleRepository.FindOne(map[string]interface{}{"projectModuleId": removeProjectModuleCommand.ProjectModuleId}) | ||
| 153 | + if err != nil { | ||
| 154 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 155 | + } | ||
| 156 | + if projectModule == nil { | ||
| 157 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeProjectModuleCommand.ProjectModuleId))) | ||
| 158 | + } | ||
| 159 | + if projectModule, err := projectModuleRepository.Remove(projectModule); err != nil { | ||
| 160 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 161 | + } else { | ||
| 162 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 163 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 164 | + } | ||
| 165 | + return projectModule, nil | ||
| 166 | + } | ||
| 167 | +} | ||
| 168 | + | ||
| 169 | +// 更新 | ||
| 170 | +func (projectModuleService *ProjectModuleService) UpdateProjectModule(updateProjectModuleCommand *command.UpdateProjectModuleCommand) (interface{}, error) { | ||
| 171 | + if err := updateProjectModuleCommand.ValidateCommand(); err != nil { | ||
| 172 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 173 | + } | ||
| 174 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 175 | + if err != nil { | ||
| 176 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 177 | + } | ||
| 178 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 179 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 180 | + } | ||
| 181 | + defer func() { | ||
| 182 | + transactionContext.RollbackTransaction() | ||
| 183 | + }() | ||
| 184 | + var projectModuleRepository domain.ProjectModuleRepository | ||
| 185 | + if value, err := factory.CreateProjectModuleRepository(map[string]interface{}{ | ||
| 186 | + "transactionContext": transactionContext, | ||
| 187 | + }); err != nil { | ||
| 188 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 189 | + } else { | ||
| 190 | + projectModuleRepository = value | ||
| 191 | + } | ||
| 192 | + projectModule, err := projectModuleRepository.FindOne(map[string]interface{}{"projectModuleId": updateProjectModuleCommand.ProjectModuleId}) | ||
| 193 | + if err != nil { | ||
| 194 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 195 | + } | ||
| 196 | + if projectModule == nil { | ||
| 197 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateProjectModuleCommand.ProjectModuleId))) | ||
| 198 | + } | ||
| 199 | + if err := projectModule.Update(tool_funs.SimpleStructToMap(updateProjectModuleCommand)); err != nil { | ||
| 200 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 201 | + } | ||
| 202 | + if projectModule, err := projectModuleRepository.Save(projectModule); err != nil { | ||
| 203 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 204 | + } else { | ||
| 205 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 206 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 207 | + } | ||
| 208 | + return projectModule, nil | ||
| 209 | + } | ||
| 210 | +} | ||
| 211 | + | ||
| 212 | +func NewProjectModuleService(options map[string]interface{}) *ProjectModuleService { | ||
| 213 | + newProjectModuleService := &ProjectModuleService{} | ||
| 214 | + return newProjectModuleService | ||
| 215 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type CreateProjectModuleFilesCommand struct { | ||
| 10 | + // 项目编号 | ||
| 11 | + ProjectModuleId int64 `json:"projectModuleId" valid:"Required"` | ||
| 12 | + // 项目版本编号 | ||
| 13 | + ProjectModuleVersion int64 `json:"projectModuleVersion" valid:"Required"` | ||
| 14 | + // 文件类型 1:文件夹 2:文件 | ||
| 15 | + FileType int `json:"fileType" valid:"Required"` | ||
| 16 | + // 代码块 | ||
| 17 | + CodeBlock string `json:"codeBlock" valid:"Required"` | ||
| 18 | + // 父级Id | ||
| 19 | + ParentId int64 `json:"parentId" valid:"Required"` | ||
| 20 | + // 排序 | ||
| 21 | + Sort int `json:"sort" valid:"Required"` | ||
| 22 | + // 备注信息 | ||
| 23 | + Remark string `json:"remark,omitempty"` | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +func (createProjectModuleFilesCommand *CreateProjectModuleFilesCommand) Valid(validation *validation.Validation) { | ||
| 27 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +func (createProjectModuleFilesCommand *CreateProjectModuleFilesCommand) ValidateCommand() error { | ||
| 31 | + valid := validation.Validation{} | ||
| 32 | + b, err := valid.Valid(createProjectModuleFilesCommand) | ||
| 33 | + if err != nil { | ||
| 34 | + return err | ||
| 35 | + } | ||
| 36 | + if !b { | ||
| 37 | + for _, validErr := range valid.Errors { | ||
| 38 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 39 | + } | ||
| 40 | + } | ||
| 41 | + return nil | ||
| 42 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type RemoveProjectModuleFilesCommand struct { | ||
| 10 | + // 项目文件编号 | ||
| 11 | + ProjectModuleFilesId int64 `json:"projectModuleFilesId" valid:"Required"` | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +func (removeProjectModuleFilesCommand *RemoveProjectModuleFilesCommand) Valid(validation *validation.Validation) { | ||
| 15 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (removeProjectModuleFilesCommand *RemoveProjectModuleFilesCommand) ValidateCommand() error { | ||
| 19 | + valid := validation.Validation{} | ||
| 20 | + b, err := valid.Valid(removeProjectModuleFilesCommand) | ||
| 21 | + if err != nil { | ||
| 22 | + return err | ||
| 23 | + } | ||
| 24 | + if !b { | ||
| 25 | + for _, validErr := range valid.Errors { | ||
| 26 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + return nil | ||
| 30 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type UpdateProjectModuleFilesCommand struct { | ||
| 10 | + // 项目文件编号 | ||
| 11 | + ProjectModuleFilesId int64 `json:"projectModuleFilesId" valid:"Required"` | ||
| 12 | + // 代码块 | ||
| 13 | + CodeBlock string `json:"codeBlock" valid:"Required"` | ||
| 14 | + // 备注信息 | ||
| 15 | + Remark string `json:"remark,omitempty"` | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (updateProjectModuleFilesCommand *UpdateProjectModuleFilesCommand) Valid(validation *validation.Validation) { | ||
| 19 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 20 | +} | ||
| 21 | + | ||
| 22 | +func (updateProjectModuleFilesCommand *UpdateProjectModuleFilesCommand) ValidateCommand() error { | ||
| 23 | + valid := validation.Validation{} | ||
| 24 | + b, err := valid.Valid(updateProjectModuleFilesCommand) | ||
| 25 | + if err != nil { | ||
| 26 | + return err | ||
| 27 | + } | ||
| 28 | + if !b { | ||
| 29 | + for _, validErr := range valid.Errors { | ||
| 30 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 31 | + } | ||
| 32 | + } | ||
| 33 | + return nil | ||
| 34 | +} |
| 1 | +package query | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type GetProjectModuleFilesQuery struct { | ||
| 10 | + // 项目文件编号 | ||
| 11 | + ProjectModuleFilesId int64 `json:"projectModuleFilesId" valid:"Required"` | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +func (getProjectModuleFilesQuery *GetProjectModuleFilesQuery) Valid(validation *validation.Validation) { | ||
| 15 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (getProjectModuleFilesQuery *GetProjectModuleFilesQuery) ValidateQuery() error { | ||
| 19 | + valid := validation.Validation{} | ||
| 20 | + b, err := valid.Valid(getProjectModuleFilesQuery) | ||
| 21 | + if err != nil { | ||
| 22 | + return err | ||
| 23 | + } | ||
| 24 | + if !b { | ||
| 25 | + for _, validErr := range valid.Errors { | ||
| 26 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + return nil | ||
| 30 | +} |
| 1 | +package query | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type ListProjectModuleFilesQuery struct { | ||
| 10 | + // 查询偏离量 | ||
| 11 | + Offset int `json:"offset" valid:"Required"` | ||
| 12 | + // 查询限制 | ||
| 13 | + Limit int `json:"limit" valid:"Required"` | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (listProjectModuleFilesQuery *ListProjectModuleFilesQuery) Valid(validation *validation.Validation) { | ||
| 17 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (listProjectModuleFilesQuery *ListProjectModuleFilesQuery) ValidateQuery() error { | ||
| 21 | + valid := validation.Validation{} | ||
| 22 | + b, err := valid.Valid(listProjectModuleFilesQuery) | ||
| 23 | + if err != nil { | ||
| 24 | + return err | ||
| 25 | + } | ||
| 26 | + if !b { | ||
| 27 | + for _, validErr := range valid.Errors { | ||
| 28 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 29 | + } | ||
| 30 | + } | ||
| 31 | + return nil | ||
| 32 | +} |
| 1 | +package service | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/linmadan/egglib-go/core/application" | ||
| 6 | + "github.com/linmadan/egglib-go/utils/tool_funs" | ||
| 7 | + "github.com/tiptok/godevp/pkg/application/factory" | ||
| 8 | + "github.com/tiptok/godevp/pkg/application/projectModuleFiles/command" | ||
| 9 | + "github.com/tiptok/godevp/pkg/application/projectModuleFiles/query" | ||
| 10 | + "github.com/tiptok/godevp/pkg/domain" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +// 项目模块文件 | ||
| 14 | +type ProjectModuleFilesService struct { | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +// 创建 | ||
| 18 | +func (projectModuleFilesService *ProjectModuleFilesService) CreateProjectModuleFiles(createProjectModuleFilesCommand *command.CreateProjectModuleFilesCommand) (interface{}, error) { | ||
| 19 | + if err := createProjectModuleFilesCommand.ValidateCommand(); err != nil { | ||
| 20 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 21 | + } | ||
| 22 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 23 | + if err != nil { | ||
| 24 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 25 | + } | ||
| 26 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 27 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 28 | + } | ||
| 29 | + defer func() { | ||
| 30 | + transactionContext.RollbackTransaction() | ||
| 31 | + }() | ||
| 32 | + newProjectModuleFiles := &domain.ProjectModuleFiles{ | ||
| 33 | + ProjectModuleId: createProjectModuleFilesCommand.ProjectModuleId, | ||
| 34 | + ProjectModuleVersion: createProjectModuleFilesCommand.ProjectModuleVersion, | ||
| 35 | + FileType: createProjectModuleFilesCommand.FileType, | ||
| 36 | + CodeBlock: createProjectModuleFilesCommand.CodeBlock, | ||
| 37 | + ParentId: createProjectModuleFilesCommand.ParentId, | ||
| 38 | + Sort: createProjectModuleFilesCommand.Sort, | ||
| 39 | + Remark: createProjectModuleFilesCommand.Remark, | ||
| 40 | + } | ||
| 41 | + var projectModuleFilesRepository domain.ProjectModuleFilesRepository | ||
| 42 | + if value, err := factory.CreateProjectModuleFilesRepository(map[string]interface{}{ | ||
| 43 | + "transactionContext": transactionContext, | ||
| 44 | + }); err != nil { | ||
| 45 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 46 | + } else { | ||
| 47 | + projectModuleFilesRepository = value | ||
| 48 | + } | ||
| 49 | + if projectModuleFiles, err := projectModuleFilesRepository.Save(newProjectModuleFiles); err != nil { | ||
| 50 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 51 | + } else { | ||
| 52 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 53 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 54 | + } | ||
| 55 | + return projectModuleFiles, nil | ||
| 56 | + } | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +// 返回 | ||
| 60 | +func (projectModuleFilesService *ProjectModuleFilesService) GetProjectModuleFiles(getProjectModuleFilesQuery *query.GetProjectModuleFilesQuery) (interface{}, error) { | ||
| 61 | + if err := getProjectModuleFilesQuery.ValidateQuery(); err != nil { | ||
| 62 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 63 | + } | ||
| 64 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 65 | + if err != nil { | ||
| 66 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 67 | + } | ||
| 68 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 69 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 70 | + } | ||
| 71 | + defer func() { | ||
| 72 | + transactionContext.RollbackTransaction() | ||
| 73 | + }() | ||
| 74 | + var projectModuleFilesRepository domain.ProjectModuleFilesRepository | ||
| 75 | + if value, err := factory.CreateProjectModuleFilesRepository(map[string]interface{}{ | ||
| 76 | + "transactionContext": transactionContext, | ||
| 77 | + }); err != nil { | ||
| 78 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 79 | + } else { | ||
| 80 | + projectModuleFilesRepository = value | ||
| 81 | + } | ||
| 82 | + projectModuleFiles, err := projectModuleFilesRepository.FindOne(map[string]interface{}{"projectModuleFilesId": getProjectModuleFilesQuery.ProjectModuleFilesId}) | ||
| 83 | + if err != nil { | ||
| 84 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 85 | + } | ||
| 86 | + if projectModuleFiles == nil { | ||
| 87 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getProjectModuleFilesQuery.ProjectModuleFilesId))) | ||
| 88 | + } else { | ||
| 89 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 90 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 91 | + } | ||
| 92 | + return projectModuleFiles, nil | ||
| 93 | + } | ||
| 94 | +} | ||
| 95 | + | ||
| 96 | +// 返回列表 | ||
| 97 | +func (projectModuleFilesService *ProjectModuleFilesService) ListProjectModuleFiles(listProjectModuleFilesQuery *query.ListProjectModuleFilesQuery) (interface{}, error) { | ||
| 98 | + if err := listProjectModuleFilesQuery.ValidateQuery(); err != nil { | ||
| 99 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 100 | + } | ||
| 101 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 102 | + if err != nil { | ||
| 103 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 104 | + } | ||
| 105 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 106 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 107 | + } | ||
| 108 | + defer func() { | ||
| 109 | + transactionContext.RollbackTransaction() | ||
| 110 | + }() | ||
| 111 | + var projectModuleFilesRepository domain.ProjectModuleFilesRepository | ||
| 112 | + if value, err := factory.CreateProjectModuleFilesRepository(map[string]interface{}{ | ||
| 113 | + "transactionContext": transactionContext, | ||
| 114 | + }); err != nil { | ||
| 115 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 116 | + } else { | ||
| 117 | + projectModuleFilesRepository = value | ||
| 118 | + } | ||
| 119 | + if count, projectModuleFiless, err := projectModuleFilesRepository.Find(tool_funs.SimpleStructToMap(listProjectModuleFilesQuery)); err != nil { | ||
| 120 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 121 | + } else { | ||
| 122 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 123 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 124 | + } | ||
| 125 | + return map[string]interface{}{ | ||
| 126 | + "count": count, | ||
| 127 | + "projectModuleFiless": projectModuleFiless, | ||
| 128 | + }, nil | ||
| 129 | + } | ||
| 130 | +} | ||
| 131 | + | ||
| 132 | +// 移除 | ||
| 133 | +func (projectModuleFilesService *ProjectModuleFilesService) RemoveProjectModuleFiles(removeProjectModuleFilesCommand *command.RemoveProjectModuleFilesCommand) (interface{}, error) { | ||
| 134 | + if err := removeProjectModuleFilesCommand.ValidateCommand(); err != nil { | ||
| 135 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 136 | + } | ||
| 137 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 138 | + if err != nil { | ||
| 139 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 140 | + } | ||
| 141 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 142 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 143 | + } | ||
| 144 | + defer func() { | ||
| 145 | + transactionContext.RollbackTransaction() | ||
| 146 | + }() | ||
| 147 | + var projectModuleFilesRepository domain.ProjectModuleFilesRepository | ||
| 148 | + if value, err := factory.CreateProjectModuleFilesRepository(map[string]interface{}{ | ||
| 149 | + "transactionContext": transactionContext, | ||
| 150 | + }); err != nil { | ||
| 151 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 152 | + } else { | ||
| 153 | + projectModuleFilesRepository = value | ||
| 154 | + } | ||
| 155 | + projectModuleFiles, err := projectModuleFilesRepository.FindOne(map[string]interface{}{"projectModuleFilesId": removeProjectModuleFilesCommand.ProjectModuleFilesId}) | ||
| 156 | + if err != nil { | ||
| 157 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 158 | + } | ||
| 159 | + if projectModuleFiles == nil { | ||
| 160 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeProjectModuleFilesCommand.ProjectModuleFilesId))) | ||
| 161 | + } | ||
| 162 | + if projectModuleFiles, err := projectModuleFilesRepository.Remove(projectModuleFiles); err != nil { | ||
| 163 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 164 | + } else { | ||
| 165 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 166 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 167 | + } | ||
| 168 | + return projectModuleFiles, nil | ||
| 169 | + } | ||
| 170 | +} | ||
| 171 | + | ||
| 172 | +// 更新 | ||
| 173 | +func (projectModuleFilesService *ProjectModuleFilesService) UpdateProjectModuleFiles(updateProjectModuleFilesCommand *command.UpdateProjectModuleFilesCommand) (interface{}, error) { | ||
| 174 | + if err := updateProjectModuleFilesCommand.ValidateCommand(); err != nil { | ||
| 175 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 176 | + } | ||
| 177 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 178 | + if err != nil { | ||
| 179 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 180 | + } | ||
| 181 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 182 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 183 | + } | ||
| 184 | + defer func() { | ||
| 185 | + transactionContext.RollbackTransaction() | ||
| 186 | + }() | ||
| 187 | + var projectModuleFilesRepository domain.ProjectModuleFilesRepository | ||
| 188 | + if value, err := factory.CreateProjectModuleFilesRepository(map[string]interface{}{ | ||
| 189 | + "transactionContext": transactionContext, | ||
| 190 | + }); err != nil { | ||
| 191 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 192 | + } else { | ||
| 193 | + projectModuleFilesRepository = value | ||
| 194 | + } | ||
| 195 | + projectModuleFiles, err := projectModuleFilesRepository.FindOne(map[string]interface{}{"projectModuleFilesId": updateProjectModuleFilesCommand.ProjectModuleFilesId}) | ||
| 196 | + if err != nil { | ||
| 197 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 198 | + } | ||
| 199 | + if projectModuleFiles == nil { | ||
| 200 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateProjectModuleFilesCommand.ProjectModuleFilesId))) | ||
| 201 | + } | ||
| 202 | + if err := projectModuleFiles.Update(tool_funs.SimpleStructToMap(updateProjectModuleFilesCommand)); err != nil { | ||
| 203 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 204 | + } | ||
| 205 | + if projectModuleFiles, err := projectModuleFilesRepository.Save(projectModuleFiles); err != nil { | ||
| 206 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 207 | + } else { | ||
| 208 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 209 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 210 | + } | ||
| 211 | + return projectModuleFiles, nil | ||
| 212 | + } | ||
| 213 | +} | ||
| 214 | + | ||
| 215 | +func NewProjectModuleFilesService(options map[string]interface{}) *ProjectModuleFilesService { | ||
| 216 | + newProjectModuleFilesService := &ProjectModuleFilesService{} | ||
| 217 | + return newProjectModuleFilesService | ||
| 218 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type CreateProjectModuleVersionCommand struct { | ||
| 10 | + // 项目编号 | ||
| 11 | + ProjectModuleId int64 `json:"projectModuleId" valid:"Required"` | ||
| 12 | + // 唯一标识 | ||
| 13 | + Version int64 `json:"version" valid:"Required"` | ||
| 14 | + // 描述信息 | ||
| 15 | + Description string `json:"description" valid:"Required"` | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (createProjectModuleVersionCommand *CreateProjectModuleVersionCommand) Valid(validation *validation.Validation) { | ||
| 19 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 20 | +} | ||
| 21 | + | ||
| 22 | +func (createProjectModuleVersionCommand *CreateProjectModuleVersionCommand) ValidateCommand() error { | ||
| 23 | + valid := validation.Validation{} | ||
| 24 | + b, err := valid.Valid(createProjectModuleVersionCommand) | ||
| 25 | + if err != nil { | ||
| 26 | + return err | ||
| 27 | + } | ||
| 28 | + if !b { | ||
| 29 | + for _, validErr := range valid.Errors { | ||
| 30 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 31 | + } | ||
| 32 | + } | ||
| 33 | + return nil | ||
| 34 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type RemoveProjectModuleVersionCommand struct { | ||
| 10 | + ProjectModuleVersionId int64 `json:"projectModuleVersionId" valid:"Required"` | ||
| 11 | + // 项目版本编号 | ||
| 12 | + ProjectModuleVersion int64 `json:"projectModuleVersion" valid:"Required"` | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | +func (removeProjectModuleVersionCommand *RemoveProjectModuleVersionCommand) Valid(validation *validation.Validation) { | ||
| 16 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +func (removeProjectModuleVersionCommand *RemoveProjectModuleVersionCommand) ValidateCommand() error { | ||
| 20 | + valid := validation.Validation{} | ||
| 21 | + b, err := valid.Valid(removeProjectModuleVersionCommand) | ||
| 22 | + if err != nil { | ||
| 23 | + return err | ||
| 24 | + } | ||
| 25 | + if !b { | ||
| 26 | + for _, validErr := range valid.Errors { | ||
| 27 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 28 | + } | ||
| 29 | + } | ||
| 30 | + return nil | ||
| 31 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type UpdateProjectModuleVersionCommand struct { | ||
| 10 | + ProjectModuleVersionId int64 `json:"projectModuleVersionId" valid:"Required"` | ||
| 11 | + // 项目版本编号 | ||
| 12 | + ProjectModuleVersion int64 `json:"projectModuleVersion" valid:"Required"` | ||
| 13 | + // 项目编号 | ||
| 14 | + ProjectModuleId int64 `json:"projectModuleId" valid:"Required"` | ||
| 15 | + // 唯一标识 | ||
| 16 | + Version int64 `json:"version" valid:"Required"` | ||
| 17 | + // 描述信息 | ||
| 18 | + Description string `json:"description" valid:"Required"` | ||
| 19 | + // 状态 1:正常 2:删除 | ||
| 20 | + Status int `json:"status" valid:"Required"` | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +func (updateProjectModuleVersionCommand *UpdateProjectModuleVersionCommand) Valid(validation *validation.Validation) { | ||
| 24 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +func (updateProjectModuleVersionCommand *UpdateProjectModuleVersionCommand) ValidateCommand() error { | ||
| 28 | + valid := validation.Validation{} | ||
| 29 | + b, err := valid.Valid(updateProjectModuleVersionCommand) | ||
| 30 | + if err != nil { | ||
| 31 | + return err | ||
| 32 | + } | ||
| 33 | + if !b { | ||
| 34 | + for _, validErr := range valid.Errors { | ||
| 35 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 36 | + } | ||
| 37 | + } | ||
| 38 | + return nil | ||
| 39 | +} |
| 1 | +package query | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type GetProjectModuleVersionQuery struct { | ||
| 10 | + ProjectModuleVersionId int64 `json:"projectModuleVersionId" valid:"Required"` | ||
| 11 | + // 项目版本编号 | ||
| 12 | + ProjectModuleVersion int64 `json:"projectModuleVersion" valid:"Required"` | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | +func (getProjectModuleVersionQuery *GetProjectModuleVersionQuery) Valid(validation *validation.Validation) { | ||
| 16 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +func (getProjectModuleVersionQuery *GetProjectModuleVersionQuery) ValidateQuery() error { | ||
| 20 | + valid := validation.Validation{} | ||
| 21 | + b, err := valid.Valid(getProjectModuleVersionQuery) | ||
| 22 | + if err != nil { | ||
| 23 | + return err | ||
| 24 | + } | ||
| 25 | + if !b { | ||
| 26 | + for _, validErr := range valid.Errors { | ||
| 27 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 28 | + } | ||
| 29 | + } | ||
| 30 | + return nil | ||
| 31 | +} |
| 1 | +package query | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type ListProjectModuleVersionQuery struct { | ||
| 10 | + // 查询偏离量 | ||
| 11 | + Offset int `json:"offset" valid:"Required"` | ||
| 12 | + // 查询限制 | ||
| 13 | + Limit int `json:"limit" valid:"Required"` | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (listProjectModuleVersionQuery *ListProjectModuleVersionQuery) Valid(validation *validation.Validation) { | ||
| 17 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (listProjectModuleVersionQuery *ListProjectModuleVersionQuery) ValidateQuery() error { | ||
| 21 | + valid := validation.Validation{} | ||
| 22 | + b, err := valid.Valid(listProjectModuleVersionQuery) | ||
| 23 | + if err != nil { | ||
| 24 | + return err | ||
| 25 | + } | ||
| 26 | + if !b { | ||
| 27 | + for _, validErr := range valid.Errors { | ||
| 28 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 29 | + } | ||
| 30 | + } | ||
| 31 | + return nil | ||
| 32 | +} |
| 1 | +package service | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/linmadan/egglib-go/core/application" | ||
| 6 | + "github.com/linmadan/egglib-go/utils/tool_funs" | ||
| 7 | + "github.com/tiptok/godevp/pkg/application/factory" | ||
| 8 | + "github.com/tiptok/godevp/pkg/application/projectModuleVersion/command" | ||
| 9 | + "github.com/tiptok/godevp/pkg/application/projectModuleVersion/query" | ||
| 10 | + "github.com/tiptok/godevp/pkg/domain" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +// 项目模板版本 | ||
| 14 | +type ProjectModuleVersionService struct { | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +// 创建 | ||
| 18 | +func (projectModuleVersionService *ProjectModuleVersionService) CreateProjectModuleVersion(createProjectModuleVersionCommand *command.CreateProjectModuleVersionCommand) (interface{}, error) { | ||
| 19 | + if err := createProjectModuleVersionCommand.ValidateCommand(); err != nil { | ||
| 20 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 21 | + } | ||
| 22 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 23 | + if err != nil { | ||
| 24 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 25 | + } | ||
| 26 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 27 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 28 | + } | ||
| 29 | + defer func() { | ||
| 30 | + transactionContext.RollbackTransaction() | ||
| 31 | + }() | ||
| 32 | + newProjectModuleVersion := &domain.ProjectModuleVersion{ | ||
| 33 | + ProjectModuleId: createProjectModuleVersionCommand.ProjectModuleId, | ||
| 34 | + Version: createProjectModuleVersionCommand.Version, | ||
| 35 | + Description: createProjectModuleVersionCommand.Description, | ||
| 36 | + } | ||
| 37 | + var projectModuleVersionRepository domain.ProjectModuleVersionRepository | ||
| 38 | + if value, err := factory.CreateProjectModuleVersionRepository(map[string]interface{}{ | ||
| 39 | + "transactionContext": transactionContext, | ||
| 40 | + }); err != nil { | ||
| 41 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 42 | + } else { | ||
| 43 | + projectModuleVersionRepository = value | ||
| 44 | + } | ||
| 45 | + if projectModuleVersion, err := projectModuleVersionRepository.Save(newProjectModuleVersion); err != nil { | ||
| 46 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 47 | + } else { | ||
| 48 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 49 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 50 | + } | ||
| 51 | + return projectModuleVersion, nil | ||
| 52 | + } | ||
| 53 | +} | ||
| 54 | + | ||
| 55 | +// 返回 | ||
| 56 | +func (projectModuleVersionService *ProjectModuleVersionService) GetProjectModuleVersion(getProjectModuleVersionQuery *query.GetProjectModuleVersionQuery) (interface{}, error) { | ||
| 57 | + if err := getProjectModuleVersionQuery.ValidateQuery(); err != nil { | ||
| 58 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 59 | + } | ||
| 60 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 61 | + if err != nil { | ||
| 62 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 63 | + } | ||
| 64 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 65 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 66 | + } | ||
| 67 | + defer func() { | ||
| 68 | + transactionContext.RollbackTransaction() | ||
| 69 | + }() | ||
| 70 | + var projectModuleVersionRepository domain.ProjectModuleVersionRepository | ||
| 71 | + if value, err := factory.CreateProjectModuleVersionRepository(map[string]interface{}{ | ||
| 72 | + "transactionContext": transactionContext, | ||
| 73 | + }); err != nil { | ||
| 74 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 75 | + } else { | ||
| 76 | + projectModuleVersionRepository = value | ||
| 77 | + } | ||
| 78 | + projectModuleVersion, err := projectModuleVersionRepository.FindOne(map[string]interface{}{"projectModuleVersionId": getProjectModuleVersionQuery.ProjectModuleVersionId}) | ||
| 79 | + if err != nil { | ||
| 80 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 81 | + } | ||
| 82 | + if projectModuleVersion == nil { | ||
| 83 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getProjectModuleVersionQuery.ProjectModuleVersionId))) | ||
| 84 | + } else { | ||
| 85 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 86 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 87 | + } | ||
| 88 | + return projectModuleVersion, nil | ||
| 89 | + } | ||
| 90 | +} | ||
| 91 | + | ||
| 92 | +// 返回列表 | ||
| 93 | +func (projectModuleVersionService *ProjectModuleVersionService) ListProjectModuleVersion(listProjectModuleVersionQuery *query.ListProjectModuleVersionQuery) (interface{}, error) { | ||
| 94 | + if err := listProjectModuleVersionQuery.ValidateQuery(); err != nil { | ||
| 95 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 96 | + } | ||
| 97 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 98 | + if err != nil { | ||
| 99 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 100 | + } | ||
| 101 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 102 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 103 | + } | ||
| 104 | + defer func() { | ||
| 105 | + transactionContext.RollbackTransaction() | ||
| 106 | + }() | ||
| 107 | + var projectModuleVersionRepository domain.ProjectModuleVersionRepository | ||
| 108 | + if value, err := factory.CreateProjectModuleVersionRepository(map[string]interface{}{ | ||
| 109 | + "transactionContext": transactionContext, | ||
| 110 | + }); err != nil { | ||
| 111 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 112 | + } else { | ||
| 113 | + projectModuleVersionRepository = value | ||
| 114 | + } | ||
| 115 | + if count, projectModuleVersions, err := projectModuleVersionRepository.Find(tool_funs.SimpleStructToMap(listProjectModuleVersionQuery)); err != nil { | ||
| 116 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 117 | + } else { | ||
| 118 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 119 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 120 | + } | ||
| 121 | + return map[string]interface{}{ | ||
| 122 | + "count": count, | ||
| 123 | + "projectModuleVersions": projectModuleVersions, | ||
| 124 | + }, nil | ||
| 125 | + } | ||
| 126 | +} | ||
| 127 | + | ||
| 128 | +// 移除 | ||
| 129 | +func (projectModuleVersionService *ProjectModuleVersionService) RemoveProjectModuleVersion(removeProjectModuleVersionCommand *command.RemoveProjectModuleVersionCommand) (interface{}, error) { | ||
| 130 | + if err := removeProjectModuleVersionCommand.ValidateCommand(); err != nil { | ||
| 131 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 132 | + } | ||
| 133 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 134 | + if err != nil { | ||
| 135 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 136 | + } | ||
| 137 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 138 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 139 | + } | ||
| 140 | + defer func() { | ||
| 141 | + transactionContext.RollbackTransaction() | ||
| 142 | + }() | ||
| 143 | + var projectModuleVersionRepository domain.ProjectModuleVersionRepository | ||
| 144 | + if value, err := factory.CreateProjectModuleVersionRepository(map[string]interface{}{ | ||
| 145 | + "transactionContext": transactionContext, | ||
| 146 | + }); err != nil { | ||
| 147 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 148 | + } else { | ||
| 149 | + projectModuleVersionRepository = value | ||
| 150 | + } | ||
| 151 | + projectModuleVersion, err := projectModuleVersionRepository.FindOne(map[string]interface{}{"projectModuleVersionId": removeProjectModuleVersionCommand.ProjectModuleVersionId}) | ||
| 152 | + if err != nil { | ||
| 153 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 154 | + } | ||
| 155 | + if projectModuleVersion == nil { | ||
| 156 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeProjectModuleVersionCommand.ProjectModuleVersionId))) | ||
| 157 | + } | ||
| 158 | + if projectModuleVersion, err := projectModuleVersionRepository.Remove(projectModuleVersion); err != nil { | ||
| 159 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 160 | + } else { | ||
| 161 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 162 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 163 | + } | ||
| 164 | + return projectModuleVersion, nil | ||
| 165 | + } | ||
| 166 | +} | ||
| 167 | + | ||
| 168 | +// 更新 | ||
| 169 | +func (projectModuleVersionService *ProjectModuleVersionService) UpdateProjectModuleVersion(updateProjectModuleVersionCommand *command.UpdateProjectModuleVersionCommand) (interface{}, error) { | ||
| 170 | + if err := updateProjectModuleVersionCommand.ValidateCommand(); err != nil { | ||
| 171 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 172 | + } | ||
| 173 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 174 | + if err != nil { | ||
| 175 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 176 | + } | ||
| 177 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 178 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 179 | + } | ||
| 180 | + defer func() { | ||
| 181 | + transactionContext.RollbackTransaction() | ||
| 182 | + }() | ||
| 183 | + var projectModuleVersionRepository domain.ProjectModuleVersionRepository | ||
| 184 | + if value, err := factory.CreateProjectModuleVersionRepository(map[string]interface{}{ | ||
| 185 | + "transactionContext": transactionContext, | ||
| 186 | + }); err != nil { | ||
| 187 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 188 | + } else { | ||
| 189 | + projectModuleVersionRepository = value | ||
| 190 | + } | ||
| 191 | + projectModuleVersion, err := projectModuleVersionRepository.FindOne(map[string]interface{}{"projectModuleVersionId": updateProjectModuleVersionCommand.ProjectModuleVersionId}) | ||
| 192 | + if err != nil { | ||
| 193 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 194 | + } | ||
| 195 | + if projectModuleVersion == nil { | ||
| 196 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateProjectModuleVersionCommand.ProjectModuleVersionId))) | ||
| 197 | + } | ||
| 198 | + if err := projectModuleVersion.Update(tool_funs.SimpleStructToMap(updateProjectModuleVersionCommand)); err != nil { | ||
| 199 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 200 | + } | ||
| 201 | + if projectModuleVersion, err := projectModuleVersionRepository.Save(projectModuleVersion); err != nil { | ||
| 202 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 203 | + } else { | ||
| 204 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 205 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 206 | + } | ||
| 207 | + return projectModuleVersion, nil | ||
| 208 | + } | ||
| 209 | +} | ||
| 210 | + | ||
| 211 | +func NewProjectModuleVersionService(options map[string]interface{}) *ProjectModuleVersionService { | ||
| 212 | + newProjectModuleVersionService := &ProjectModuleVersionService{} | ||
| 213 | + return newProjectModuleVersionService | ||
| 214 | +} |
pkg/domain/project_module.go
0 → 100644
| 1 | +package domain | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +// 项目模块 | ||
| 6 | +type ProjectModule struct { | ||
| 7 | + // 唯一标识 | ||
| 8 | + Id int64 `json:"id"` | ||
| 9 | + // 项目名称 | ||
| 10 | + ProjectName string `json:"projectName"` | ||
| 11 | + // 项目唯一键值 | ||
| 12 | + ProjectKey string `json:"projectKey"` | ||
| 13 | + // 描述信息 | ||
| 14 | + Description string `json:"description"` | ||
| 15 | + // 状态 1:正常 2:删除 | ||
| 16 | + Status int `json:"status"` | ||
| 17 | + // 创建时间 | ||
| 18 | + CreateTime time.Time `json:"createTime"` | ||
| 19 | + // 更新时间 | ||
| 20 | + UpdateTime time.Time `json:"updateTime"` | ||
| 21 | + // 项目模板版本信息 | ||
| 22 | + ProjectModuleVersion *ProjectModuleVersion `json:"projectModuleVersion"` | ||
| 23 | +} | ||
| 24 | + | ||
| 25 | +type ProjectModuleRepository interface { | ||
| 26 | + Save(projectModule *ProjectModule) (*ProjectModule, error) | ||
| 27 | + Remove(projectModule *ProjectModule) (*ProjectModule, error) | ||
| 28 | + FindOne(queryOptions map[string]interface{}) (*ProjectModule, error) | ||
| 29 | + Find(queryOptions map[string]interface{}) (int64, []*ProjectModule, error) | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +func (projectModule *ProjectModule) Identify() interface{} { | ||
| 33 | + if projectModule.Id == 0 { | ||
| 34 | + return nil | ||
| 35 | + } | ||
| 36 | + return projectModule.Id | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +func (projectModule *ProjectModule) Update(data map[string]interface{}) error { | ||
| 40 | + if projectName, ok := data["projectName"]; ok { | ||
| 41 | + projectModule.ProjectName = projectName.(string) | ||
| 42 | + } | ||
| 43 | + if projectKey, ok := data["projectKey"]; ok { | ||
| 44 | + projectModule.ProjectKey = projectKey.(string) | ||
| 45 | + } | ||
| 46 | + if description, ok := data["description"]; ok { | ||
| 47 | + projectModule.Description = description.(string) | ||
| 48 | + } | ||
| 49 | + if status, ok := data["status"]; ok { | ||
| 50 | + projectModule.Status = status.(int) | ||
| 51 | + } | ||
| 52 | + if CreateTime, ok := data["CreateTime"]; ok { | ||
| 53 | + projectModule.CreateTime = CreateTime.(time.Time) | ||
| 54 | + } | ||
| 55 | + if UpdateTime, ok := data["UpdateTime"]; ok { | ||
| 56 | + projectModule.UpdateTime = UpdateTime.(time.Time) | ||
| 57 | + } | ||
| 58 | + //if id, ok := data["id"]; ok { | ||
| 59 | + // projectModule.ProjectModuleVersion.Id = id.(int64) | ||
| 60 | + //} | ||
| 61 | + //if projectModuleId, ok := data["projectModuleId"]; ok { | ||
| 62 | + // projectModule.ProjectModuleVersion.ProjectModuleId = projectModuleId.(int64) | ||
| 63 | + //} | ||
| 64 | + //if version, ok := data["version"]; ok { | ||
| 65 | + // projectModule.ProjectModuleVersion.Version = version.(int64) | ||
| 66 | + //} | ||
| 67 | + //if description, ok := data["description"]; ok { | ||
| 68 | + // projectModule.ProjectModuleVersion.Description = description.(string) | ||
| 69 | + //} | ||
| 70 | + //if status, ok := data["status"]; ok { | ||
| 71 | + // projectModule.ProjectModuleVersion.Status = status.(int) | ||
| 72 | + //} | ||
| 73 | + //if CreateTime, ok := data["CreateTime"]; ok { | ||
| 74 | + // projectModule.ProjectModuleVersion.CreateTime = CreateTime.(datetime) | ||
| 75 | + //} | ||
| 76 | + //if UpdateTime, ok := data["UpdateTime"]; ok { | ||
| 77 | + // projectModule.ProjectModuleVersion.UpdateTime = UpdateTime.(datetime) | ||
| 78 | + //} | ||
| 79 | + return nil | ||
| 80 | +} |
pkg/domain/project_module_files.go
0 → 100644
| 1 | +package domain | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +// 项目模板文件 | ||
| 6 | +type ProjectModuleFiles struct { | ||
| 7 | + // 唯一标识 | ||
| 8 | + Id int64 `json:"id"` | ||
| 9 | + // 项目编号 | ||
| 10 | + ProjectModuleId int64 `json:"projectModuleId"` | ||
| 11 | + // 项目版本编号 | ||
| 12 | + ProjectModuleVersion int64 `json:"projectModuleVersion"` | ||
| 13 | + // 文件类型 1:文件夹 2:文件 | ||
| 14 | + FileType int `json:"fileType"` | ||
| 15 | + // 代码块 | ||
| 16 | + CodeBlock string `json:"codeBlock"` | ||
| 17 | + // 父级Id | ||
| 18 | + ParentId int64 `json:"parentId"` | ||
| 19 | + // 排序 | ||
| 20 | + Sort int `json:"sort"` | ||
| 21 | + // 备注信息 | ||
| 22 | + Remark string `json:"remark"` | ||
| 23 | + // 创建时间 | ||
| 24 | + CreateTime time.Time `json:"createTime"` | ||
| 25 | + // 更新时间 | ||
| 26 | + UpdateTime time.Time `json:"updateTime"` | ||
| 27 | + // 当前文件相对路径 a/b/c | ||
| 28 | + Path string `json:"path"` | ||
| 29 | + // 标签 | ||
| 30 | + Tag string `json:"tag"` | ||
| 31 | +} | ||
| 32 | + | ||
| 33 | +type ProjectModuleFilesRepository interface { | ||
| 34 | + Save(projectModuleFiles *ProjectModuleFiles) (*ProjectModuleFiles, error) | ||
| 35 | + Remove(projectModuleFiles *ProjectModuleFiles) (*ProjectModuleFiles, error) | ||
| 36 | + FindOne(queryOptions map[string]interface{}) (*ProjectModuleFiles, error) | ||
| 37 | + Find(queryOptions map[string]interface{}) (int64, []*ProjectModuleFiles, error) | ||
| 38 | +} | ||
| 39 | + | ||
| 40 | +func (projectModuleFiles *ProjectModuleFiles) Identify() interface{} { | ||
| 41 | + if projectModuleFiles.Id == 0 { | ||
| 42 | + return nil | ||
| 43 | + } | ||
| 44 | + return projectModuleFiles.Id | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +func (projectModuleFiles *ProjectModuleFiles) Update(data map[string]interface{}) error { | ||
| 48 | + if id, ok := data["id"]; ok { | ||
| 49 | + projectModuleFiles.Id = id.(int64) | ||
| 50 | + } | ||
| 51 | + if projectModuleId, ok := data["projectModuleId"]; ok { | ||
| 52 | + projectModuleFiles.ProjectModuleId = projectModuleId.(int64) | ||
| 53 | + } | ||
| 54 | + if projectModuleVersion, ok := data["projectModuleVersion"]; ok { | ||
| 55 | + projectModuleFiles.ProjectModuleVersion = projectModuleVersion.(int64) | ||
| 56 | + } | ||
| 57 | + if fileType, ok := data["fileType"]; ok { | ||
| 58 | + projectModuleFiles.FileType = fileType.(int) | ||
| 59 | + } | ||
| 60 | + if codeBlock, ok := data["codeBlock"]; ok { | ||
| 61 | + projectModuleFiles.CodeBlock = codeBlock.(string) | ||
| 62 | + } | ||
| 63 | + if ParentId, ok := data["ParentId"]; ok { | ||
| 64 | + projectModuleFiles.ParentId = ParentId.(int64) | ||
| 65 | + } | ||
| 66 | + if Sort, ok := data["Sort"]; ok { | ||
| 67 | + projectModuleFiles.Sort = Sort.(int) | ||
| 68 | + } | ||
| 69 | + if remark, ok := data["remark"]; ok { | ||
| 70 | + projectModuleFiles.Remark = remark.(string) | ||
| 71 | + } | ||
| 72 | + if CreateTime, ok := data["CreateTime"]; ok { | ||
| 73 | + projectModuleFiles.CreateTime = CreateTime.(time.Time) | ||
| 74 | + } | ||
| 75 | + if UpdateTime, ok := data["UpdateTime"]; ok { | ||
| 76 | + projectModuleFiles.UpdateTime = UpdateTime.(time.Time) | ||
| 77 | + } | ||
| 78 | + if path, ok := data["path"]; ok { | ||
| 79 | + projectModuleFiles.Path = path.(string) | ||
| 80 | + } | ||
| 81 | + if tag, ok := data["tag"]; ok { | ||
| 82 | + projectModuleFiles.Tag = tag.(string) | ||
| 83 | + } | ||
| 84 | + return nil | ||
| 85 | +} |
pkg/domain/project_module_version.go
0 → 100644
| 1 | +package domain | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +// 项目模块版本 | ||
| 6 | +type ProjectModuleVersion struct { | ||
| 7 | + // 唯一标识 | ||
| 8 | + Id int64 `json:"id"` | ||
| 9 | + // 项目编号 | ||
| 10 | + ProjectModuleId int64 `json:"projectModuleId"` | ||
| 11 | + // 唯一标识 | ||
| 12 | + Version int64 `json:"version"` | ||
| 13 | + // 描述信息 | ||
| 14 | + Description string `json:"description"` | ||
| 15 | + // 状态 1:正常 2:删除 | ||
| 16 | + Status int `json:"status"` | ||
| 17 | + // 创建时间 | ||
| 18 | + CreateTime time.Time `json:"createTime"` | ||
| 19 | + // 更新时间 | ||
| 20 | + UpdateTime time.Time `json:"updateTime"` | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +type ProjectModuleVersionRepository interface { | ||
| 24 | + Save(projectModuleVersion *ProjectModuleVersion) (*ProjectModuleVersion, error) | ||
| 25 | + Remove(projectModuleVersion *ProjectModuleVersion) (*ProjectModuleVersion, error) | ||
| 26 | + FindOne(queryOptions map[string]interface{}) (*ProjectModuleVersion, error) | ||
| 27 | + Find(queryOptions map[string]interface{}) (int64, []*ProjectModuleVersion, error) | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +func (projectModuleVersion *ProjectModuleVersion) Identify() interface{} { | ||
| 31 | + if projectModuleVersion.Id == 0 { | ||
| 32 | + return nil | ||
| 33 | + } | ||
| 34 | + return projectModuleVersion.Id | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +func (projectModuleVersion *ProjectModuleVersion) Update(data map[string]interface{}) error { | ||
| 38 | + if id, ok := data["id"]; ok { | ||
| 39 | + projectModuleVersion.Id = id.(int64) | ||
| 40 | + } | ||
| 41 | + if projectModuleId, ok := data["projectModuleId"]; ok { | ||
| 42 | + projectModuleVersion.ProjectModuleId = projectModuleId.(int64) | ||
| 43 | + } | ||
| 44 | + if version, ok := data["version"]; ok { | ||
| 45 | + projectModuleVersion.Version = version.(int64) | ||
| 46 | + } | ||
| 47 | + if description, ok := data["description"]; ok { | ||
| 48 | + projectModuleVersion.Description = description.(string) | ||
| 49 | + } | ||
| 50 | + if status, ok := data["status"]; ok { | ||
| 51 | + projectModuleVersion.Status = status.(int) | ||
| 52 | + } | ||
| 53 | + if CreateTime, ok := data["CreateTime"]; ok { | ||
| 54 | + projectModuleVersion.CreateTime = CreateTime.(time.Time) | ||
| 55 | + } | ||
| 56 | + if UpdateTime, ok := data["UpdateTime"]; ok { | ||
| 57 | + projectModuleVersion.UpdateTime = UpdateTime.(time.Time) | ||
| 58 | + } | ||
| 59 | + return nil | ||
| 60 | +} |
| @@ -6,7 +6,7 @@ import ( | @@ -6,7 +6,7 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | type ClientVersion struct { | 8 | type ClientVersion struct { |
| 9 | - TableName string `pg:"client_versions,alias:client_version"` | 9 | + tableName struct{} `pg:"client_version,alias:client_version"` |
| 10 | // dcc | 10 | // dcc |
| 11 | Id int64 | 11 | Id int64 |
| 12 | // 提交人 | 12 | // 提交人 |
| 1 | +package models | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +type ProjectModule struct { | ||
| 6 | + tableName struct{} `pg:"project_module,alias:project_module"` | ||
| 7 | + // 唯一标识 | ||
| 8 | + Id int64 `pg:"pk"` | ||
| 9 | + // 项目名称 | ||
| 10 | + ProjectName string | ||
| 11 | + // 项目唯一键值 | ||
| 12 | + ProjectKey string | ||
| 13 | + // 描述信息 | ||
| 14 | + Description string | ||
| 15 | + // 状态 1:正常 2:删除 | ||
| 16 | + Status int | ||
| 17 | + // 创建时间 | ||
| 18 | + CreateTime time.Time | ||
| 19 | + // 更新时间 | ||
| 20 | + UpdateTime time.Time | ||
| 21 | + // 项目模板版本信息 | ||
| 22 | + ProjectModuleVersion *ProjectModuleVersion | ||
| 23 | +} |
| 1 | +package models | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +type ProjectModuleFiles struct { | ||
| 6 | + tableName struct{} `pg:"project_module_files,alias:project_module_files"` | ||
| 7 | + // 唯一标识 | ||
| 8 | + Id int64 `pg:"pk"` | ||
| 9 | + // 项目编号 | ||
| 10 | + ProjectModuleId int64 | ||
| 11 | + // 项目版本编号 | ||
| 12 | + ProjectModuleVersion int64 | ||
| 13 | + // 文件类型 1:文件夹 2:文件 | ||
| 14 | + FileType int | ||
| 15 | + // 代码块 | ||
| 16 | + CodeBlock string | ||
| 17 | + // 父级Id | ||
| 18 | + ParentId int64 | ||
| 19 | + // 排序 | ||
| 20 | + Sort int | ||
| 21 | + // 备注信息 | ||
| 22 | + Remark string | ||
| 23 | + // 创建时间 | ||
| 24 | + CreateTime time.Time | ||
| 25 | + // 更新时间 | ||
| 26 | + UpdateTime time.Time | ||
| 27 | + // 当前文件相对路径 a/b/c | ||
| 28 | + Path string | ||
| 29 | + // 标签 | ||
| 30 | + Tag string | ||
| 31 | +} |
| 1 | +package models | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +type ProjectModuleVersion struct { | ||
| 6 | + tableName struct{} `pg:"project_module_version,alias:project_module_version"` | ||
| 7 | + // 唯一标识 | ||
| 8 | + Id int64 `pg:"pk"` | ||
| 9 | + // 项目编号 | ||
| 10 | + ProjectModuleId int64 | ||
| 11 | + // 唯一标识 | ||
| 12 | + Version int64 | ||
| 13 | + // 描述信息 | ||
| 14 | + Description string | ||
| 15 | + // 状态 1:正常 2:删除 | ||
| 16 | + Status int | ||
| 17 | + // 创建时间 | ||
| 18 | + CreateTime time.Time | ||
| 19 | + // 更新时间 | ||
| 20 | + UpdateTime time.Time | ||
| 21 | +} |
| 1 | +package repository | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/go-pg/pg/v10" | ||
| 7 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
| 8 | + "github.com/tiptok/godevp/pkg/domain" | ||
| 9 | + "github.com/tiptok/godevp/pkg/infrastructure/pg/models" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +type ProjectModuleFilesRepository struct { | ||
| 13 | + transactionContext *pgTransaction.TransactionContext | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (repository *ProjectModuleFilesRepository) nextIdentify() (int64, error) { | ||
| 17 | + return 0, nil | ||
| 18 | +} | ||
| 19 | +func (repository *ProjectModuleFilesRepository) Save(projectModuleFiles *domain.ProjectModuleFiles) (*domain.ProjectModuleFiles, error) { | ||
| 20 | + tx := repository.transactionContext.PgTx | ||
| 21 | + if projectModuleFiles.Identify() == nil { | ||
| 22 | + _, err := repository.nextIdentify() | ||
| 23 | + if err != nil { | ||
| 24 | + return projectModuleFiles, err | ||
| 25 | + } | ||
| 26 | + if _, err := tx.QueryOne( | ||
| 27 | + pg.Scan(&projectModuleFiles.Id, &projectModuleFiles.ProjectModuleId, &projectModuleFiles.ProjectModuleVersion, &projectModuleFiles.FileType, &projectModuleFiles.CodeBlock, &projectModuleFiles.ParentId, &projectModuleFiles.Sort, &projectModuleFiles.Remark, &projectModuleFiles.CreateTime, &projectModuleFiles.UpdateTime, &projectModuleFiles.Path, &projectModuleFiles.Tag), | ||
| 28 | + "INSERT INTO project_module_filess (id, project_module_id, project_module_version, file_type, code_block, parent_id, sort, remark, create_time, update_time, path, tag) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id, project_module_id, project_module_version, file_type, code_block, parent_id, sort, remark, create_time, update_time, path, tag", | ||
| 29 | + projectModuleFiles.ProjectModuleId, projectModuleFiles.ProjectModuleVersion, projectModuleFiles.FileType, projectModuleFiles.CodeBlock, projectModuleFiles.ParentId, projectModuleFiles.Sort, projectModuleFiles.Remark, projectModuleFiles.CreateTime, projectModuleFiles.UpdateTime, projectModuleFiles.Path, projectModuleFiles.Tag); err != nil { | ||
| 30 | + return projectModuleFiles, err | ||
| 31 | + } | ||
| 32 | + } else { | ||
| 33 | + if _, err := tx.QueryOne( | ||
| 34 | + pg.Scan(&projectModuleFiles.ProjectModuleId, &projectModuleFiles.ProjectModuleVersion, &projectModuleFiles.FileType, &projectModuleFiles.CodeBlock, &projectModuleFiles.ParentId, &projectModuleFiles.Sort, &projectModuleFiles.Remark, &projectModuleFiles.CreateTime, &projectModuleFiles.UpdateTime, &projectModuleFiles.Path, &projectModuleFiles.Tag), | ||
| 35 | + "UPDATE project_module_filess SET project_module_id=?, project_module_version=?, file_type=?, code_block=?, parent_id=?, sort=?, remark=?, create_time=?, update_time=?, path=?, tag=? WHERE id=? RETURNING project_module_id, project_module_version, file_type, code_block, parent_id, sort, remark, create_time, update_time, path, tag", | ||
| 36 | + projectModuleFiles.ProjectModuleId, projectModuleFiles.ProjectModuleVersion, projectModuleFiles.FileType, projectModuleFiles.CodeBlock, projectModuleFiles.ParentId, projectModuleFiles.Sort, projectModuleFiles.Remark, projectModuleFiles.CreateTime, projectModuleFiles.UpdateTime, projectModuleFiles.Path, projectModuleFiles.Tag, projectModuleFiles.Identify()); err != nil { | ||
| 37 | + return projectModuleFiles, err | ||
| 38 | + } | ||
| 39 | + } | ||
| 40 | + return projectModuleFiles, nil | ||
| 41 | +} | ||
| 42 | +func (repository *ProjectModuleFilesRepository) Remove(projectModuleFiles *domain.ProjectModuleFiles) (*domain.ProjectModuleFiles, error) { | ||
| 43 | + tx := repository.transactionContext.PgTx | ||
| 44 | + projectModuleFilesModel := new(models.ProjectModuleFiles) | ||
| 45 | + projectModuleFilesModel.Id = projectModuleFiles.Identify().(int64) | ||
| 46 | + if _, err := tx.Model(projectModuleFilesModel).WherePK().Delete(); err != nil { | ||
| 47 | + return projectModuleFiles, err | ||
| 48 | + } | ||
| 49 | + return projectModuleFiles, nil | ||
| 50 | +} | ||
| 51 | +func (repository *ProjectModuleFilesRepository) FindOne(queryOptions map[string]interface{}) (*domain.ProjectModuleFiles, error) { | ||
| 52 | + tx := repository.transactionContext.PgTx | ||
| 53 | + projectModuleFilesModel := new(models.ProjectModuleFiles) | ||
| 54 | + query := tx.Model(projectModuleFilesModel) | ||
| 55 | + if projectModuleFilesId, ok := queryOptions["projectModuleFilesId"]; ok { | ||
| 56 | + query = query.Where("project_module_files.id = ?", projectModuleFilesId) | ||
| 57 | + } | ||
| 58 | + if err := query.First(); err != nil { | ||
| 59 | + if err.Error() == "pg: no rows in result set" { | ||
| 60 | + return nil, fmt.Errorf("没有此资源") | ||
| 61 | + } else { | ||
| 62 | + return nil, err | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + if projectModuleFilesModel.Id == 0 { | ||
| 66 | + return nil, nil | ||
| 67 | + } else { | ||
| 68 | + return repository.transformPgModelToDomainModel(projectModuleFilesModel) | ||
| 69 | + } | ||
| 70 | +} | ||
| 71 | +func (repository *ProjectModuleFilesRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.ProjectModuleFiles, error) { | ||
| 72 | + tx := repository.transactionContext.PgTx | ||
| 73 | + var projectModuleFilesModels []*models.ProjectModuleFiles | ||
| 74 | + projectModuleFiless := make([]*domain.ProjectModuleFiles, 0) | ||
| 75 | + query := tx.Model(&projectModuleFilesModels) | ||
| 76 | + if offset, ok := queryOptions["offset"]; ok { | ||
| 77 | + offset := offset.(int) | ||
| 78 | + if offset > -1 { | ||
| 79 | + query = query.Offset(offset) | ||
| 80 | + } | ||
| 81 | + } else { | ||
| 82 | + query = query.Offset(0) | ||
| 83 | + } | ||
| 84 | + if limit, ok := queryOptions["limit"]; ok { | ||
| 85 | + limit := limit.(int) | ||
| 86 | + if limit > -1 { | ||
| 87 | + query = query.Limit(limit) | ||
| 88 | + } | ||
| 89 | + } else { | ||
| 90 | + query = query.Limit(20) | ||
| 91 | + } | ||
| 92 | + if count, err := query.Order("id DESC").SelectAndCount(); err != nil { | ||
| 93 | + return 0, projectModuleFiless, err | ||
| 94 | + } else { | ||
| 95 | + for _, projectModuleFilesModel := range projectModuleFilesModels { | ||
| 96 | + if projectModuleFiles, err := repository.transformPgModelToDomainModel(projectModuleFilesModel); err != nil { | ||
| 97 | + return 0, projectModuleFiless, err | ||
| 98 | + } else { | ||
| 99 | + projectModuleFiless = append(projectModuleFiless, projectModuleFiles) | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + return int64(count), projectModuleFiless, nil | ||
| 103 | + } | ||
| 104 | +} | ||
| 105 | +func (repository *ProjectModuleFilesRepository) transformPgModelToDomainModel(projectModuleFilesModel *models.ProjectModuleFiles) (*domain.ProjectModuleFiles, error) { | ||
| 106 | + return &domain.ProjectModuleFiles{ | ||
| 107 | + Id: projectModuleFilesModel.Id, | ||
| 108 | + ProjectModuleId: projectModuleFilesModel.ProjectModuleId, | ||
| 109 | + ProjectModuleVersion: projectModuleFilesModel.ProjectModuleVersion, | ||
| 110 | + FileType: projectModuleFilesModel.FileType, | ||
| 111 | + CodeBlock: projectModuleFilesModel.CodeBlock, | ||
| 112 | + ParentId: projectModuleFilesModel.ParentId, | ||
| 113 | + Sort: projectModuleFilesModel.Sort, | ||
| 114 | + Remark: projectModuleFilesModel.Remark, | ||
| 115 | + CreateTime: projectModuleFilesModel.CreateTime, | ||
| 116 | + UpdateTime: projectModuleFilesModel.UpdateTime, | ||
| 117 | + Path: projectModuleFilesModel.Path, | ||
| 118 | + Tag: projectModuleFilesModel.Tag, | ||
| 119 | + }, nil | ||
| 120 | +} | ||
| 121 | +func NewProjectModuleFilesRepository(transactionContext *pgTransaction.TransactionContext) (*ProjectModuleFilesRepository, error) { | ||
| 122 | + if transactionContext == nil { | ||
| 123 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 124 | + } else { | ||
| 125 | + return &ProjectModuleFilesRepository{ | ||
| 126 | + transactionContext: transactionContext, | ||
| 127 | + }, nil | ||
| 128 | + } | ||
| 129 | +} |
| 1 | +package repository | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/go-pg/pg/v10" | ||
| 7 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
| 8 | + "github.com/tiptok/godevp/pkg/domain" | ||
| 9 | + "github.com/tiptok/godevp/pkg/infrastructure/pg/models" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +type ProjectModuleRepository struct { | ||
| 13 | + transactionContext *pgTransaction.TransactionContext | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (repository *ProjectModuleRepository) nextIdentify() (int64, error) { | ||
| 17 | + return 0, nil | ||
| 18 | +} | ||
| 19 | +func (repository *ProjectModuleRepository) Save(projectModule *domain.ProjectModule) (*domain.ProjectModule, error) { | ||
| 20 | + tx := repository.transactionContext.PgTx | ||
| 21 | + if projectModule.Identify() == nil { | ||
| 22 | + _, err := repository.nextIdentify() | ||
| 23 | + if err != nil { | ||
| 24 | + return projectModule, err | ||
| 25 | + } | ||
| 26 | + if _, err := tx.QueryOne( | ||
| 27 | + pg.Scan(&projectModule.Id, &projectModule.ProjectName, &projectModule.ProjectKey, &projectModule.Description, &projectModule.Status, &projectModule.CreateTime, &projectModule.UpdateTime, &projectModule.ProjectModuleVersion), | ||
| 28 | + "INSERT INTO project_module (id, project_name, project_key, description, status, create_time, update_time, project_module_version) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?) RETURNING id, project_name, project_key, description, status, create_time, update_time, project_module_version", | ||
| 29 | + projectModule.ProjectName, projectModule.ProjectKey, projectModule.Description, projectModule.Status, projectModule.CreateTime, projectModule.UpdateTime, projectModule.ProjectModuleVersion); err != nil { | ||
| 30 | + return projectModule, err | ||
| 31 | + } | ||
| 32 | + } else { | ||
| 33 | + if _, err := tx.QueryOne( | ||
| 34 | + pg.Scan(&projectModule.ProjectName, &projectModule.ProjectKey, &projectModule.Description, &projectModule.Status, &projectModule.CreateTime, &projectModule.UpdateTime, &projectModule.ProjectModuleVersion), | ||
| 35 | + "UPDATE project_module SET project_name=?, project_key=?, description=?, status=?, create_time=?, update_time=?, project_module_version=? WHERE id=? RETURNING project_name, project_key, description, status, create_time, update_time, project_module_version", | ||
| 36 | + projectModule.ProjectName, projectModule.ProjectKey, projectModule.Description, projectModule.Status, projectModule.CreateTime, projectModule.UpdateTime, projectModule.ProjectModuleVersion, projectModule.Identify()); err != nil { | ||
| 37 | + return projectModule, err | ||
| 38 | + } | ||
| 39 | + } | ||
| 40 | + return projectModule, nil | ||
| 41 | +} | ||
| 42 | +func (repository *ProjectModuleRepository) Remove(projectModule *domain.ProjectModule) (*domain.ProjectModule, error) { | ||
| 43 | + tx := repository.transactionContext.PgTx | ||
| 44 | + projectModuleModel := new(models.ProjectModule) | ||
| 45 | + projectModuleModel.Id = projectModule.Identify().(int64) | ||
| 46 | + if _, err := tx.Model(projectModuleModel).WherePK().Delete(); err != nil { | ||
| 47 | + return projectModule, err | ||
| 48 | + } | ||
| 49 | + return projectModule, nil | ||
| 50 | +} | ||
| 51 | +func (repository *ProjectModuleRepository) FindOne(queryOptions map[string]interface{}) (*domain.ProjectModule, error) { | ||
| 52 | + tx := repository.transactionContext.PgTx | ||
| 53 | + projectModuleModel := new(models.ProjectModule) | ||
| 54 | + query := tx.Model(projectModuleModel) | ||
| 55 | + if projectModuleId, ok := queryOptions["projectModuleId"]; ok { | ||
| 56 | + query = query.Where("project_module.id = ?", projectModuleId) | ||
| 57 | + } | ||
| 58 | + if err := query.First(); err != nil { | ||
| 59 | + if err.Error() == "pg: no rows in result set" { | ||
| 60 | + return nil, fmt.Errorf("没有此资源") | ||
| 61 | + } else { | ||
| 62 | + return nil, err | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + if projectModuleModel.Id == 0 { | ||
| 66 | + return nil, nil | ||
| 67 | + } else { | ||
| 68 | + return repository.transformPgModelToDomainModel(projectModuleModel) | ||
| 69 | + } | ||
| 70 | +} | ||
| 71 | +func (repository *ProjectModuleRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.ProjectModule, error) { | ||
| 72 | + tx := repository.transactionContext.PgTx | ||
| 73 | + var projectModuleModels []*models.ProjectModule | ||
| 74 | + projectModules := make([]*domain.ProjectModule, 0) | ||
| 75 | + query := tx.Model(&projectModuleModels) | ||
| 76 | + if offset, ok := queryOptions["offset"]; ok { | ||
| 77 | + offset := offset.(int) | ||
| 78 | + if offset > -1 { | ||
| 79 | + query = query.Offset(offset) | ||
| 80 | + } | ||
| 81 | + } else { | ||
| 82 | + query = query.Offset(0) | ||
| 83 | + } | ||
| 84 | + if limit, ok := queryOptions["limit"]; ok { | ||
| 85 | + limit := limit.(int) | ||
| 86 | + if limit > -1 { | ||
| 87 | + query = query.Limit(limit) | ||
| 88 | + } | ||
| 89 | + } else { | ||
| 90 | + query = query.Limit(20) | ||
| 91 | + } | ||
| 92 | + if count, err := query.Order("id DESC").SelectAndCount(); err != nil { | ||
| 93 | + return 0, projectModules, err | ||
| 94 | + } else { | ||
| 95 | + for _, projectModuleModel := range projectModuleModels { | ||
| 96 | + if projectModule, err := repository.transformPgModelToDomainModel(projectModuleModel); err != nil { | ||
| 97 | + return 0, projectModules, err | ||
| 98 | + } else { | ||
| 99 | + projectModules = append(projectModules, projectModule) | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + return int64(count), projectModules, nil | ||
| 103 | + } | ||
| 104 | +} | ||
| 105 | +func (repository *ProjectModuleRepository) transformPgModelToDomainModel(projectModuleModel *models.ProjectModule) (*domain.ProjectModule, error) { | ||
| 106 | + return &domain.ProjectModule{ | ||
| 107 | + Id: projectModuleModel.Id, | ||
| 108 | + ProjectName: projectModuleModel.ProjectName, | ||
| 109 | + ProjectKey: projectModuleModel.ProjectKey, | ||
| 110 | + Description: projectModuleModel.Description, | ||
| 111 | + Status: projectModuleModel.Status, | ||
| 112 | + CreateTime: projectModuleModel.CreateTime, | ||
| 113 | + UpdateTime: projectModuleModel.UpdateTime, | ||
| 114 | + //ProjectModuleVersion: projectModuleModel.ProjectModuleVersion, | ||
| 115 | + }, nil | ||
| 116 | +} | ||
| 117 | +func NewProjectModuleRepository(transactionContext *pgTransaction.TransactionContext) (*ProjectModuleRepository, error) { | ||
| 118 | + if transactionContext == nil { | ||
| 119 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 120 | + } else { | ||
| 121 | + return &ProjectModuleRepository{ | ||
| 122 | + transactionContext: transactionContext, | ||
| 123 | + }, nil | ||
| 124 | + } | ||
| 125 | +} |
| 1 | +package repository | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/go-pg/pg/v10" | ||
| 7 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
| 8 | + "github.com/tiptok/godevp/pkg/domain" | ||
| 9 | + "github.com/tiptok/godevp/pkg/infrastructure/pg/models" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +type ProjectModuleVersionRepository struct { | ||
| 13 | + transactionContext *pgTransaction.TransactionContext | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (repository *ProjectModuleVersionRepository) nextIdentify() (int64, error) { | ||
| 17 | + return 0, nil | ||
| 18 | +} | ||
| 19 | +func (repository *ProjectModuleVersionRepository) Save(projectModuleVersion *domain.ProjectModuleVersion) (*domain.ProjectModuleVersion, error) { | ||
| 20 | + tx := repository.transactionContext.PgTx | ||
| 21 | + if projectModuleVersion.Identify() == nil { | ||
| 22 | + _, err := repository.nextIdentify() | ||
| 23 | + if err != nil { | ||
| 24 | + return projectModuleVersion, err | ||
| 25 | + } | ||
| 26 | + if _, err := tx.QueryOne( | ||
| 27 | + pg.Scan(&projectModuleVersion.Id, &projectModuleVersion.ProjectModuleId, &projectModuleVersion.Version, &projectModuleVersion.Description, &projectModuleVersion.Status, &projectModuleVersion.CreateTime, &projectModuleVersion.UpdateTime), | ||
| 28 | + "INSERT INTO project_module_versions (project_module_version.id, project_module_version.project_module_id, project_module_version.version, project_module_version.description, project_module_version.status, project_module_version._create_time, project_module_version._update_time, id, project_module_id, version, description, status, create_time, update_time) VALUES (?, ?, ?, ?, ?, ?, ?, DEFAULT, ?, ?, ?, ?, ?, ?) RETURNING project_module_version.id, project_module_version.project_module_id, project_module_version.version, project_module_version.description, project_module_version.status, project_module_version._create_time, project_module_version._update_time, id, project_module_id, version, description, status, create_time, update_time", | ||
| 29 | + projectModuleVersion.ProjectModuleId, projectModuleVersion.Version, projectModuleVersion.Description, projectModuleVersion.Status, projectModuleVersion.CreateTime, projectModuleVersion.UpdateTime); err != nil { | ||
| 30 | + return projectModuleVersion, err | ||
| 31 | + } | ||
| 32 | + } else { | ||
| 33 | + if _, err := tx.QueryOne( | ||
| 34 | + pg.Scan(&projectModuleVersion.ProjectModuleId, &projectModuleVersion.Version, &projectModuleVersion.Description, &projectModuleVersion.Status, &projectModuleVersion.CreateTime, &projectModuleVersion.UpdateTime), | ||
| 35 | + "UPDATE project_module_versions SET project_module_version.id=?, project_module_version.project_module_id=?, project_module_version.version=?, project_module_version.description=?, project_module_version.status=?, project_module_version._create_time=?, project_module_version._update_time=?, project_module_id=?, version=?, description=?, status=?, create_time=?, update_time=? WHERE id=? RETURNING project_module_version.id, project_module_version.project_module_id, project_module_version.version, project_module_version.description, project_module_version.status, project_module_version._create_time, project_module_version._update_time, project_module_id, version, description, status, create_time, update_time", | ||
| 36 | + projectModuleVersion.ProjectModuleId, projectModuleVersion.Version, projectModuleVersion.Description, projectModuleVersion.Status, projectModuleVersion.CreateTime, projectModuleVersion.UpdateTime, projectModuleVersion.Identify()); err != nil { | ||
| 37 | + return projectModuleVersion, err | ||
| 38 | + } | ||
| 39 | + } | ||
| 40 | + return projectModuleVersion, nil | ||
| 41 | +} | ||
| 42 | +func (repository *ProjectModuleVersionRepository) Remove(projectModuleVersion *domain.ProjectModuleVersion) (*domain.ProjectModuleVersion, error) { | ||
| 43 | + tx := repository.transactionContext.PgTx | ||
| 44 | + projectModuleVersionModel := new(models.ProjectModuleVersion) | ||
| 45 | + projectModuleVersionModel.Id = projectModuleVersion.Identify().(int64) | ||
| 46 | + if _, err := tx.Model(projectModuleVersionModel).WherePK().Delete(); err != nil { | ||
| 47 | + return projectModuleVersion, err | ||
| 48 | + } | ||
| 49 | + return projectModuleVersion, nil | ||
| 50 | +} | ||
| 51 | +func (repository *ProjectModuleVersionRepository) FindOne(queryOptions map[string]interface{}) (*domain.ProjectModuleVersion, error) { | ||
| 52 | + tx := repository.transactionContext.PgTx | ||
| 53 | + projectModuleVersionModel := new(models.ProjectModuleVersion) | ||
| 54 | + query := tx.Model(projectModuleVersionModel) | ||
| 55 | + if projectModuleVersionId, ok := queryOptions["projectModuleVersionId"]; ok { | ||
| 56 | + query = query.Where("project_module_version.id = ?", projectModuleVersionId) | ||
| 57 | + } | ||
| 58 | + if err := query.First(); err != nil { | ||
| 59 | + if err.Error() == "pg: no rows in result set" { | ||
| 60 | + return nil, fmt.Errorf("没有此资源") | ||
| 61 | + } else { | ||
| 62 | + return nil, err | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + if projectModuleVersionModel.Id == 0 { | ||
| 66 | + return nil, nil | ||
| 67 | + } else { | ||
| 68 | + return repository.transformPgModelToDomainModel(projectModuleVersionModel) | ||
| 69 | + } | ||
| 70 | +} | ||
| 71 | +func (repository *ProjectModuleVersionRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.ProjectModuleVersion, error) { | ||
| 72 | + tx := repository.transactionContext.PgTx | ||
| 73 | + var projectModuleVersionModels []*models.ProjectModuleVersion | ||
| 74 | + projectModuleVersions := make([]*domain.ProjectModuleVersion, 0) | ||
| 75 | + query := tx.Model(&projectModuleVersionModels) | ||
| 76 | + if offset, ok := queryOptions["offset"]; ok { | ||
| 77 | + offset := offset.(int) | ||
| 78 | + if offset > -1 { | ||
| 79 | + query = query.Offset(offset) | ||
| 80 | + } | ||
| 81 | + } else { | ||
| 82 | + query = query.Offset(0) | ||
| 83 | + } | ||
| 84 | + if limit, ok := queryOptions["limit"]; ok { | ||
| 85 | + limit := limit.(int) | ||
| 86 | + if limit > -1 { | ||
| 87 | + query = query.Limit(limit) | ||
| 88 | + } | ||
| 89 | + } else { | ||
| 90 | + query = query.Limit(20) | ||
| 91 | + } | ||
| 92 | + if count, err := query.Order("id DESC").SelectAndCount(); err != nil { | ||
| 93 | + return 0, projectModuleVersions, err | ||
| 94 | + } else { | ||
| 95 | + for _, projectModuleVersionModel := range projectModuleVersionModels { | ||
| 96 | + if projectModuleVersion, err := repository.transformPgModelToDomainModel(projectModuleVersionModel); err != nil { | ||
| 97 | + return 0, projectModuleVersions, err | ||
| 98 | + } else { | ||
| 99 | + projectModuleVersions = append(projectModuleVersions, projectModuleVersion) | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + return int64(count), projectModuleVersions, nil | ||
| 103 | + } | ||
| 104 | +} | ||
| 105 | +func (repository *ProjectModuleVersionRepository) transformPgModelToDomainModel(projectModuleVersionModel *models.ProjectModuleVersion) (*domain.ProjectModuleVersion, error) { | ||
| 106 | + return &domain.ProjectModuleVersion{ | ||
| 107 | + Id: projectModuleVersionModel.Id, | ||
| 108 | + ProjectModuleId: projectModuleVersionModel.ProjectModuleId, | ||
| 109 | + Version: projectModuleVersionModel.Version, | ||
| 110 | + Description: projectModuleVersionModel.Description, | ||
| 111 | + Status: projectModuleVersionModel.Status, | ||
| 112 | + CreateTime: projectModuleVersionModel.CreateTime, | ||
| 113 | + UpdateTime: projectModuleVersionModel.UpdateTime, | ||
| 114 | + }, nil | ||
| 115 | +} | ||
| 116 | +func NewProjectModuleVersionRepository(transactionContext *pgTransaction.TransactionContext) (*ProjectModuleVersionRepository, error) { | ||
| 117 | + if transactionContext == nil { | ||
| 118 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 119 | + } else { | ||
| 120 | + return &ProjectModuleVersionRepository{ | ||
| 121 | + transactionContext: transactionContext, | ||
| 122 | + }, nil | ||
| 123 | + } | ||
| 124 | +} |
| 1 | +package controllers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "encoding/json" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego" | ||
| 7 | + "github.com/linmadan/egglib-go/web/beego/utils" | ||
| 8 | + "github.com/tiptok/godevp/pkg/application/projectModule/command" | ||
| 9 | + "github.com/tiptok/godevp/pkg/application/projectModule/query" | ||
| 10 | + "github.com/tiptok/godevp/pkg/application/projectModule/service" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +type ProjectModuleController struct { | ||
| 14 | + beego.Controller | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +func (controller *ProjectModuleController) CreateProjectModule() { | ||
| 18 | + projectModuleService := service.NewProjectModuleService(nil) | ||
| 19 | + createProjectModuleCommand := &command.CreateProjectModuleCommand{} | ||
| 20 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), createProjectModuleCommand) | ||
| 21 | + data, err := projectModuleService.CreateProjectModule(createProjectModuleCommand) | ||
| 22 | + var response utils.JsonResponse | ||
| 23 | + if err != nil { | ||
| 24 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 25 | + } else { | ||
| 26 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 27 | + } | ||
| 28 | + controller.Data["json"] = response | ||
| 29 | + controller.ServeJSON() | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +func (controller *ProjectModuleController) UpdateProjectModule() { | ||
| 33 | + projectModuleService := service.NewProjectModuleService(nil) | ||
| 34 | + updateProjectModuleCommand := &command.UpdateProjectModuleCommand{} | ||
| 35 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), updateProjectModuleCommand) | ||
| 36 | + projectModuleId, _ := controller.GetInt64(":projectModuleId") | ||
| 37 | + updateProjectModuleCommand.ProjectModuleId = projectModuleId | ||
| 38 | + data, err := projectModuleService.UpdateProjectModule(updateProjectModuleCommand) | ||
| 39 | + var response utils.JsonResponse | ||
| 40 | + if err != nil { | ||
| 41 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 42 | + } else { | ||
| 43 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 44 | + } | ||
| 45 | + controller.Data["json"] = response | ||
| 46 | + controller.ServeJSON() | ||
| 47 | +} | ||
| 48 | + | ||
| 49 | +func (controller *ProjectModuleController) GetProjectModule() { | ||
| 50 | + projectModuleService := service.NewProjectModuleService(nil) | ||
| 51 | + getProjectModuleQuery := &query.GetProjectModuleQuery{} | ||
| 52 | + projectModuleId, _ := controller.GetInt64(":projectModuleId") | ||
| 53 | + getProjectModuleQuery.ProjectModuleId = projectModuleId | ||
| 54 | + data, err := projectModuleService.GetProjectModule(getProjectModuleQuery) | ||
| 55 | + var response utils.JsonResponse | ||
| 56 | + if err != nil { | ||
| 57 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 58 | + } else { | ||
| 59 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 60 | + } | ||
| 61 | + controller.Data["json"] = response | ||
| 62 | + controller.ServeJSON() | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +func (controller *ProjectModuleController) RemoveProjectModule() { | ||
| 66 | + projectModuleService := service.NewProjectModuleService(nil) | ||
| 67 | + removeProjectModuleCommand := &command.RemoveProjectModuleCommand{} | ||
| 68 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), removeProjectModuleCommand) | ||
| 69 | + projectModuleId, _ := controller.GetInt64(":projectModuleId") | ||
| 70 | + removeProjectModuleCommand.ProjectModuleId = projectModuleId | ||
| 71 | + data, err := projectModuleService.RemoveProjectModule(removeProjectModuleCommand) | ||
| 72 | + var response utils.JsonResponse | ||
| 73 | + if err != nil { | ||
| 74 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 75 | + } else { | ||
| 76 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 77 | + } | ||
| 78 | + controller.Data["json"] = response | ||
| 79 | + controller.ServeJSON() | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +func (controller *ProjectModuleController) ListProjectModule() { | ||
| 83 | + projectModuleService := service.NewProjectModuleService(nil) | ||
| 84 | + listProjectModuleQuery := &query.ListProjectModuleQuery{} | ||
| 85 | + offset, _ := controller.GetInt("offset") | ||
| 86 | + listProjectModuleQuery.Offset = offset | ||
| 87 | + limit, _ := controller.GetInt("limit") | ||
| 88 | + listProjectModuleQuery.Limit = limit | ||
| 89 | + data, err := projectModuleService.ListProjectModule(listProjectModuleQuery) | ||
| 90 | + var response utils.JsonResponse | ||
| 91 | + if err != nil { | ||
| 92 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 93 | + } else { | ||
| 94 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 95 | + } | ||
| 96 | + controller.Data["json"] = response | ||
| 97 | + controller.ServeJSON() | ||
| 98 | +} |
| 1 | +package controllers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "encoding/json" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego" | ||
| 7 | + "github.com/linmadan/egglib-go/web/beego/utils" | ||
| 8 | + "github.com/tiptok/godevp/pkg/application/projectModuleFiles/command" | ||
| 9 | + "github.com/tiptok/godevp/pkg/application/projectModuleFiles/query" | ||
| 10 | + "github.com/tiptok/godevp/pkg/application/projectModuleFiles/service" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +type ProjectModuleFilesController struct { | ||
| 14 | + beego.Controller | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +func (controller *ProjectModuleFilesController) CreateProjectModuleFiles() { | ||
| 18 | + projectModuleFilesService := service.NewProjectModuleFilesService(nil) | ||
| 19 | + createProjectModuleFilesCommand := &command.CreateProjectModuleFilesCommand{} | ||
| 20 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), createProjectModuleFilesCommand) | ||
| 21 | + data, err := projectModuleFilesService.CreateProjectModuleFiles(createProjectModuleFilesCommand) | ||
| 22 | + var response utils.JsonResponse | ||
| 23 | + if err != nil { | ||
| 24 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 25 | + } else { | ||
| 26 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 27 | + } | ||
| 28 | + controller.Data["json"] = response | ||
| 29 | + controller.ServeJSON() | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +func (controller *ProjectModuleFilesController) UpdateProjectModuleFiles() { | ||
| 33 | + projectModuleFilesService := service.NewProjectModuleFilesService(nil) | ||
| 34 | + updateProjectModuleFilesCommand := &command.UpdateProjectModuleFilesCommand{} | ||
| 35 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), updateProjectModuleFilesCommand) | ||
| 36 | + projectModuleFilesId, _ := controller.GetInt64(":projectModuleFilesId") | ||
| 37 | + updateProjectModuleFilesCommand.ProjectModuleFilesId = projectModuleFilesId | ||
| 38 | + data, err := projectModuleFilesService.UpdateProjectModuleFiles(updateProjectModuleFilesCommand) | ||
| 39 | + var response utils.JsonResponse | ||
| 40 | + if err != nil { | ||
| 41 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 42 | + } else { | ||
| 43 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 44 | + } | ||
| 45 | + controller.Data["json"] = response | ||
| 46 | + controller.ServeJSON() | ||
| 47 | +} | ||
| 48 | + | ||
| 49 | +func (controller *ProjectModuleFilesController) GetProjectModuleFiles() { | ||
| 50 | + projectModuleFilesService := service.NewProjectModuleFilesService(nil) | ||
| 51 | + getProjectModuleFilesQuery := &query.GetProjectModuleFilesQuery{} | ||
| 52 | + projectModuleFilesId, _ := controller.GetInt64(":projectModuleFilesId") | ||
| 53 | + getProjectModuleFilesQuery.ProjectModuleFilesId = projectModuleFilesId | ||
| 54 | + data, err := projectModuleFilesService.GetProjectModuleFiles(getProjectModuleFilesQuery) | ||
| 55 | + var response utils.JsonResponse | ||
| 56 | + if err != nil { | ||
| 57 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 58 | + } else { | ||
| 59 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 60 | + } | ||
| 61 | + controller.Data["json"] = response | ||
| 62 | + controller.ServeJSON() | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +func (controller *ProjectModuleFilesController) RemoveProjectModuleFiles() { | ||
| 66 | + projectModuleFilesService := service.NewProjectModuleFilesService(nil) | ||
| 67 | + removeProjectModuleFilesCommand := &command.RemoveProjectModuleFilesCommand{} | ||
| 68 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), removeProjectModuleFilesCommand) | ||
| 69 | + projectModuleFilesId, _ := controller.GetInt64(":projectModuleFilesId") | ||
| 70 | + removeProjectModuleFilesCommand.ProjectModuleFilesId = projectModuleFilesId | ||
| 71 | + data, err := projectModuleFilesService.RemoveProjectModuleFiles(removeProjectModuleFilesCommand) | ||
| 72 | + var response utils.JsonResponse | ||
| 73 | + if err != nil { | ||
| 74 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 75 | + } else { | ||
| 76 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 77 | + } | ||
| 78 | + controller.Data["json"] = response | ||
| 79 | + controller.ServeJSON() | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +func (controller *ProjectModuleFilesController) ListProjectModuleFiles() { | ||
| 83 | + projectModuleFilesService := service.NewProjectModuleFilesService(nil) | ||
| 84 | + listProjectModuleFilesQuery := &query.ListProjectModuleFilesQuery{} | ||
| 85 | + offset, _ := controller.GetInt("offset") | ||
| 86 | + listProjectModuleFilesQuery.Offset = offset | ||
| 87 | + limit, _ := controller.GetInt("limit") | ||
| 88 | + listProjectModuleFilesQuery.Limit = limit | ||
| 89 | + data, err := projectModuleFilesService.ListProjectModuleFiles(listProjectModuleFilesQuery) | ||
| 90 | + var response utils.JsonResponse | ||
| 91 | + if err != nil { | ||
| 92 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 93 | + } else { | ||
| 94 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 95 | + } | ||
| 96 | + controller.Data["json"] = response | ||
| 97 | + controller.ServeJSON() | ||
| 98 | +} |
| 1 | +package controllers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "encoding/json" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego" | ||
| 7 | + "github.com/linmadan/egglib-go/web/beego/utils" | ||
| 8 | + "github.com/tiptok/godevp/pkg/application/projectModuleVersion/command" | ||
| 9 | + "github.com/tiptok/godevp/pkg/application/projectModuleVersion/query" | ||
| 10 | + "github.com/tiptok/godevp/pkg/application/projectModuleVersion/service" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +type ProjectModuleVersionController struct { | ||
| 14 | + beego.Controller | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +func (controller *ProjectModuleVersionController) CreateProjectModuleVersion() { | ||
| 18 | + projectModuleVersionService := service.NewProjectModuleVersionService(nil) | ||
| 19 | + createProjectModuleVersionCommand := &command.CreateProjectModuleVersionCommand{} | ||
| 20 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), createProjectModuleVersionCommand) | ||
| 21 | + data, err := projectModuleVersionService.CreateProjectModuleVersion(createProjectModuleVersionCommand) | ||
| 22 | + var response utils.JsonResponse | ||
| 23 | + if err != nil { | ||
| 24 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 25 | + } else { | ||
| 26 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 27 | + } | ||
| 28 | + controller.Data["json"] = response | ||
| 29 | + controller.ServeJSON() | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +func (controller *ProjectModuleVersionController) UpdateProjectModuleVersion() { | ||
| 33 | + projectModuleVersionService := service.NewProjectModuleVersionService(nil) | ||
| 34 | + updateProjectModuleVersionCommand := &command.UpdateProjectModuleVersionCommand{} | ||
| 35 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), updateProjectModuleVersionCommand) | ||
| 36 | + projectModuleVersionId, _ := controller.GetInt64(":projectModuleVersionId") | ||
| 37 | + updateProjectModuleVersionCommand.ProjectModuleVersionId = projectModuleVersionId | ||
| 38 | + data, err := projectModuleVersionService.UpdateProjectModuleVersion(updateProjectModuleVersionCommand) | ||
| 39 | + var response utils.JsonResponse | ||
| 40 | + if err != nil { | ||
| 41 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 42 | + } else { | ||
| 43 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 44 | + } | ||
| 45 | + controller.Data["json"] = response | ||
| 46 | + controller.ServeJSON() | ||
| 47 | +} | ||
| 48 | + | ||
| 49 | +func (controller *ProjectModuleVersionController) GetProjectModuleVersion() { | ||
| 50 | + projectModuleVersionService := service.NewProjectModuleVersionService(nil) | ||
| 51 | + getProjectModuleVersionQuery := &query.GetProjectModuleVersionQuery{} | ||
| 52 | + projectModuleVersionId, _ := controller.GetInt64(":projectModuleVersionId") | ||
| 53 | + getProjectModuleVersionQuery.ProjectModuleVersionId = projectModuleVersionId | ||
| 54 | + data, err := projectModuleVersionService.GetProjectModuleVersion(getProjectModuleVersionQuery) | ||
| 55 | + var response utils.JsonResponse | ||
| 56 | + if err != nil { | ||
| 57 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 58 | + } else { | ||
| 59 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 60 | + } | ||
| 61 | + controller.Data["json"] = response | ||
| 62 | + controller.ServeJSON() | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +func (controller *ProjectModuleVersionController) RemoveProjectModuleVersion() { | ||
| 66 | + projectModuleVersionService := service.NewProjectModuleVersionService(nil) | ||
| 67 | + removeProjectModuleVersionCommand := &command.RemoveProjectModuleVersionCommand{} | ||
| 68 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), removeProjectModuleVersionCommand) | ||
| 69 | + projectModuleVersionId, _ := controller.GetInt64(":projectModuleVersionId") | ||
| 70 | + removeProjectModuleVersionCommand.ProjectModuleVersionId = projectModuleVersionId | ||
| 71 | + data, err := projectModuleVersionService.RemoveProjectModuleVersion(removeProjectModuleVersionCommand) | ||
| 72 | + var response utils.JsonResponse | ||
| 73 | + if err != nil { | ||
| 74 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 75 | + } else { | ||
| 76 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 77 | + } | ||
| 78 | + controller.Data["json"] = response | ||
| 79 | + controller.ServeJSON() | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +func (controller *ProjectModuleVersionController) ListProjectModuleVersion() { | ||
| 83 | + projectModuleVersionService := service.NewProjectModuleVersionService(nil) | ||
| 84 | + listProjectModuleVersionQuery := &query.ListProjectModuleVersionQuery{} | ||
| 85 | + offset, _ := controller.GetInt("offset") | ||
| 86 | + listProjectModuleVersionQuery.Offset = offset | ||
| 87 | + limit, _ := controller.GetInt("limit") | ||
| 88 | + listProjectModuleVersionQuery.Limit = limit | ||
| 89 | + data, err := projectModuleVersionService.ListProjectModuleVersion(listProjectModuleVersionQuery) | ||
| 90 | + var response utils.JsonResponse | ||
| 91 | + if err != nil { | ||
| 92 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 93 | + } else { | ||
| 94 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 95 | + } | ||
| 96 | + controller.Data["json"] = response | ||
| 97 | + controller.ServeJSON() | ||
| 98 | +} |
| 1 | +package routers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/astaxie/beego" | ||
| 5 | + "github.com/tiptok/godevp/pkg/port/beego/controllers" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func init() { | ||
| 9 | + beego.Router("/project-module-filess/", &controllers.ProjectModuleFilesController{}, "Post:CreateProjectModuleFiles") | ||
| 10 | + beego.Router("/project-module-filess/:projectModuleFilesId", &controllers.ProjectModuleFilesController{}, "Put:UpdateProjectModuleFiles") | ||
| 11 | + beego.Router("/project-module-filess/:projectModuleFilesId", &controllers.ProjectModuleFilesController{}, "Get:GetProjectModuleFiles") | ||
| 12 | + beego.Router("/project-module-filess/:projectModuleFilesId", &controllers.ProjectModuleFilesController{}, "Delete:RemoveProjectModuleFiles") | ||
| 13 | + beego.Router("/project-module-filess/", &controllers.ProjectModuleFilesController{}, "Get:ListProjectModuleFiles") | ||
| 14 | +} |
| 1 | +package routers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/astaxie/beego" | ||
| 5 | + "github.com/tiptok/godevp/pkg/port/beego/controllers" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func init() { | ||
| 9 | + beego.Router("/project-modules/", &controllers.ProjectModuleController{}, "Post:CreateProjectModule") | ||
| 10 | + beego.Router("/project-modules/:projectModuleId", &controllers.ProjectModuleController{}, "Put:UpdateProjectModule") | ||
| 11 | + beego.Router("/project-modules/:projectModuleId", &controllers.ProjectModuleController{}, "Get:GetProjectModule") | ||
| 12 | + beego.Router("/project-modules/:projectModuleId", &controllers.ProjectModuleController{}, "Delete:RemoveProjectModule") | ||
| 13 | + beego.Router("/project-modules/", &controllers.ProjectModuleController{}, "Get:ListProjectModule") | ||
| 14 | +} |
| 1 | +package routers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/astaxie/beego" | ||
| 5 | + "github.com/tiptok/godevp/pkg/port/beego/controllers" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func init() { | ||
| 9 | + beego.Router("/project-module-versions/", &controllers.ProjectModuleVersionController{}, "Post:CreateProjectModuleVersion") | ||
| 10 | + beego.Router("/project-module-versions/:projectModuleVersionId", &controllers.ProjectModuleVersionController{}, "Put:UpdateProjectModuleVersion") | ||
| 11 | + beego.Router("/project-module-versions/:projectModuleVersionId", &controllers.ProjectModuleVersionController{}, "Get:GetProjectModuleVersion") | ||
| 12 | + beego.Router("/project-module-versions/:projectModuleVersionId", &controllers.ProjectModuleVersionController{}, "Delete:RemoveProjectModuleVersion") | ||
| 13 | + beego.Router("/project-module-versions/", &controllers.ProjectModuleVersionController{}, "Get:ListProjectModuleVersion") | ||
| 14 | +} |
| 1 | +package project_module | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("创建", func() { | ||
| 13 | + Describe("提交数据创建", func() { | ||
| 14 | + Context("提交正确的新项目模块数据", func() { | ||
| 15 | + It("返回项目模块数据", func() { | ||
| 16 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 17 | + body := map[string]interface{}{ | ||
| 18 | + "projectName": "string", | ||
| 19 | + "projectKey": "string", | ||
| 20 | + "description": "string", | ||
| 21 | + "status": "int", | ||
| 22 | + } | ||
| 23 | + httpExpect.POST("/project-modules/"). | ||
| 24 | + WithJSON(body). | ||
| 25 | + Expect(). | ||
| 26 | + Status(http.StatusOK). | ||
| 27 | + JSON(). | ||
| 28 | + Object(). | ||
| 29 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 30 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 31 | + ContainsKey("data").Value("data").Object(). | ||
| 32 | + ContainsKey("id").ValueNotEqual("id", BeZero()) | ||
| 33 | + }) | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + AfterEach(func() { | ||
| 37 | + _, err := pG.DB.Exec("DELETE FROM project_modules WHERE true") | ||
| 38 | + Expect(err).NotTo(HaveOccurred()) | ||
| 39 | + }) | ||
| 40 | +}) |
| 1 | +package project_module | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("返回", func() { | ||
| 14 | + var projectModuleId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleId), | ||
| 18 | + "INSERT INTO project_modules (id, project_name, project_key, description, status, create_time, update_time, project_module_version) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectName", "testProjectKey", "testDescription", "testStatus", "testCreateTime", "testUpdateTime", "testProjectModuleVersion") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("根据projectModuleId参数返回项目模块", func() { | ||
| 23 | + Context("传入有效的projectModuleId", func() { | ||
| 24 | + It("返回项目模块数据", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + httpExpect.GET("/project-modules/{projectModuleId}"). | ||
| 27 | + Expect(). | ||
| 28 | + Status(http.StatusOK). | ||
| 29 | + JSON(). | ||
| 30 | + Object(). | ||
| 31 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 32 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 33 | + ContainsKey("data").Value("data").Object() | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + }) | ||
| 37 | + AfterEach(func() { | ||
| 38 | + _, err := pG.DB.Exec("DELETE FROM project_modules WHERE true") | ||
| 39 | + Expect(err).NotTo(HaveOccurred()) | ||
| 40 | + }) | ||
| 41 | +}) |
| 1 | +package project_module | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("返回列表", func() { | ||
| 14 | + var projectModuleId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleId), | ||
| 18 | + "INSERT INTO project_modules (id, project_name, project_key, description, status, create_time, update_time, project_module_version) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectName", "testProjectKey", "testDescription", "testStatus", "testCreateTime", "testUpdateTime", "testProjectModuleVersion") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("根据参数返回项目模块列表", func() { | ||
| 23 | + Context("传入有效的参数", func() { | ||
| 24 | + It("返回项目模块数据列表", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + httpExpect.GET("/project-modules/"). | ||
| 27 | + WithQuery("offset", "int"). | ||
| 28 | + WithQuery("limit", "int"). | ||
| 29 | + Expect(). | ||
| 30 | + Status(http.StatusOK). | ||
| 31 | + JSON(). | ||
| 32 | + Object(). | ||
| 33 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 34 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 35 | + ContainsKey("data").Value("data").Object(). | ||
| 36 | + ContainsKey("count").ValueEqual("count", 1). | ||
| 37 | + ContainsKey("projectModules").Value("projectModules").Array() | ||
| 38 | + }) | ||
| 39 | + }) | ||
| 40 | + }) | ||
| 41 | + AfterEach(func() { | ||
| 42 | + _, err := pG.DB.Exec("DELETE FROM project_modules WHERE true") | ||
| 43 | + Expect(err).NotTo(HaveOccurred()) | ||
| 44 | + }) | ||
| 45 | +}) |
| 1 | +package project_module | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + "net/http/httptest" | ||
| 6 | + "testing" | ||
| 7 | + | ||
| 8 | + "github.com/astaxie/beego" | ||
| 9 | + . "github.com/onsi/ginkgo" | ||
| 10 | + . "github.com/onsi/gomega" | ||
| 11 | + _ "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 12 | + _ "github.com/tiptok/godevp/pkg/port/beego" | ||
| 13 | +) | ||
| 14 | + | ||
| 15 | +func TestProjectModule(t *testing.T) { | ||
| 16 | + RegisterFailHandler(Fail) | ||
| 17 | + RunSpecs(t, "Beego Port ProjectModule Correlations Test Case Suite") | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +var handler http.Handler | ||
| 21 | +var server *httptest.Server | ||
| 22 | + | ||
| 23 | +var _ = BeforeSuite(func() { | ||
| 24 | + handler = beego.BeeApp.Handlers | ||
| 25 | + server = httptest.NewServer(handler) | ||
| 26 | +}) | ||
| 27 | + | ||
| 28 | +var _ = AfterSuite(func() { | ||
| 29 | + server.Close() | ||
| 30 | +}) |
| 1 | +package project_module | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("移除", func() { | ||
| 14 | + var projectModuleId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleId), | ||
| 18 | + "INSERT INTO project_modules (id, project_name, project_key, description, status, create_time, update_time, project_module_version) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectName", "testProjectKey", "testDescription", "testStatus", "testCreateTime", "testUpdateTime", "testProjectModuleVersion") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("根据参数移除", func() { | ||
| 23 | + Context("传入有效的projectModuleId", func() { | ||
| 24 | + It("返回被移除项目模块的数据", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + httpExpect.DELETE("/project-modules/{projectModuleId}"). | ||
| 27 | + Expect(). | ||
| 28 | + Status(http.StatusOK). | ||
| 29 | + JSON(). | ||
| 30 | + Object(). | ||
| 31 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 32 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 33 | + ContainsKey("data").Value("data").Object() | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + }) | ||
| 37 | + AfterEach(func() { | ||
| 38 | + _, err := pG.DB.Exec("DELETE FROM project_modules WHERE true") | ||
| 39 | + Expect(err).NotTo(HaveOccurred()) | ||
| 40 | + }) | ||
| 41 | +}) |
| 1 | +package project_module | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("更新", func() { | ||
| 14 | + var projectModuleId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleId), | ||
| 18 | + "INSERT INTO project_modules (id, project_name, project_key, description, status, create_time, update_time, project_module_version) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectName", "testProjectKey", "testDescription", "testStatus", "testCreateTime", "testUpdateTime", "testProjectModuleVersion") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("提交数据更新", func() { | ||
| 23 | + Context("提交正确的项目模块数据", func() { | ||
| 24 | + It("返回更新后的项目模块数据", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + body := map[string]interface{}{ | ||
| 27 | + "projectName": "string", | ||
| 28 | + "projectKey": "string", | ||
| 29 | + "description": "string", | ||
| 30 | + "status": "int", | ||
| 31 | + } | ||
| 32 | + httpExpect.PUT("/project-modules/{projectModuleId}"). | ||
| 33 | + WithJSON(body). | ||
| 34 | + Expect(). | ||
| 35 | + Status(http.StatusOK). | ||
| 36 | + JSON(). | ||
| 37 | + Object(). | ||
| 38 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 39 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 40 | + ContainsKey("data").Value("data").Object(). | ||
| 41 | + ContainsKey("id").ValueEqual("id", projectModuleId) | ||
| 42 | + }) | ||
| 43 | + }) | ||
| 44 | + }) | ||
| 45 | + AfterEach(func() { | ||
| 46 | + _, err := pG.DB.Exec("DELETE FROM project_modules WHERE true") | ||
| 47 | + Expect(err).NotTo(HaveOccurred()) | ||
| 48 | + }) | ||
| 49 | +}) |
| 1 | +package project_module_files | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("创建", func() { | ||
| 13 | + Describe("提交数据创建", func() { | ||
| 14 | + Context("提交正确的新项目模板文件数据", func() { | ||
| 15 | + It("返回项目模板文件数据", func() { | ||
| 16 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 17 | + body := map[string]interface{}{ | ||
| 18 | + "projectModuleId": "int64", | ||
| 19 | + "projectModuleVersion": "int64", | ||
| 20 | + "fileType": "int", | ||
| 21 | + "codeBlock": "string", | ||
| 22 | + "ParentId": "int64", | ||
| 23 | + "Sort": "int", | ||
| 24 | + "remark": "string", | ||
| 25 | + } | ||
| 26 | + httpExpect.POST("/project-module-filess/"). | ||
| 27 | + WithJSON(body). | ||
| 28 | + Expect(). | ||
| 29 | + Status(http.StatusOK). | ||
| 30 | + JSON(). | ||
| 31 | + Object(). | ||
| 32 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 33 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 34 | + ContainsKey("data").Value("data").Object(). | ||
| 35 | + ContainsKey("id").ValueNotEqual("id", BeZero()) | ||
| 36 | + }) | ||
| 37 | + }) | ||
| 38 | + }) | ||
| 39 | + AfterEach(func() { | ||
| 40 | + _, err := pG.DB.Exec("DELETE FROM project_module_filess WHERE true") | ||
| 41 | + Expect(err).NotTo(HaveOccurred()) | ||
| 42 | + }) | ||
| 43 | +}) |
| 1 | +package project_module_files | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("返回", func() { | ||
| 14 | + var projectModuleFilesId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleFilesId), | ||
| 18 | + "INSERT INTO project_module_filess (id, project_module_id, project_module_version, file_type, code_block, parent_id, sort, remark, create_time, update_time, path, tag) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectModuleId", "testProjectModuleVersion", "testFileType", "testCodeBlock", "testParentId", "testSort", "testRemark", "testCreateTime", "testUpdateTime", "testPath", "testTag") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("根据projectModuleFilesId参数返回项目模板文件", func() { | ||
| 23 | + Context("传入有效的projectModuleFilesId", func() { | ||
| 24 | + It("返回项目模板文件数据", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + httpExpect.GET("/project-module-filess/{projectModuleFilesId}"). | ||
| 27 | + Expect(). | ||
| 28 | + Status(http.StatusOK). | ||
| 29 | + JSON(). | ||
| 30 | + Object(). | ||
| 31 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 32 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 33 | + ContainsKey("data").Value("data").Object() | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + }) | ||
| 37 | + AfterEach(func() { | ||
| 38 | + _, err := pG.DB.Exec("DELETE FROM project_module_filess WHERE true") | ||
| 39 | + Expect(err).NotTo(HaveOccurred()) | ||
| 40 | + }) | ||
| 41 | +}) |
| 1 | +package project_module_files | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("返回列表", func() { | ||
| 14 | + var projectModuleFilesId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleFilesId), | ||
| 18 | + "INSERT INTO project_module_filess (id, project_module_id, project_module_version, file_type, code_block, parent_id, sort, remark, create_time, update_time, path, tag) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectModuleId", "testProjectModuleVersion", "testFileType", "testCodeBlock", "testParentId", "testSort", "testRemark", "testCreateTime", "testUpdateTime", "testPath", "testTag") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("根据参数返回项目模板文件列表", func() { | ||
| 23 | + Context("传入有效的参数", func() { | ||
| 24 | + It("返回项目模板文件数据列表", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + httpExpect.GET("/project-module-filess/"). | ||
| 27 | + WithQuery("offset", "int"). | ||
| 28 | + WithQuery("limit", "int"). | ||
| 29 | + Expect(). | ||
| 30 | + Status(http.StatusOK). | ||
| 31 | + JSON(). | ||
| 32 | + Object(). | ||
| 33 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 34 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 35 | + ContainsKey("data").Value("data").Object(). | ||
| 36 | + ContainsKey("count").ValueEqual("count", 1). | ||
| 37 | + ContainsKey("projectModuleFiless").Value("projectModuleFiless").Array() | ||
| 38 | + }) | ||
| 39 | + }) | ||
| 40 | + }) | ||
| 41 | + AfterEach(func() { | ||
| 42 | + _, err := pG.DB.Exec("DELETE FROM project_module_filess WHERE true") | ||
| 43 | + Expect(err).NotTo(HaveOccurred()) | ||
| 44 | + }) | ||
| 45 | +}) |
| 1 | +package project_module_files | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + "net/http/httptest" | ||
| 6 | + "testing" | ||
| 7 | + | ||
| 8 | + "github.com/astaxie/beego" | ||
| 9 | + . "github.com/onsi/ginkgo" | ||
| 10 | + . "github.com/onsi/gomega" | ||
| 11 | + _ "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 12 | + _ "github.com/tiptok/godevp/pkg/port/beego" | ||
| 13 | +) | ||
| 14 | + | ||
| 15 | +func TestProjectModuleFiles(t *testing.T) { | ||
| 16 | + RegisterFailHandler(Fail) | ||
| 17 | + RunSpecs(t, "Beego Port ProjectModuleFiles Correlations Test Case Suite") | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +var handler http.Handler | ||
| 21 | +var server *httptest.Server | ||
| 22 | + | ||
| 23 | +var _ = BeforeSuite(func() { | ||
| 24 | + handler = beego.BeeApp.Handlers | ||
| 25 | + server = httptest.NewServer(handler) | ||
| 26 | +}) | ||
| 27 | + | ||
| 28 | +var _ = AfterSuite(func() { | ||
| 29 | + server.Close() | ||
| 30 | +}) |
| 1 | +package project_module_files | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("移除", func() { | ||
| 14 | + var projectModuleFilesId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleFilesId), | ||
| 18 | + "INSERT INTO project_module_filess (id, project_module_id, project_module_version, file_type, code_block, parent_id, sort, remark, create_time, update_time, path, tag) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectModuleId", "testProjectModuleVersion", "testFileType", "testCodeBlock", "testParentId", "testSort", "testRemark", "testCreateTime", "testUpdateTime", "testPath", "testTag") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("根据参数移除", func() { | ||
| 23 | + Context("传入有效的projectModuleFilesId", func() { | ||
| 24 | + It("返回被移除项目模板文件的数据", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + httpExpect.DELETE("/project-module-filess/{projectModuleFilesId}"). | ||
| 27 | + Expect(). | ||
| 28 | + Status(http.StatusOK). | ||
| 29 | + JSON(). | ||
| 30 | + Object(). | ||
| 31 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 32 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 33 | + ContainsKey("data").Value("data").Object() | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + }) | ||
| 37 | + AfterEach(func() { | ||
| 38 | + _, err := pG.DB.Exec("DELETE FROM project_module_filess WHERE true") | ||
| 39 | + Expect(err).NotTo(HaveOccurred()) | ||
| 40 | + }) | ||
| 41 | +}) |
| 1 | +package project_module_files | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("更新", func() { | ||
| 14 | + var projectModuleFilesId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleFilesId), | ||
| 18 | + "INSERT INTO project_module_filess (id, project_module_id, project_module_version, file_type, code_block, parent_id, sort, remark, create_time, update_time, path, tag) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectModuleId", "testProjectModuleVersion", "testFileType", "testCodeBlock", "testParentId", "testSort", "testRemark", "testCreateTime", "testUpdateTime", "testPath", "testTag") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("提交数据更新", func() { | ||
| 23 | + Context("提交正确的项目模板文件数据", func() { | ||
| 24 | + It("返回更新后的项目模板文件数据", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + body := map[string]interface{}{ | ||
| 27 | + "codeBlock": "string", | ||
| 28 | + "remark": "string", | ||
| 29 | + } | ||
| 30 | + httpExpect.PUT("/project-module-filess/{projectModuleFilesId}"). | ||
| 31 | + WithJSON(body). | ||
| 32 | + Expect(). | ||
| 33 | + Status(http.StatusOK). | ||
| 34 | + JSON(). | ||
| 35 | + Object(). | ||
| 36 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 37 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 38 | + ContainsKey("data").Value("data").Object(). | ||
| 39 | + ContainsKey("id").ValueEqual("id", projectModuleFilesId) | ||
| 40 | + }) | ||
| 41 | + }) | ||
| 42 | + }) | ||
| 43 | + AfterEach(func() { | ||
| 44 | + _, err := pG.DB.Exec("DELETE FROM project_module_filess WHERE true") | ||
| 45 | + Expect(err).NotTo(HaveOccurred()) | ||
| 46 | + }) | ||
| 47 | +}) |
| 1 | +package project_module_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("创建", func() { | ||
| 13 | + Describe("提交数据创建", func() { | ||
| 14 | + Context("提交正确的新项目模块版本数据", func() { | ||
| 15 | + It("返回项目模块版本数据", func() { | ||
| 16 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 17 | + body := map[string]interface{}{ | ||
| 18 | + "projectModuleId": "int64", | ||
| 19 | + "version": "int64", | ||
| 20 | + "description": "string", | ||
| 21 | + } | ||
| 22 | + httpExpect.POST("/project-module-versions/"). | ||
| 23 | + WithJSON(body). | ||
| 24 | + Expect(). | ||
| 25 | + Status(http.StatusOK). | ||
| 26 | + JSON(). | ||
| 27 | + Object(). | ||
| 28 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 29 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 30 | + ContainsKey("data").Value("data").Object(). | ||
| 31 | + ContainsKey("id").ValueNotEqual("id", BeZero()) | ||
| 32 | + }) | ||
| 33 | + }) | ||
| 34 | + }) | ||
| 35 | + AfterEach(func() { | ||
| 36 | + _, err := pG.DB.Exec("DELETE FROM project_module_versions WHERE true") | ||
| 37 | + Expect(err).NotTo(HaveOccurred()) | ||
| 38 | + }) | ||
| 39 | +}) |
| 1 | +package project_module_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("返回", func() { | ||
| 14 | + var projectModuleVersionId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleVersionId), | ||
| 18 | + "INSERT INTO project_module_versions (project_module_version.id, project_module_version.project_module_id, project_module_version.version, project_module_version.description, project_module_version.status, project_module_version._create_time, project_module_version._update_time, id, project_module_id, version, description, status, create_time, update_time) VALUES (?, ?, ?, ?, ?, ?, ?, DEFAULT, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectModuleVersionId", "testProjectModuleVersionProjectModuleId", "testProjectModuleVersionVersion", "testProjectModuleVersionDescription", "testProjectModuleVersionStatus", "testProjectModuleVersionCreateTime", "testProjectModuleVersionUpdateTime", "testProjectModuleId", "testVersion", "testDescription", "testStatus", "testCreateTime", "testUpdateTime") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("根据projectModuleVersionId参数返回项目模块版本", func() { | ||
| 23 | + Context("传入有效的projectModuleVersionId", func() { | ||
| 24 | + It("返回项目模块版本数据", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + httpExpect.GET("/project-module-versions/{projectModuleVersionId}"). | ||
| 27 | + Expect(). | ||
| 28 | + Status(http.StatusOK). | ||
| 29 | + JSON(). | ||
| 30 | + Object(). | ||
| 31 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 32 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 33 | + ContainsKey("data").Value("data").Object() | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + }) | ||
| 37 | + AfterEach(func() { | ||
| 38 | + _, err := pG.DB.Exec("DELETE FROM project_module_versions WHERE true") | ||
| 39 | + Expect(err).NotTo(HaveOccurred()) | ||
| 40 | + }) | ||
| 41 | +}) |
| 1 | +package project_module_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("返回列表", func() { | ||
| 14 | + var projectModuleVersionId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleVersionId), | ||
| 18 | + "INSERT INTO project_module_versions (project_module_version.id, project_module_version.project_module_id, project_module_version.version, project_module_version.description, project_module_version.status, project_module_version._create_time, project_module_version._update_time, id, project_module_id, version, description, status, create_time, update_time) VALUES (?, ?, ?, ?, ?, ?, ?, DEFAULT, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectModuleVersionId", "testProjectModuleVersionProjectModuleId", "testProjectModuleVersionVersion", "testProjectModuleVersionDescription", "testProjectModuleVersionStatus", "testProjectModuleVersionCreateTime", "testProjectModuleVersionUpdateTime", "testProjectModuleId", "testVersion", "testDescription", "testStatus", "testCreateTime", "testUpdateTime") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("根据参数返回项目模块版本列表", func() { | ||
| 23 | + Context("传入有效的参数", func() { | ||
| 24 | + It("返回项目模块版本数据列表", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + httpExpect.GET("/project-module-versions/"). | ||
| 27 | + WithQuery("offset", "int"). | ||
| 28 | + WithQuery("limit", "int"). | ||
| 29 | + Expect(). | ||
| 30 | + Status(http.StatusOK). | ||
| 31 | + JSON(). | ||
| 32 | + Object(). | ||
| 33 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 34 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 35 | + ContainsKey("data").Value("data").Object(). | ||
| 36 | + ContainsKey("count").ValueEqual("count", 1). | ||
| 37 | + ContainsKey("projectModuleVersions").Value("projectModuleVersions").Array() | ||
| 38 | + }) | ||
| 39 | + }) | ||
| 40 | + }) | ||
| 41 | + AfterEach(func() { | ||
| 42 | + _, err := pG.DB.Exec("DELETE FROM project_module_versions WHERE true") | ||
| 43 | + Expect(err).NotTo(HaveOccurred()) | ||
| 44 | + }) | ||
| 45 | +}) |
| 1 | +package project_module_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + "net/http/httptest" | ||
| 6 | + "testing" | ||
| 7 | + | ||
| 8 | + "github.com/astaxie/beego" | ||
| 9 | + . "github.com/onsi/ginkgo" | ||
| 10 | + . "github.com/onsi/gomega" | ||
| 11 | + _ "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 12 | + _ "github.com/tiptok/godevp/pkg/port/beego" | ||
| 13 | +) | ||
| 14 | + | ||
| 15 | +func TestProjectModuleVersion(t *testing.T) { | ||
| 16 | + RegisterFailHandler(Fail) | ||
| 17 | + RunSpecs(t, "Beego Port ProjectModuleVersion Correlations Test Case Suite") | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +var handler http.Handler | ||
| 21 | +var server *httptest.Server | ||
| 22 | + | ||
| 23 | +var _ = BeforeSuite(func() { | ||
| 24 | + handler = beego.BeeApp.Handlers | ||
| 25 | + server = httptest.NewServer(handler) | ||
| 26 | +}) | ||
| 27 | + | ||
| 28 | +var _ = AfterSuite(func() { | ||
| 29 | + server.Close() | ||
| 30 | +}) |
| 1 | +package project_module_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("移除", func() { | ||
| 14 | + var projectModuleVersionId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleVersionId), | ||
| 18 | + "INSERT INTO project_module_versions (project_module_version.id, project_module_version.project_module_id, project_module_version.version, project_module_version.description, project_module_version.status, project_module_version._create_time, project_module_version._update_time, id, project_module_id, version, description, status, create_time, update_time) VALUES (?, ?, ?, ?, ?, ?, ?, DEFAULT, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectModuleVersionId", "testProjectModuleVersionProjectModuleId", "testProjectModuleVersionVersion", "testProjectModuleVersionDescription", "testProjectModuleVersionStatus", "testProjectModuleVersionCreateTime", "testProjectModuleVersionUpdateTime", "testProjectModuleId", "testVersion", "testDescription", "testStatus", "testCreateTime", "testUpdateTime") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("根据参数移除", func() { | ||
| 23 | + Context("传入有效的projectModuleVersionId", func() { | ||
| 24 | + It("返回被移除项目模块版本的数据", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + httpExpect.DELETE("/project-module-versions/{projectModuleVersionId}"). | ||
| 27 | + Expect(). | ||
| 28 | + Status(http.StatusOK). | ||
| 29 | + JSON(). | ||
| 30 | + Object(). | ||
| 31 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 32 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 33 | + ContainsKey("data").Value("data").Object() | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + }) | ||
| 37 | + AfterEach(func() { | ||
| 38 | + _, err := pG.DB.Exec("DELETE FROM project_module_versions WHERE true") | ||
| 39 | + Expect(err).NotTo(HaveOccurred()) | ||
| 40 | + }) | ||
| 41 | +}) |
| 1 | +package project_module_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg/v10" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "github.com/tiptok/godevp/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("更新", func() { | ||
| 14 | + var projectModuleVersionId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&projectModuleVersionId), | ||
| 18 | + "INSERT INTO project_module_versions (project_module_version.id, project_module_version.project_module_id, project_module_version.version, project_module_version.description, project_module_version.status, project_module_version._create_time, project_module_version._update_time, id, project_module_id, version, description, status, create_time, update_time) VALUES (?, ?, ?, ?, ?, ?, ?, DEFAULT, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testProjectModuleVersionId", "testProjectModuleVersionProjectModuleId", "testProjectModuleVersionVersion", "testProjectModuleVersionDescription", "testProjectModuleVersionStatus", "testProjectModuleVersionCreateTime", "testProjectModuleVersionUpdateTime", "testProjectModuleId", "testVersion", "testDescription", "testStatus", "testCreateTime", "testUpdateTime") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("提交数据更新", func() { | ||
| 23 | + Context("提交正确的项目模块版本数据", func() { | ||
| 24 | + It("返回更新后的项目模块版本数据", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + body := map[string]interface{}{ | ||
| 27 | + "projectModuleVersion": "int64", | ||
| 28 | + "projectModuleId": "int64", | ||
| 29 | + "version": "int64", | ||
| 30 | + "description": "string", | ||
| 31 | + "status": "int", | ||
| 32 | + } | ||
| 33 | + httpExpect.PUT("/project-module-versions/{projectModuleVersionId}"). | ||
| 34 | + WithJSON(body). | ||
| 35 | + Expect(). | ||
| 36 | + Status(http.StatusOK). | ||
| 37 | + JSON(). | ||
| 38 | + Object(). | ||
| 39 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 40 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 41 | + ContainsKey("data").Value("data").Object(). | ||
| 42 | + ContainsKey("id").ValueEqual("id", projectModuleVersionId) | ||
| 43 | + }) | ||
| 44 | + }) | ||
| 45 | + }) | ||
| 46 | + AfterEach(func() { | ||
| 47 | + _, err := pG.DB.Exec("DELETE FROM project_module_versions WHERE true") | ||
| 48 | + Expect(err).NotTo(HaveOccurred()) | ||
| 49 | + }) | ||
| 50 | +}) |
-
请 注册 或 登录 后发表评论