nats search

This commit is contained in:
mr 2025-06-24 09:13:29 +02:00
parent a5b75a449c
commit a2b9be9875
4 changed files with 96 additions and 1 deletions

72
controllers/purchase.go Executable file
View File

@ -0,0 +1,72 @@
package controllers
import (
"encoding/json"
oclib "cloud.o-forge.io/core/oc-lib"
beego "github.com/beego/beego/v2/server/web"
)
// Operations about compute
type PurchaseController struct {
beego.Controller
}
var order_collection = oclib.LibDataEnum(oclib.ORDER)
var purchase_collection = oclib.LibDataEnum(oclib.PURCHASE_RESOURCE)
// @Title Create
// @Description create compute
// @Param compute body json true "body for compute content (Json format)"
// @Success 200 {compute} models.compute
// @router / [post]
func (o *PurchaseController) Post() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
var res map[string]interface{}
json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res)
stored := oclib.NewRequest(purchase_collection, user, peerID, groups, nil).StoreOne(res)
if stored.Err != "" {
o.Data["json"] = stored
o.ServeJSON()
return
}
o.ServeJSON()
}
// @Title GetAll
// @Description find compute by id
// @Param is_draft query string false "draft wished"
// @Success 200 {compute} models.compute
// @router / [get]
func (o *PurchaseController) GetAll() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
isDraft := o.Ctx.Input.Query("is_draft")
o.Data["json"] = oclib.NewRequest(purchase_collection, user, peerID, groups, nil).LoadAll(isDraft == "true")
o.ServeJSON()
}
// @Title Get
// @Description find compute by key word
// @Param search path string true "the search you want to get"
// @Param is_draft query string false "draft wished"
// @Success 200 {compute} models.compute
// @router /search/:search [get]
func (o *PurchaseController) Search() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
isDraft := o.Ctx.Input.Query("is_draft")
search := o.Ctx.Input.Param(":search")
o.Data["json"] = oclib.NewRequest(purchase_collection, user, peerID, groups, nil).Search(nil, search, isDraft == "true")
o.ServeJSON()
}
// @Title Get
// @Description find compute by id
// @Param id path string true "the id you want to get"
// @Success 200 {compute} models.compute
// @router /:id [get]
func (o *PurchaseController) Get() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
id := o.Ctx.Input.Param(":id")
o.Data["json"] = oclib.NewRequest(purchase_collection, user, peerID, groups, nil).LoadOne(id)
o.ServeJSON()
}

2
go.mod
View File

@ -5,7 +5,7 @@ go 1.22.0
toolchain go1.22.4
require (
cloud.o-forge.io/core/oc-lib v0.0.0-20250219142942-5111c9c8bec7
cloud.o-forge.io/core/oc-lib v0.0.0-20250624064953-2c8dcbe93d14
github.com/beego/beego/v2 v2.3.4
github.com/smartystreets/goconvey v1.7.2
)

18
go.sum
View File

@ -26,6 +26,24 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20250219104152-3ecb0e9d960b h1:DhRqJdw2VePaY
cloud.o-forge.io/core/oc-lib v0.0.0-20250219104152-3ecb0e9d960b/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE=
cloud.o-forge.io/core/oc-lib v0.0.0-20250219142942-5111c9c8bec7 h1:fh6SzBPenzIxufIIzExtx4jEE4OhFposqn3EbHFr92Q=
cloud.o-forge.io/core/oc-lib v0.0.0-20250219142942-5111c9c8bec7/go.mod h1:2roQbUpv3a6mTIr5oU1ux31WbN8YucyyQvCQ0FqwbcE=
cloud.o-forge.io/core/oc-lib v0.0.0-20250619061111-938f9f1326ff h1:CB4WNMeqOSJKOLi8pa5F2lpTRAFykueODRdjVJ5Ecfc=
cloud.o-forge.io/core/oc-lib v0.0.0-20250619061111-938f9f1326ff/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620055332-4c2ecd3f4179 h1:nNxQEozE9W6ZeZCwdhB8vR7sZJ4h1Y0ARxfX/aOGv4k=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620055332-4c2ecd3f4179/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620061052-d3cfe019e3a3 h1:rUmQoH3TBMq73A6gP9tWVbD7EyWeC9VI+YcXy2ITcso=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620061052-d3cfe019e3a3/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620063433-8d5ba6a5e4c9 h1:5kZUCjFSxRndgNX3qWcI9ygeJNdTSR8VqV2XqEbRKlY=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620063433-8d5ba6a5e4c9/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620072209-01af8237dbbd h1:YUd2qOfPO3wHiKfSf+uIt5+TyA9LTLuKsqVXGuusjA4=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620072209-01af8237dbbd/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620072755-8b38249df7f2 h1:prLu7mZOHK3wUTEtFul8wnsIaLIssZRRv2cJDue9LB4=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620072755-8b38249df7f2/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620085001-583ca2fbacd5 h1:FEBwueVOOWKYf0tJuE0EKNIbjxmTyCMgkT4qATYsfbo=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620085001-583ca2fbacd5/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620101113-e84d262f380b h1:wGDMS97ns+7QR0mQREF640PjG/2mUmEIB0qbxkDc/dg=
cloud.o-forge.io/core/oc-lib v0.0.0-20250620101113-e84d262f380b/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
cloud.o-forge.io/core/oc-lib v0.0.0-20250624064953-2c8dcbe93d14 h1:iCTrYc2+W2BFLOupRK1sD6sOgsK4NIs6WMC+4LiWCaY=
cloud.o-forge.io/core/oc-lib v0.0.0-20250624064953-2c8dcbe93d14/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/beego/beego/v2 v2.3.4 h1:HurQEOGIEhLlPFCTR6ZDuQkybrUl2Ag2i6CdVD2rGiI=
github.com/beego/beego/v2 v2.3.4/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4=

View File

@ -15,6 +15,11 @@ import (
func init() {
ns := beego.NewNamespace("/oc/",
beego.NSNamespace("/purchase",
beego.NSInclude(
&controllers.PurchaseController{},
),
),
beego.NSNamespace("/resource",
beego.NSInclude(
&controllers.ResourceController{},