123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package http
- import (
- "go-common/app/admin/main/workflow/service"
- "go-common/library/conf/paladin"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/net/http/blademaster/middleware/permit"
- )
- var (
- authSvc *permit.Permit
- wkfSvc *service.Service
- )
- // Init http server
- func Init(s *service.Service) {
- var (
- hc struct {
- BM *bm.ServerConfig
- Permit *permit.Config
- }
- )
- if err := paladin.Get("http.toml").UnmarshalTOML(&hc); err != nil {
- panic(err)
- }
- // init service
- iniService(hc.Permit, s)
- // init internal router
- engine := bm.DefaultServer(hc.BM)
- //global timeout
- setupInnerEngine(engine)
- // init internal server
- if err := engine.Start(); err != nil {
- log.Error("engine.Start error(%v)", err)
- panic(err)
- }
- }
- func iniService(auth *permit.Config, s *service.Service) {
- authSvc = permit.New(auth)
- wkfSvc = s
- }
- // innerRouter
- func setupInnerEngine(e *bm.Engine) {
- // monitor ping
- e.Ping(ping)
- workflow := e.Group("/x/admin/workflow")
- // platform
- platform := workflow.Group("/platform", authSvc.Permit(""))
- {
- platform.GET("/count", platformChallCount)
- platform.GET("/list/pending", platformChallListPending)
- platform.GET("/list/handling", platformHandlingChalllist)
- platform.GET("/list/done", platformDoneChallList)
- platform.GET("/list/created", platformCreatedChallList)
- platform.GET("/release", platformRelease)
- platform.GET("/checkin", platformCheckIn)
- }
- // challenge
- challenge := workflow.Group("/challenge")
- {
- challenge.GET("/list", challList)
- challenge.GET("/list2", authSvc.Permit(""), challListCommon)
- challenge.GET("/detail", challDetail)
- challenge.GET("/activity/list", listChallActivity)
- challenge.GET("/business/list", listChallBusiness) // Deprecated
- challenge.POST("/update", authSvc.Permit(""), upChall)
- challenge.POST("/reset", authSvc.Permit(""), rstChallResult)
- challenge.POST("/state/set", authSvc.Permit(""), setChallResult) // new api logic
- challenge.POST("/state/batch/set", authSvc.Permit(""), batchSetChallResult) //new api logic
- challenge.POST("/batch/result/set", authSvc.Permit(""), batchSetChallResult) // todo: deprecated
- challenge.POST("/extra/update", authSvc.Permit(""), upChallExtra)
- challenge.POST("/extra/batch/update", authSvc.Permit(""), batchUpChallExtra)
- challenge.POST("/business/state/set", authSvc.Permit(""), upChallBusState)
- challenge.POST("/business/state/batch/set", authSvc.Permit(""), batchUpChallBusState)
- // manager-v4 used
- challenge.POST("/business/busState/update", upBusChallsBusState) //Deprecated
- challenge.POST("/reset/business/state/batch/set", upBusChallsBusState)
- // challenge event
- event := challenge.Group("/event")
- event.POST("/add", addEvent)
- event.POST("/batch/add", batchAddEvent)
- event.GET("/list", eventList)
- // call reply/add sync add event and set business_state
- reply := challenge.Group("/reply")
- reply.POST("/add", authSvc.Permit(""), addReply)
- reply.POST("/batch/add", authSvc.Permit(""), batchAddReply)
- }
- // business
- business := workflow.Group("/business")
- {
- business.GET("/meta/list", busMetaList)
- // callback
- callback := business.Group("/callback")
- {
- callback.GET("/list", listCallback)
- callback.POST("/add", authSvc.Permit(""), addOrUpCallback)
- callback.POST("/external/api/set", setExtAPI)
- }
- // attr
- busAttr := business.Group("/attr")
- {
- busAttr.GET("/list", listBusAttr)
- busAttr.POST("/add", addOrUpdateBusAttr)
- }
- }
- // todo: workflow_v3
- v3 := workflow.Group("/v3")
- challenge3 := v3.Group("/challenge", authSvc.Permit(""))
- {
- challenge3.GET("/list", challListV3)
- challenge3.POST("/update", upChallV3)
- challenge3.POST("/reset", rstChallResultV3)
- challenge3.POST("/state/set", setChallStateV3)
- challenge3.POST("/business/state/set", upChallBusStateV3)
- challenge3.POST("/extra/update", upChallExtraV3)
- }
- group3 := v3.Group("/group", authSvc.Permit(""))
- {
- group3.GET("/list", groupListV3)
- group3.GET("/pending/count", countPendingGroup)
- group3.POST("/role/set", setGroupRole) //角色流转
- group3.POST("/state/set", setGroupStateV3) //工单状态变更/处罚
- group3.POST("/extra/update", upGroupExtra)
- group3.POST("/public/referee/set", setPublicReferee) //移交众裁
- }
- bus3 := v3.Group("/business")
- {
- attr3 := bus3.Group("/attr")
- {
- attr3.GET("/list", listBusAttrV3)
- attr3.POST("/button/switch", setSwitch)
- attr3.POST("/button/shortcut/set", setShortCut)
- }
- mng := bus3.Group("/manager")
- {
- mng.GET("/tag", mngTag)
- }
- source := bus3.Group("/source")
- {
- source.GET("/list", srcList)
- }
- }
- v3.GET("/user/block/info", userBlockInfo) //单个用户封禁次数/封禁状态
- }
- // ping check server ok.
- func ping(ctx *bm.Context) {
- if err := wkfSvc.Ping(ctx); err != nil {
- ctx.Error = err
- ctx.AbortWithStatus(503)
- }
- }
|