diff --git a/models/resource_queue.go b/models/resource_queue.go index 8c4b7cd92..aefdf4709 100644 --- a/models/resource_queue.go +++ b/models/resource_queue.go @@ -75,6 +75,11 @@ type ResourceQueueListRes struct { List []*ResourceQueueRes } +type ResourceQueueCodesRes struct { + ID int64 + QueueCode string +} + func NewResourceQueueListRes(totalSize int64, list []ResourceQueue) *ResourceQueueListRes { resList := make([]*ResourceQueueRes, len(list)) for i, v := range list { @@ -135,3 +140,12 @@ func SearchResourceQueue(opts SearchResourceQueueOptions) (int64, []ResourceQueu } return n, r, nil } + +func GetResourceQueueCodes() ([]*ResourceQueueCodesRes, error) { + r := make([]*ResourceQueueCodesRes, 0) + err := x.Table("resource_queue").Where("queue_code is not null AND queue_code != '' ").Find(&r) + if err != nil { + return nil, err + } + return r, nil +} diff --git a/routers/admin/resources.go b/routers/admin/resources.go index 90b28d3bf..c7ea9dfef 100644 --- a/routers/admin/resources.go +++ b/routers/admin/resources.go @@ -58,6 +58,16 @@ func GetResourceQueueList(ctx *context.Context) { ctx.JSON(http.StatusOK, response.SuccessWithData(list)) } +func GetResourceQueueCodes(ctx *context.Context) { + list, err := resource.GetResourceQueueCodes() + if err != nil { + log.Error("GetResourceQueueCodes error.%v", err) + ctx.JSON(http.StatusOK, response.ServerError(err.Error())) + return + } + ctx.JSON(http.StatusOK, response.SuccessWithData(list)) +} + func AddResourceQueue(ctx *context.Context, req models.ResourceQueueReq) { req.IsAutomaticSync = false req.CreatorId = ctx.User.ID diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 533b06f43..bad06dd5e 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -610,6 +610,7 @@ func RegisterRoutes(m *macaron.Macaron) { m.Group("/queue", func() { m.Get("", admin.GetQueuePage) m.Get("/list", admin.GetResourceQueueList) + m.Get("/codes", admin.GetResourceQueueCodes) m.Post("/add", binding.Bind(models.ResourceQueueReq{}), admin.AddResourceQueue) m.Post("/update/:id", binding.BindIgnErr(models.ResourceQueueReq{}), admin.UpdateResourceQueue) }) diff --git a/services/cloudbrain/resource/resource_queue.go b/services/cloudbrain/resource/resource_queue.go index e6f7ba5c5..b336dedaf 100644 --- a/services/cloudbrain/resource/resource_queue.go +++ b/services/cloudbrain/resource/resource_queue.go @@ -29,3 +29,12 @@ func GetResourceQueueList(opts models.SearchResourceQueueOptions) (*models.Resou return models.NewResourceQueueListRes(n, r), nil } + +func GetResourceQueueCodes() ([]*models.ResourceQueueCodesRes, error) { + r, err := models.GetResourceQueueCodes() + if err != nil { + return nil, err + } + + return r, nil +}