Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
cd7bc802e0 | |||
|
a2b9be9875 | ||
|
a5b75a449c | ||
|
c989f72ea4 | ||
|
7c59da6cdc |
11
Makefile
11
Makefile
@ -19,15 +19,20 @@ clean:
|
|||||||
rm -rf oc-catalog.tar.gz
|
rm -rf oc-catalog.tar.gz
|
||||||
|
|
||||||
docker:
|
docker:
|
||||||
DOCKER_BUILDKIT=1 docker build -t oc/oc-catalog:0.0.1 -f Dockerfile .
|
DOCKER_BUILDKIT=1 docker build -t oc-catalog -f Dockerfile . --build-arg=HOST=$(HOST)
|
||||||
docker tag oc/oc-catalog:0.0.1 oc/oc-catalog:latest
|
docker tag oc-catalog:latest oc/oc-catalog:0.0.1
|
||||||
|
|
||||||
publish-kind:
|
publish-kind:
|
||||||
kind load docker-image oc/oc-catalog:0.0.1 --name opencloud
|
kind load docker-image oc/oc-catalog:0.0.1 --name opencloud | true
|
||||||
|
|
||||||
publish-registry:
|
publish-registry:
|
||||||
@echo "TODO"
|
@echo "TODO"
|
||||||
|
|
||||||
|
docker-deploy:
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
run-docker: docker publish-kind publish-registry docker-deploy
|
||||||
|
|
||||||
all: docker publish-kind publish-registry
|
all: docker publish-kind publish-registry
|
||||||
|
|
||||||
dev: purge run-dev
|
dev: purge run-dev
|
||||||
|
72
controllers/purchase.go
Executable file
72
controllers/purchase.go
Executable 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
2
go.mod
@ -5,7 +5,7 @@ go 1.22.0
|
|||||||
toolchain go1.22.4
|
toolchain go1.22.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.o-forge.io/core/oc-lib v0.0.0-20250219142942-5111c9c8bec7
|
cloud.o-forge.io/core/oc-lib v0.0.0-20250624102227-e600fedcab06
|
||||||
github.com/beego/beego/v2 v2.3.4
|
github.com/beego/beego/v2 v2.3.4
|
||||||
github.com/smartystreets/goconvey v1.7.2
|
github.com/smartystreets/goconvey v1.7.2
|
||||||
)
|
)
|
||||||
|
24
go.sum
24
go.sum
@ -26,6 +26,30 @@ 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-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 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-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=
|
||||||
|
cloud.o-forge.io/core/oc-lib v0.0.0-20250624093207-3fdf5c3ebf29 h1:JitS1izRltTyOaWnvXnmYywHj0napsL6y0nBYiWUCNo=
|
||||||
|
cloud.o-forge.io/core/oc-lib v0.0.0-20250624093207-3fdf5c3ebf29/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
|
||||||
|
cloud.o-forge.io/core/oc-lib v0.0.0-20250624095852-147c7bc3a1d5 h1:0eV0E3kBZkOyoAurRmP9h4eHmFrZajOxSqoBgM3l3dk=
|
||||||
|
cloud.o-forge.io/core/oc-lib v0.0.0-20250624095852-147c7bc3a1d5/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
|
||||||
|
cloud.o-forge.io/core/oc-lib v0.0.0-20250624102227-e600fedcab06 h1:+RSv62uIC7wsmibsp1XTanQMNznNeOGgPpfhb6ZHT4c=
|
||||||
|
cloud.o-forge.io/core/oc-lib v0.0.0-20250624102227-e600fedcab06/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
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 h1:HurQEOGIEhLlPFCTR6ZDuQkybrUl2Ag2i6CdVD2rGiI=
|
||||||
github.com/beego/beego/v2 v2.3.4/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4=
|
github.com/beego/beego/v2 v2.3.4/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4=
|
||||||
|
@ -15,6 +15,11 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
ns := beego.NewNamespace("/oc/",
|
ns := beego.NewNamespace("/oc/",
|
||||||
|
beego.NSNamespace("/purchase",
|
||||||
|
beego.NSInclude(
|
||||||
|
&controllers.PurchaseController{},
|
||||||
|
),
|
||||||
|
),
|
||||||
beego.NSNamespace("/resource",
|
beego.NSNamespace("/resource",
|
||||||
beego.NSInclude(
|
beego.NSInclude(
|
||||||
&controllers.ResourceController{},
|
&controllers.ResourceController{},
|
||||||
|
Loading…
Reference in New Issue
Block a user