entry to upload datas

This commit is contained in:
mr
2026-01-12 14:37:37 +01:00
parent 543f6fe576
commit 89005be400
8 changed files with 339 additions and 1 deletions

57
controllers/general.go Executable file
View File

@@ -0,0 +1,57 @@
package controllers
import (
oclib "cloud.o-forge.io/core/oc-lib"
w "cloud.o-forge.io/core/oc-lib/models/workflow"
tools "cloud.o-forge.io/core/oc-lib/tools"
beego "github.com/beego/beego/v2/server/web"
)
// Operations about compute
type GeneralController struct {
beego.Controller
}
// @Title GetAll
// @Description find compute by id
// @Param file formData file true "File to upload"
// @Success 200 {compute} models.workflow
// @Failure 406 {string} string "Bad request"
// @router / [get]
func (o *GeneralController) GetAll() {
user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request)
file, _, err := o.Ctx.Request.FormFile("file")
if err != nil {
o.Data["json"] = map[string]interface{}{
"data": nil,
"code": 406,
"error": err.Error(),
}
o.ServeJSON()
return
}
newWorkflow := &w.Workflow{}
req := &tools.APIRequest{
Username: user,
PeerID: peerID,
Groups: groups,
}
newWorkflow, err = newWorkflow.ExtractFromPlantUML(file, req)
if err != nil {
o.Data["json"] = map[string]interface{}{
"data": nil,
"code": 406,
"error": err.Error(),
}
o.ServeJSON()
return
}
o.Data["json"] = map[string]interface{}{
"data": newWorkflow,
"code": 200,
"error": nil,
}
o.ServeJSON()
}

2
go.mod
View File

@@ -5,7 +5,7 @@ go 1.23.0
toolchain go1.24.0
require (
cloud.o-forge.io/core/oc-lib v0.0.0-20250624102227-e600fedcab06
cloud.o-forge.io/core/oc-lib v0.0.0-20260112132629-be770ec763b1
github.com/beego/beego/v2 v2.3.4
github.com/smartystreets/goconvey v1.7.2
)

4
go.sum
View File

@@ -50,6 +50,10 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20250624095852-147c7bc3a1d5 h1:0eV0E3kBZkOyo
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=
cloud.o-forge.io/core/oc-lib v0.0.0-20260112110032-27f295f17e05 h1:3d/ulu/bVexfD2RgP8hdWFtZCByWmxWKc+cxP40nhh0=
cloud.o-forge.io/core/oc-lib v0.0.0-20260112110032-27f295f17e05/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI=
cloud.o-forge.io/core/oc-lib v0.0.0-20260112132629-be770ec763b1 h1:MOllR71ruHvBZK3nxeOAnHa9xjnotnlngMEGZqEBp2g=
cloud.o-forge.io/core/oc-lib v0.0.0-20260112132629-be770ec763b1/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=

Binary file not shown.

View File

