diff --git a/controllers/collaborative_area.go b/controllers/collaborative_area.go index f9f8e75..078d4ff 100644 --- a/controllers/collaborative_area.go +++ b/controllers/collaborative_area.go @@ -6,6 +6,7 @@ import ( "slices" oclib "cloud.o-forge.io/core/oc-lib" + "cloud.o-forge.io/core/oc-lib/config" "cloud.o-forge.io/core/oc-lib/tools" beego "github.com/beego/beego/v2/server/web" ) @@ -36,12 +37,15 @@ var paths = map[tools.DataType]map[tools.METHOD]string{ // paths used to call ot // @Title Search // @Description search shared workspace // @Param search path string true "the word search you want to get" +// @Param is_draft query string false "draft wished" // @Success 200 {shared workspace} models.shared_workspace // @router /search/:search [get] func (o *CollaborativeAreaController) Search() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) // store and return Id or post with UUID search := o.Ctx.Input.Param(":search") - o.Data["json"] = oclib.Search(nil, search, oclib.LibDataEnum(tools.COLLABORATIVE_AREA)) + isDraft := o.Ctx.Input.Query("is_draft") + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).Search(nil, search, isDraft == "true") o.ServeJSON() } @@ -52,6 +56,7 @@ func (o *CollaborativeAreaController) Search() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id [put] func (o *CollaborativeAreaController) Put() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) // store and return Id or post with UUID var res map[string]interface{} id := o.Ctx.Input.Param(":id") @@ -59,7 +64,7 @@ func (o *CollaborativeAreaController) Put() { caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) fmt.Println("UPDATE", res) - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), res, id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).UpdateOne(res, id) o.ServeJSON() } @@ -69,20 +74,24 @@ func (o *CollaborativeAreaController) Put() { // @Success 200 {shared workspace} models.shared_workspace // @router / [post] func (o *CollaborativeAreaController) Post() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) var res map[string]interface{} json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res) - o.Data["json"] = oclib.StoreOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), res, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).StoreOne(res) o.ServeJSON() } // @Title GetAll // @Description find shared workspace by id +// @Param is_draft query string false "draft wished" // @Success 200 {shared_workspace} models.shared_workspace // @router / [get] func (o *CollaborativeAreaController) GetAll() { - o.Data["json"] = oclib.LoadAll(oclib.LibDataEnum(tools.COLLABORATIVE_AREA)) + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) + isDraft := o.Ctx.Input.Query("is_draft") + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).LoadAll(isDraft == "true") o.ServeJSON() } @@ -92,8 +101,9 @@ func (o *CollaborativeAreaController) GetAll() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id [get] func (o *CollaborativeAreaController) Get() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") - o.Data["json"] = oclib.LoadOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).LoadOne(id) o.ServeJSON() } @@ -104,11 +114,12 @@ func (o *CollaborativeAreaController) Get() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id/workspace/:id2 [delete] func (o *CollaborativeAreaController) RemoveWorkspace() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) id := o.Ctx.Input.Param(":id") id2 := o.Ctx.Input.Param(":id2") - r := oclib.LoadOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id) + r := oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).LoadOne(id) shared := r.ToCollaborativeArea() newWorkspace := []string{} if slices.Contains(shared.Workspaces, id2) { @@ -119,7 +130,8 @@ func (o *CollaborativeAreaController) RemoveWorkspace() { } shared.Workspaces = newWorkspace } - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), shared.Serialize(), id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).UpdateOne( + shared.Serialize(shared), id) o.ServeJSON() } @@ -130,11 +142,12 @@ func (o *CollaborativeAreaController) RemoveWorkspace() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id/workflow/:id2 [delete] func (o *CollaborativeAreaController) RemoveWorkflow() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) id := o.Ctx.Input.Param(":id") id2 := o.Ctx.Input.Param(":id2") - r := oclib.LoadOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id) + r := oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).LoadOne(id) shared := r.ToCollaborativeArea() newWorkflows := []string{} for _, w := range shared.Workflows { @@ -143,7 +156,8 @@ func (o *CollaborativeAreaController) RemoveWorkflow() { } } shared.Workflows = newWorkflows - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), shared.Serialize(), id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).UpdateOne( + shared.Serialize(shared), id) o.ServeJSON() } @@ -154,13 +168,14 @@ func (o *CollaborativeAreaController) RemoveWorkflow() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id/peer/:id2 [delete] func (o *CollaborativeAreaController) RemovePeer() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) id := o.Ctx.Input.Param(":id") id2 := o.Ctx.Input.Param(":id2") - r := oclib.LoadOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id) + r := oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).LoadOne(id) shared := r.ToCollaborativeArea() - newPeers := []string{} + newPeers := map[string][]string{} if shared.CreatorID != id2 { o.Data["json"] = map[string]interface{}{ "data": nil, @@ -170,15 +185,28 @@ func (o *CollaborativeAreaController) RemovePeer() { o.ServeJSON() return } - if slices.Contains(shared.Peers, id) && shared.CreatorID != id2 { - for _, peer := range shared.Peers { - if peer != id2 { - newPeers = append(newPeers, peer) - } + if shared.AllowedPeersGroup != nil { + keys := make([]string, len(shared.AllowedPeersGroup)) + i := 0 + for k := range shared.AllowedPeersGroup { + keys[i] = k + i++ + } + if slices.Contains(keys, id) && shared.CreatorID != id2 { + for _, peer := range keys { + if peer != id2 { + if config.GetConfig().Whitelist { + newPeers[peer] = []string{"*"} + } else { + newPeers[peer] = []string{} + } + } + } + shared.AllowedPeersGroup = newPeers } - shared.Peers = newPeers } - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), shared.Serialize(), id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).UpdateOne( + shared.Serialize(shared), id) o.ServeJSON() } @@ -189,11 +217,12 @@ func (o *CollaborativeAreaController) RemovePeer() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id/rule/:id2 [delete] func (o *CollaborativeAreaController) RemoveRule() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) id := o.Ctx.Input.Param(":id") id2 := o.Ctx.Input.Param(":id2") - r := oclib.LoadOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id) + r := oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).LoadOne(id) shared := r.ToCollaborativeArea() newRules := []string{} if shared != nil && slices.Contains(shared.Rules, id2) { @@ -204,7 +233,8 @@ func (o *CollaborativeAreaController) RemoveRule() { } shared.Rules = newRules } - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), shared.Serialize(), id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).UpdateOne( + shared.Serialize(shared), id) o.ServeJSON() } @@ -215,11 +245,12 @@ func (o *CollaborativeAreaController) RemoveRule() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id/workspace/:id2 [post] func (o *CollaborativeAreaController) AddWorkspace() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) id := o.Ctx.Input.Param(":id") id2 := o.Ctx.Input.Param(":id2") - r := oclib.LoadOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id) + r := oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).LoadOne(id) if r.Code != 200 { o.Data["json"] = r o.ServeJSON() @@ -229,7 +260,8 @@ func (o *CollaborativeAreaController) AddWorkspace() { if shared != nil && !slices.Contains(shared.Workspaces, id2) { shared.Workspaces = append(shared.Workspaces, id2) } - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), shared.Serialize(), id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).UpdateOne( + shared.Serialize(shared), id) o.ServeJSON() } @@ -240,16 +272,18 @@ func (o *CollaborativeAreaController) AddWorkspace() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id/workflow/:id2 [post] func (o *CollaborativeAreaController) AddWorkflow() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) id := o.Ctx.Input.Param(":id") id2 := o.Ctx.Input.Param(":id2") - r := oclib.LoadOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id) + r := oclib.NewRequest(oclib.LibDataEnum(oclib.RULE), user, peerID, groups, nil).LoadOne(id) shared := r.ToCollaborativeArea() if shared != nil && !slices.Contains(shared.Workflows, id2) { shared.Workflows = append(shared.Workflows, id2) } - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), shared.Serialize(), id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).UpdateOne( + shared.Serialize(shared), id) o.ServeJSON() } @@ -260,16 +294,29 @@ func (o *CollaborativeAreaController) AddWorkflow() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id/peer/:id2 [post] func (o *CollaborativeAreaController) AddPeer() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) id := o.Ctx.Input.Param(":id") id2 := o.Ctx.Input.Param(":id2") - r := oclib.LoadOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id) + r := oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).LoadOne(id) shared := r.ToCollaborativeArea() - if shared != nil && !slices.Contains(shared.Peers, id2) { - shared.Peers = append(shared.Peers, id2) + if shared.AllowedPeersGroup != nil { + keys := make([]string, len(shared.AllowedPeersGroup)) + i := 0 + for k := range shared.AllowedPeersGroup { + keys[i] = k + i++ + } + if shared != nil && !slices.Contains(keys, id2) { + if config.GetConfig().Whitelist { + shared.AllowedPeersGroup[id2] = []string{"*"} + } else { + shared.AllowedPeersGroup[id2] = []string{} + } + } } - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), shared.Serialize(), id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).UpdateOne(shared.Serialize(shared), id) o.ServeJSON() } @@ -280,16 +327,17 @@ func (o *CollaborativeAreaController) AddPeer() { // @Success 200 {shared workspace} models.shared_workspace // @router /:id/rule/:id2 [post] func (o *CollaborativeAreaController) AddRule() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) id := o.Ctx.Input.Param(":id") id2 := o.Ctx.Input.Param(":id2") - r := oclib.LoadOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id) + r := oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, nil).LoadOne(id) shared := r.ToCollaborativeArea() if shared != nil && !slices.Contains(shared.Rules, id2) { shared.Rules = append(shared.Rules, id2) } - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), shared.Serialize(), id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).UpdateOne(shared.Serialize(shared), id) o.ServeJSON() } @@ -299,9 +347,10 @@ func (o *CollaborativeAreaController) AddRule() { // @Success 200 {shared workspace} delete success! // @router /:id [delete] func (o *CollaborativeAreaController) Delete() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") caller := tools.NewHTTPCaller(paths) // caller used to send to peers caller.Disabled = oclib.IsQueryParamsEquals(o.Ctx.Input, "is_remote", true) - o.Data["json"] = oclib.DeleteOne(oclib.LibDataEnum(tools.COLLABORATIVE_AREA), id, caller) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.COLLABORATIVE_AREA), user, peerID, groups, caller).DeleteOne(id) o.ServeJSON() } diff --git a/controllers/rule.go b/controllers/rule.go index 2f8b860..2213b33 100644 --- a/controllers/rule.go +++ b/controllers/rule.go @@ -15,12 +15,15 @@ type RuleController struct { // @Title Search // @Description search rule // @Param search path string true "the word search you want to get" +// @Param is_draft query string false "draft wished" // @Success 200 {rule} models.rule // @router /search/:search [get] func (o *RuleController) Search() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) // store and return Id or post with UUID search := o.Ctx.Input.Param(":search") - o.Data["json"] = oclib.Search(nil, search, oclib.LibDataEnum(oclib.RULE)) + isDraft := o.Ctx.Input.Query("is_draft") + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.RULE), user, peerID, groups, nil).Search(nil, search, isDraft == "true") o.ServeJSON() } @@ -31,11 +34,12 @@ func (o *RuleController) Search() { // @Success 200 {rule} models.rule // @router /:id [put] func (o *RuleController) Put() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) // store and return ID or post with UUID var res map[string]interface{} id := o.Ctx.Input.Param(":id") json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res) - o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(oclib.RULE), res, id) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.RULE), user, peerID, groups, nil).UpdateOne(res, id) o.ServeJSON() } @@ -45,18 +49,22 @@ func (o *RuleController) Put() { // @Success 200 {rule} models.rule // @router / [post] func (o *RuleController) Post() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) var res map[string]interface{} json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res) - o.Data["json"] = oclib.StoreOne(oclib.LibDataEnum(oclib.RULE), res) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.RULE), user, peerID, groups, nil).StoreOne(res) o.ServeJSON() } // @Title GetAll // @Description find rule by id +// @Param is_draft query string false "draft wished" // @Success 200 {rule} models.rule // @router / [get] func (o *RuleController) GetAll() { - o.Data["json"] = oclib.LoadAll(oclib.LibDataEnum(oclib.RULE)) + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) + isDraft := o.Ctx.Input.Query("is_draft") + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.RULE), user, peerID, groups, nil).LoadAll(isDraft == "true") o.ServeJSON() } @@ -66,8 +74,9 @@ func (o *RuleController) GetAll() { // @Success 200 {rule} models.rule // @router /:id [get] func (o *RuleController) Get() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") - o.Data["json"] = oclib.LoadOne(oclib.LibDataEnum(oclib.RULE), id) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.RULE), user, peerID, groups, nil).LoadOne(id) o.ServeJSON() } @@ -77,7 +86,8 @@ func (o *RuleController) Get() { // @Success 200 {rule} delete success! // @router /:id [delete] func (o *RuleController) Delete() { + user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) id := o.Ctx.Input.Param(":id") - o.Data["json"] = oclib.DeleteOne(oclib.LibDataEnum(oclib.RULE), id) + o.Data["json"] = oclib.NewRequest(oclib.LibDataEnum(oclib.RULE), user, peerID, groups, nil).DeleteOne(id) o.ServeJSON() } diff --git a/go.mod b/go.mod index 6ec9784..c02d970 100644 --- a/go.mod +++ b/go.mod @@ -5,12 +5,13 @@ go 1.22.0 toolchain go1.22.4 require ( - cloud.o-forge.io/core/oc-lib v0.0.0-20241121074503-15ca06aba883 + cloud.o-forge.io/core/oc-lib v0.0.0-20250117152246-b85ca8674b27 github.com/beego/beego/v2 v2.3.1 ) 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 @@ -24,6 +25,7 @@ require ( github.com/klauspost/compress v1.17.11 // indirect github.com/kr/text v0.2.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect + github.com/marcinwyszynski/geopoint v0.0.0-20140302213024-cf2a6f750c5b // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -37,6 +39,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 v1.2.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/zerolog v1.33.0 // indirect diff --git a/go.sum b/go.sum index 81359c7..72128d1 100644 --- a/go.sum +++ b/go.sum @@ -54,6 +54,76 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20241121071546-e9b3a65a0ec6 h1:AdUkzaX63VF3f cloud.o-forge.io/core/oc-lib v0.0.0-20241121071546-e9b3a65a0ec6/go.mod h1:ya7Q+zHhaKM+XF6sAJ+avqHEVzaMnFJQih2X3TlTlGo= cloud.o-forge.io/core/oc-lib v0.0.0-20241121074503-15ca06aba883 h1:JdHJT8vuup4pJCC7rjiOe0/qD7at6400ml5zZHjEeUo= cloud.o-forge.io/core/oc-lib v0.0.0-20241121074503-15ca06aba883/go.mod h1:ya7Q+zHhaKM+XF6sAJ+avqHEVzaMnFJQih2X3TlTlGo= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202081145-cb21db672bb5 h1:qxXC6fkEa8bLTo0qn3VrB55tfxyjHQQa/0n97piJhNI= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202081145-cb21db672bb5/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202121923-2ec6899a1865 h1:BhGzhy6gsEA7vthuq6KWyABsRuF4KV5NqOvfkygytGg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202121923-2ec6899a1865/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202134851-9a2ed2351d7e h1:3U5JBdQRti2OpALLPhev6lkUi1TlYHgo2ADidOAfEAs= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202134851-9a2ed2351d7e/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202152644-e2ddd7e4e6f9 h1:qUA6T5Pjq/pv6dZYH4PWktXmFiRnloDX84m1U5NhvLM= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202152644-e2ddd7e4e6f9/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202155908-599a6144803e h1:3xGLiTDTgWHIIPDZyTo/clMIj+gQxnIDSE78s9/0wNE= +cloud.o-forge.io/core/oc-lib v0.0.0-20241202155908-599a6144803e/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203073336-6042d47700fd h1:iDryCORnODgAvBe1Yi+RnIGjYgUSkAv7ZCnm+CUV18w= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203073336-6042d47700fd/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203082527-2924ccd23b5c h1:3ghuxLEI3JXicDYoFx4YnkLauLl0Nq9UErjpL/2SqEU= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203082527-2924ccd23b5c/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203090110-471e0c9d9b48 h1:kVTpROPipS4YtROH9vAGZw21OMLNR48qbYedCngGThw= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203090110-471e0c9d9b48/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203095728-ea55c94c7328 h1:7iK2HzMm0EEEF60ajUVT/6jwqIirduww5Xa3191XS4I= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203095728-ea55c94c7328/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203105751-4b88da8ff66d h1:iIo+AMQ09MshkKKN8K8pd1ooLaigAYlnUUnQAaCidLo= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203105751-4b88da8ff66d/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203115141-6681c455d8e0 h1:RnHCONn0oYbEaTN1wDIeOAEM12cCZQRtvjBCVCb0b1Y= +cloud.o-forge.io/core/oc-lib v0.0.0-20241203115141-6681c455d8e0/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241204103308-fd01f535a131 h1:FdUY8b8xTdVzQ9wlphlo8TlbQif76V9oxGDYq26TsAs= +cloud.o-forge.io/core/oc-lib v0.0.0-20241204103308-fd01f535a131/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241204111455-1fcbc7c08ab0 h1:cBr4m2tcLf+dZufrjYvhvcsSqXcRDeyhnq5c5HY15po= +cloud.o-forge.io/core/oc-lib v0.0.0-20241204111455-1fcbc7c08ab0/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20241205082103-fbbce7817b73 h1:g96KMOxdhvM7x6YFqJfd08wybRzCLEvol7HfhKJfxO4= +cloud.o-forge.io/core/oc-lib v0.0.0-20241205082103-fbbce7817b73/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20250110164331-5255ffc2f728 h1:3p1G82xZmEAu2OEyY5HM42Cfbb1J887P9lSoRKNhgg8= +cloud.o-forge.io/core/oc-lib v0.0.0-20250110164331-5255ffc2f728/go.mod h1:2IevepXviessA6m67fB6ZJhZSeEeoOYWbVqPS4dzkbg= +cloud.o-forge.io/core/oc-lib v0.0.0-20250113102407-21a7ff90104a h1:rrLSuAHI/TGOTm5d7Bffu+qf4EnmPguOll5x5nG/3Tc= +cloud.o-forge.io/core/oc-lib v0.0.0-20250113102407-21a7ff90104a/go.mod h1:VgWEn23ddKySWXrwPMhqtiBjTJnbm5t7yWjzfvNxbbI= +cloud.o-forge.io/core/oc-lib v0.0.0-20250113114256-11905339bb24 h1:Kc51xKbnyfeafHpOJP7mWh9InNGqZUwcJR46008D+Eg= +cloud.o-forge.io/core/oc-lib v0.0.0-20250113114256-11905339bb24/go.mod h1:VgWEn23ddKySWXrwPMhqtiBjTJnbm5t7yWjzfvNxbbI= +cloud.o-forge.io/core/oc-lib v0.0.0-20250113124812-6e5c87379649 h1:dmtrmNDdTR/2R3HjaIbPdu5LZViPzigwSjU207NXCxI= +cloud.o-forge.io/core/oc-lib v0.0.0-20250113124812-6e5c87379649/go.mod h1:VgWEn23ddKySWXrwPMhqtiBjTJnbm5t7yWjzfvNxbbI= +cloud.o-forge.io/core/oc-lib v0.0.0-20250113135241-a0f436b3e162 h1:oGP40P/uUngU7stnsRdx0jwxZGc+pzLzrMlUjEBSy0M= +cloud.o-forge.io/core/oc-lib v0.0.0-20250113135241-a0f436b3e162/go.mod h1:VgWEn23ddKySWXrwPMhqtiBjTJnbm5t7yWjzfvNxbbI= +cloud.o-forge.io/core/oc-lib v0.0.0-20250114071722-1c32cd2d12df h1:T52jgXQddoxwe+embR26Fwmz4G2jkl4QpYVHGtiLUNI= +cloud.o-forge.io/core/oc-lib v0.0.0-20250114071722-1c32cd2d12df/go.mod h1:VgWEn23ddKySWXrwPMhqtiBjTJnbm5t7yWjzfvNxbbI= +cloud.o-forge.io/core/oc-lib v0.0.0-20250114081637-918006302bb4 h1:AwCbDHjvUz9iQaF7hgYWyabVF/EzSSSk5bCNgntNJ6c= +cloud.o-forge.io/core/oc-lib v0.0.0-20250114081637-918006302bb4/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250114105339-b782248da741 h1:akAQLlcAXDtUhbNHbona9xJrHCzK9jxlvsDsEpVP1fg= +cloud.o-forge.io/core/oc-lib v0.0.0-20250114105339-b782248da741/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250114135055-1a4694c8913a h1:AxnecA1YKOZ81OKb1akK2Qc/0UNDUxdjSww7ALyehas= +cloud.o-forge.io/core/oc-lib v0.0.0-20250114135055-1a4694c8913a/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250115082026-ad69c0495144 h1:MZ90rw4SKL0dqL/Lb+7E54vkk9fb8W6X0UJo9UW/XBk= +cloud.o-forge.io/core/oc-lib v0.0.0-20250115082026-ad69c0495144/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250115095644-be3803039583 h1:6My1sqjvqgHnC4TlE7RsZQHC8AVhad0gZl8uOvLTM9o= +cloud.o-forge.io/core/oc-lib v0.0.0-20250115095644-be3803039583/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250115102820-0e0540af43d0 h1:AcHC2WIeHOSjz5xe7OsjMi39EevxdY2O/9q0VMkDRz0= +cloud.o-forge.io/core/oc-lib v0.0.0-20250115102820-0e0540af43d0/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250116091455-68f418928395 h1:u4myLPGqBbzprWHg6713k5a++4yiq1ujlVy7yrMkZ9g= +cloud.o-forge.io/core/oc-lib v0.0.0-20250116091455-68f418928395/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250116142544-a4a249bab828 h1:yMDBDTs7LECyueUfh0iug502GN8GodVpQSl/gZchUjU= +cloud.o-forge.io/core/oc-lib v0.0.0-20250116142544-a4a249bab828/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117081640-450fab437cb7 h1:SV9U48sR09cNRl48489lQHrrKJFtTMQoQcRhmtsLTYQ= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117081640-450fab437cb7/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117090737-b990fe42d375 h1:UsPWfbVgvUcOC3BtD8B9dUQfv/FnRF4IZGrYxUJr1iM= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117090737-b990fe42d375/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117100508-d44fb976e4ff h1:GaLrVn6ame6BV7pfUB2xeHCCJLBECRiCCpPj6zteL+s= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117100508-d44fb976e4ff/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117121920-ed787683f47b h1:3wap+dPPplJkDglE5toKfdFUmjobAeIJWdiRtCQ3xkQ= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117121920-ed787683f47b/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117124801-e5c7dbe4cb96 h1:opQ/Uku27DOKAqDcKC9k6J9H5Tj9bNyKdHnJnD3U850= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117124801-e5c7dbe4cb96/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117135417-c63a1fef6c48 h1:dEebv8ZV5rt6BYPkcK6HOts+OPqkSxkKp5zn1lCq1vs= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117135417-c63a1fef6c48/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117152246-b85ca8674b27 h1:QEIj90eIoYsjs1uekbI3Nu48KDWmzGV7ugcr9agJbYI= +cloud.o-forge.io/core/oc-lib v0.0.0-20250117152246-b85ca8674b27/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/beego/beego/v2 v2.3.0 h1:iECVwzm6egw6iw6tkWrEDqXG4NQtKLQ6QBSYqlM6T/I= github.com/beego/beego/v2 v2.3.0/go.mod h1:Ob/5BJ9fIKZLd4s9ZV3o9J6odkkIyL83et+p98gyYXo= @@ -62,6 +132,8 @@ github.com/beego/beego/v2 v2.3.1/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVD github.com/beego/beego/v2 v2.3.2/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= @@ -123,6 +195,8 @@ github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/marcinwyszynski/geopoint v0.0.0-20140302213024-cf2a6f750c5b h1:XBF8THPBy28s2ryI7+/Jf/847unLWxYMpJveX5Kox+0= +github.com/marcinwyszynski/geopoint v0.0.0-20140302213024-cf2a6f750c5b/go.mod h1:z1oqhOuuYpPHmUmAK2aNygKFlPdb4o3PppQnVTRFdrI= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -166,6 +240,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 v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ= +github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= 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/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= diff --git a/oc-shared b/oc-shared index 895827b..4833f21 100755 Binary files a/oc-shared and b/oc-shared differ diff --git a/swagger/swagger.json b/swagger/swagger.json index d3379b5..f7ecb2f 100644 --- a/swagger/swagger.json +++ b/swagger/swagger.json @@ -22,6 +22,14 @@ ], "description": "find shared workspace by id\n\u003cbr\u003e", "operationId": "CollaborativeAreaController.GetAll", + "parameters": [ + { + "in": "query", + "name": "is_draft", + "description": "draft wished", + "type": "string" + } + ], "responses": { "200": { "description": "{shared_workspace} models.shared_workspace" @@ -66,6 +74,12 @@ "description": "the word search you want to get", "required": true, "type": "string" + }, + { + "in": "query", + "name": "is_draft", + "description": "draft wished", + "type": "string" } ], "responses": { @@ -357,7 +371,7 @@ "collaborative_area" ], "description": "find shared workspace by id\n\u003cbr\u003e", - "operationId": "CollaborativeAreaController.Add Workspace", + "operationId": "CollaborativeAreaController.Remove Workspace", "parameters": [ { "in": "path", diff --git a/swagger/swagger.yml b/swagger/swagger.yml index 22bb2e7..cc5cb24 100644 --- a/swagger/swagger.yml +++ b/swagger/swagger.yml @@ -20,6 +20,11 @@ paths: find shared workspace by id <br> operationId: CollaborativeAreaController.GetAll + parameters: + - in: query + name: is_draft + description: draft wished + type: string responses: "200": description: '{shared_workspace} models.shared_workspace' @@ -252,7 +257,7 @@ paths: description: |- find shared workspace by id <br> - operationId: CollaborativeAreaController.Add Workspace + operationId: CollaborativeAreaController.Remove Workspace parameters: - in: path name: id @@ -281,6 +286,10 @@ paths: description: the word search you want to get required: true type: string + - in: query + name: is_draft + description: draft wished + type: string responses: "200": description: '{shared workspace} models.shared_workspace'