diff --git a/controllers/peer.go b/controllers/peer.go index 908b773..570eacc 100644 --- a/controllers/peer.go +++ b/controllers/peer.go @@ -16,12 +16,15 @@ type PeerController struct { // @Title Search // @Description search workspace // @Param search path string true "the word search you want to get" +// @Param is_draft query string false // @Success 200 {workspace} models.workspace // @router /search/:search [get] func (o *PeerController) Search() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) // store and return Id or post with UUIDLibDataEnum search := o.Ctx.Input.Param(":search") - o.Data["json"] = oclib.Search(nil, search, oclib.LibDataEnum(oclib.PEER)) + isDraft := o.Ctx.Input.Query("is_draft") + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.PEER), user, peerID, groups, nil).Search(nil, search, isDraft == "true") o.ServeJSON() } @@ -33,20 +36,24 @@ func (o *PeerController) Search() { // @router /:id [put] func (o *PeerController) Put() { // store and return Id or post with UUID + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) var res map[string]interface{} id := o.Ctx.Input.Param(":id") json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res) - data := oclib.UpdateOne(oclib.LibDataEnum(oclib.PEER), res, id, nil) + data := oclib.NewRequest(oclib.LibDataEnum(oclib.PEER), user, peerID, groups, nil).UpdateOne(res, id) o.Data["json"] = data o.ServeJSON() } // @Title GetAll // @Description find all peer +// @Param is_draft query string false // @Success 200 {peer} models.peer // @router / [get] func (o *PeerController) GetAll() { - o.Data["json"] = oclib.LoadAll(oclib.LibDataEnum(oclib.PEER)) + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) + isDraft := o.Ctx.Input.Query("is_draft") + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.PEER), user, peerID, groups, nil).LoadAll(isDraft == "true") o.ServeJSON() } @@ -56,8 +63,9 @@ func (o *PeerController) GetAll() { // @Success 200 {peer} models.peer // @router /:id [get] func (o *PeerController) Get() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") - o.Data["json"] = oclib.LoadOne(oclib.LibDataEnum(oclib.PEER), id) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.PEER), user, peerID, groups, nil).LoadOne(id) o.ServeJSON() } @@ -67,8 +75,9 @@ func (o *PeerController) Get() { // @Success 200 {peer} models.peer // @router /:id/partner [post] func (o *PeerController) Partner() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(oclib.PEER), map[string]interface{}{ + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.PEER), user, peerID, groups, nil).UpdateOne(map[string]interface{}{ "state": peer.PARTNER, }, id) o.ServeJSON() @@ -80,8 +89,9 @@ func (o *PeerController) Partner() { // @Success 200 {peer} models.peer // @router /:id/blacklist [post] func (o *PeerController) Blacklist() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(oclib.PEER), map[string]interface{}{ + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.PEER), user, peerID, groups, nil).UpdateOne(map[string]interface{}{ "state": peer.BLACKLIST, }, id) o.ServeJSON() @@ -93,8 +103,9 @@ func (o *PeerController) Blacklist() { // @Success 200 {peer} models.peer // @router /:id/undo_state [post] func (o *PeerController) DeleteState() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(oclib.PEER), map[string]interface{}{ + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.PEER), user, peerID, groups, nil).UpdateOne(map[string]interface{}{ "state": peer.NONE, }, id) o.ServeJSON() diff --git a/go.mod b/go.mod index 587a931..2542c0b 100644 --- a/go.mod +++ b/go.mod @@ -5,13 +5,14 @@ go 1.22.0 toolchain go1.22.4 require ( - cloud.o-forge.io/core/oc-lib v0.0.0-20250108155542-0f4adeea86be + cloud.o-forge.io/core/oc-lib v0.0.0-20250205160221-88b7cfe2fd0f github.com/beego/beego/v2 v2.3.1 github.com/smartystreets/goconvey v1.7.2 ) require ( github.com/beorn7/perks v1.0.1 // indirect + github.com/biter777/countries v1.7.5 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/gabriel-vasile/mimetype v1.4.6 // indirect @@ -40,7 +41,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/robfig/cron/v3 v3.0.1 // indirect + github.com/robfig/cron v1.2.0 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/zerolog v1.33.0 // indirect github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 // indirect diff --git a/go.sum b/go.sum index e5ff00e..8787a9c 100644 --- a/go.sum +++ b/go.sum @@ -1,10 +1,12 @@ -cloud.o-forge.io/core/oc-lib v0.0.0-20250108155542-0f4adeea86be h1:1Yf8ihUxXjOEPqcfgtXJpJ/slxBUHhf7AgS7DZI3iUk= -cloud.o-forge.io/core/oc-lib v0.0.0-20250108155542-0f4adeea86be/go.mod h1:ya7Q+zHhaKM+XF6sAJ+avqHEVzaMnFJQih2X3TlTlGo= +cloud.o-forge.io/core/oc-lib v0.0.0-20250205160221-88b7cfe2fd0f h1:6V+Z81ywYoDYSVMnM4PVaJYXFgCN3xSG3ddiUPn4jL8= +cloud.o-forge.io/core/oc-lib v0.0.0-20250205160221-88b7cfe2fd0f/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/beego/beego/v2 v2.3.1 h1:7MUKMpJYzOXtCUsTEoXOxsDV/UcHw6CPbaWMlthVNsc= github.com/beego/beego/v2 v2.3.1/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/biter777/countries v1.7.5 h1:MJ+n3+rSxWQdqVJU8eBy9RqcdH6ePPn4PJHocVWUa+Q= +github.com/biter777/countries v1.7.5/go.mod h1:1HSpZ526mYqKJcpT5Ti1kcGQ0L0SrXWIaptUWjFfv2E= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -95,8 +97,8 @@ github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPA github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= -github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= +github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ= +github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= diff --git a/swagger/swagger.json b/swagger/swagger.json index bfdd894..47f8612 100644 --- a/swagger/swagger.json +++ b/swagger/swagger.json @@ -22,6 +22,14 @@ ], "description": "find all peer\n\u003cbr\u003e", "operationId": "PeerController.GetAll", + "parameters": [ + { + "in": "query", + "name": "is_draft", + "description": "false", + "type": "string" + } + ], "responses": { "200": { "description": "{peer} models.peer" @@ -43,6 +51,12 @@ "description": "the word search you want to get", "required": true, "type": "string" + }, + { + "in": "query", + "name": "is_draft", + "description": "false", + "type": "string" } ], "responses": { diff --git a/swagger/swagger.yml b/swagger/swagger.yml index dc347ec..70e7abc 100644 --- a/swagger/swagger.yml +++ b/swagger/swagger.yml @@ -20,6 +20,11 @@ paths: find all peer
operationId: PeerController.GetAll + parameters: + - in: query + name: is_draft + description: "false" + type: string responses: "200": description: '{peer} models.peer' @@ -129,6 +134,10 @@ paths: description: the word search you want to get required: true type: string + - in: query + name: is_draft + description: "false" + type: string responses: "200": description: '{workspace} models.workspace'