@@ -232,6 +232,15 @@ func init() {
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["oc-catalog/controllers:GeneralController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:GeneralController"],
beego.ControllerComments{
Method: "GetAll",
Router: `/`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["oc-catalog/controllers:ProcessingController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:ProcessingController"],
beego.ControllerComments{
Method: "Post",
@@ -286,6 +295,42 @@ func init() {
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["oc-catalog/controllers:PurchaseController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:PurchaseController"],
beego.ControllerComments{
Method: "Post",
Router: `/`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["oc-catalog/controllers:PurchaseController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:PurchaseController"],
beego.ControllerComments{
Method: "GetAll",
Router: `/`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["oc-catalog/controllers:PurchaseController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:PurchaseController"],
beego.ControllerComments{
Method: "Get",
Router: `/:id`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["oc-catalog/controllers:PurchaseController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:PurchaseController"],
beego.ControllerComments{
Method: "Search",
Router: `/search/:search`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["oc-catalog/controllers:ResourceController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:ResourceController"],
beego.ControllerComments{
Method: "GetAll",

View File

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

View File

@@ -476,6 +476,32 @@
}
}
},
"/generic/": {
"get": {
"tags": [
"generic"
],
"description": "find compute by id\n\u003cbr\u003e",
"operationId": "GeneralController.GetAll",
"parameters": [
{
"in": "formData",
"name": "file",
"description": "File to upload",
"required": true,
"type": "file"
}
],
"responses": {
"200": {
"description": "{compute} models.workflow"
},
"406": {
"description": "{string} string \"Bad request\""
}
}
}
},
"/processing/": {
"get": {
"tags": [
@@ -624,6 +650,103 @@
}
}
},
"/purchase/": {
"get": {
"tags": [
"purchase"
],
"description": "find compute by id\n\u003cbr\u003e",
"operationId": "PurchaseController.GetAll",
"parameters": [
{
"in": "query",
"name": "is_draft",
"description": "draft wished",
"type": "string"
}
],
"responses": {
"200": {
"description": "{compute} models.compute"
}
}
},
"post": {
"tags": [
"purchase"
],
"description": "create compute\n\u003cbr\u003e",
"operationId": "PurchaseController.Create",
"parameters": [
{
"in": "body",
"name": "compute",
"description": "body for compute content (Json format)",
"required": true,
"schema": {
"$ref": "#/definitions/json"
}
}
],
"responses": {
"200": {
"description": "{compute} models.compute"
}
}
}
},
"/purchase/search/{search}": {
"get": {
"tags": [
"purchase"
],
"description": "find compute by key word\n\u003cbr\u003e",
"operationId": "PurchaseController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "is_draft",
"description": "draft wished",
"type": "string"
}
],
"responses": {
"200": {
"description": "{compute} models.compute"
}
}
}
},
"/purchase/{id}": {
"get": {
"tags": [
"purchase"
],
"description": "find compute by id\n\u003cbr\u003e",
"operationId": "PurchaseController.Get",
"parameters": [
{
"in": "path",
"name": "id",
"description": "the id you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{compute} models.compute"
}
}
}
},
"/resource/": {
"get": {
"tags": [
@@ -1071,6 +1194,14 @@
}
},
"tags": [
{
"name": "generic",
"description": "Operations about compute\n"
},
{
"name": "purchase",
"description": "Operations about compute\n"
},
{
"name": "resource",
"description": "Operations about resource\n"

View File

@@ -359,6 +359,25 @@ paths:
responses:
"200":
description: '{resource} models.resource'
/generic/:
get:
tags:
- generic
description: |-
find compute by id
<br>
operationId: GeneralController.GetAll
parameters:
- in: formData
name: file
description: File to upload
required: true
type: file
responses:
"200":
description: '{compute} models.workflow'
"406":
description: '{string} string "Bad request"'
/processing/:
get:
tags:
@@ -468,6 +487,77 @@ paths:
responses:
"200":
description: '{processing} models.processing'
/purchase/:
get:
tags:
- purchase
description: |-
find compute by id
<br>
operationId: PurchaseController.GetAll
parameters:
- in: query
name: is_draft
description: draft wished
type: string
responses:
"200":
description: '{compute} models.compute'
post:
tags:
- purchase
description: |-
create compute
<br>
operationId: PurchaseController.Create
parameters:
- in: body
name: compute
description: body for compute content (Json format)
required: true
schema:
$ref: '#/definitions/json'
responses:
"200":
description: '{compute} models.compute'
/purchase/{id}:
get:
tags:
- purchase
description: |-
find compute by id
<br>
operationId: PurchaseController.Get
parameters:
- in: path
name: id
description: the id you want to get
required: true
type: string
responses:
"200":
description: '{compute} models.compute'
/purchase/search/{search}:
get:
tags:
- purchase
description: |-
find compute by key word
<br>
operationId: PurchaseController.Get
parameters:
- in: path
name: search
description: the search you want to get
required: true
type: string
- in: query
name: is_draft
description: draft wished
type: string
responses:
"200":
description: '{compute} models.compute'
/resource/:
get:
tags:
@@ -798,6 +888,12 @@ definitions:
title: workflow
type: object
tags:
- name: generic
description: |
Operations about compute
- name: purchase
description: |
Operations about compute
- name: resource
description: |
Operations about resource