import fieldApi from "../../../common/routes/field"; import {Err} from "../../../common/status/error"; import {DComponent} from "../../common/decorate/component"; import {DHttpApi, DHttpController, DHttpReqParam, DHttpReqParamRequired} from "../../common/http/http"; import {FieldTypeService} from "../service/field"; import {WorkflowNodeFieldTypeService} from './../service/field'; import {ECommon_Field_Type} from "../../../common/field/type"; @DComponent @DHttpController(fieldApi) class FieldController { @DHttpApi(fieldApi.routes.typeList) async typeList(): Promise { let ret = await FieldTypeService.list() return ret; } @DHttpApi(fieldApi.routes.typeInfo) async typeInfo(@DHttpReqParamRequired("fieldTypeId") fieldTypeId:ECommon_Field_Type): Promise { let ret = await FieldTypeService.getItem(fieldTypeId) return ret } @DHttpApi(fieldApi.routes.listWorkflowNodeField) async listWorkflowNodeField(@DHttpReqParamRequired("workflowNodeId") workflowNodeId:string): Promise { let ret=await WorkflowNodeFieldTypeService.listWorkflowNodeField(workflowNodeId) return ret; } @DHttpApi(fieldApi.routes.workflowNodeFieldInfo) async workflowNodeFieldInfo(@DHttpReqParamRequired("workflowNodeFieldTypeId") workflowNodeFieldTypeId:string): Promise { let obj=await WorkflowNodeFieldTypeService.getItemById(workflowNodeFieldTypeId) if(!obj) { throw Err.Project.Field.fieldSolutionNotFound } let ret=await obj.workflowNodeFieldInfo(workflowNodeFieldTypeId) return ret; } @DHttpApi(fieldApi.routes.addWorkflowNodeField) async addWorkflowNodeField(@DHttpReqParamRequired("workflowNodeId") workflowNodeId:string, @DHttpReqParamRequired("fieldTypeId") fieldTypeId:ECommon_Field_Type, @DHttpReqParamRequired("optional") optional:number, @DHttpReqParam("defaultValue") defaultValue:string, @DHttpReqParamRequired("name") name:string, @DHttpReqParam("description") description:string): Promise { let ret=await WorkflowNodeFieldTypeService.addWorkflowNodeField(workflowNodeId,fieldTypeId,name,optional,defaultValue,description) return ret; } @DHttpApi(fieldApi.routes.editWorkflowNodeFieldLabelType) async editWorkflowNodeFieldLabelType(@DHttpReqParamRequired("workflowNodeFieldTypeId") workflowNodeFieldTypeId:string, @DHttpReqParamRequired("labelType") labelType:number): Promise { let obj=await WorkflowNodeFieldTypeService.getItemById(workflowNodeFieldTypeId) if(!obj) { throw Err.Project.Field.fieldSolutionNotFound } await obj.editWorkflowNodeFieldLabelType(workflowNodeFieldTypeId,labelType) return; } @DHttpApi(fieldApi.routes.editWorkflowNodeField) async editWorkflowNodeField(@DHttpReqParamRequired("workflowNodeFieldTypeId") workflowNodeFieldTypeId:string, @DHttpReqParam("optional") optional:number, @DHttpReqParam("defaultValue") defaultValue:string, @DHttpReqParam("name") name:string, @DHttpReqParam("description") description:string): Promise { let obj=await WorkflowNodeFieldTypeService.getItemById(workflowNodeFieldTypeId) if(!obj) { throw Err.Project.Field.fieldSolutionNotFound } obj.assignItem({ name, optional, default_value:defaultValue, description }) let ret=await obj.update() return ret; } @DHttpApi(fieldApi.routes.moveWorkflowNodeField) async moveWorkflowNodeField(@DHttpReqParamRequired("workflowNodeFieldTypeId") workflowNodeFieldTypeId:string,@DHttpReqParamRequired("weight") weight:number): Promise { let obj=await WorkflowNodeFieldTypeService.getItemById(workflowNodeFieldTypeId) if(!obj) { throw Err.Project.Field.fieldSolutionNotFound } let ret=await obj.moveWorkflowNodeField(weight) return ret; } @DHttpApi(fieldApi.routes.deleteWorkflowNodeField) async deleteWorkflowNodeField(@DHttpReqParamRequired("workflowNodeFieldTypeId") workflowNodeFieldTypeId:string): Promise { let obj=await WorkflowNodeFieldTypeService.getItemById(workflowNodeFieldTypeId) if(!obj) { throw Err.Project.Field.fieldSolutionNotFound } await obj.delete() return } @DHttpApi(fieldApi.routes.listWorkflowNodeFieldConfig) async listWorkflowNodeFieldConfig(@DHttpReqParamRequired("workflowNodeFieldTypeId") workflowNodeFieldTypeId:string): Promise { let obj=await WorkflowNodeFieldTypeService.getItemById(workflowNodeFieldTypeId) if(!obj) { throw Err.Project.Field.fieldSolutionNotFound } let ret=await obj.listWorkflowNodeFieldConfig() return ret; } @DHttpApi(fieldApi.routes.editWorkflowNodeFieldConfig) async addWorkflowNodeFieldConfig(@DHttpReqParamRequired("workflowNodeFieldTypeId") workflowNodeFieldTypeId:string, @DHttpReqParamRequired("data") data:{ value :string, name :string, selected :number }[]): Promise { let obj=await WorkflowNodeFieldTypeService.getItemById(workflowNodeFieldTypeId) if(!obj) { throw Err.Project.Field.fieldSolutionNotFound } let ret=await obj.editWorkflowNodeFieldConfigs(data) return ret; } @DHttpApi(fieldApi.routes.workflowFieldsCopy) async workflowFieldsCopy(@DHttpReqParamRequired("workflowNodeId") workflowNodeId:string, @DHttpReqParamRequired("newWorkflowNodeId") newWorkflowNodeId:string): Promise { await WorkflowNodeFieldTypeService.workflowFieldsCopy(workflowNodeId,newWorkflowNodeId) return } }