Commit 812d12ae authored by brent's avatar brent

add app

parent 8b8c8c98
No preview for this file type
...@@ -11,6 +11,7 @@ whoisApi = "replicate" ...@@ -11,6 +11,7 @@ whoisApi = "replicate"
apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG" apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG"
taskUrl = "https://api.aonet.ai/api/v1" taskUrl = "https://api.aonet.ai/api/v1"
imageUrl = "https://tmp-file.aigic.ai/api/v1/upload/persistence" imageUrl = "https://tmp-file.aigic.ai/api/v1/upload/persistence"
imageTransferUrl = "https://tmp-file.aigic.ai/api/v1/down/put"
replicateToken = "r8_9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6" replicateToken = "r8_9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6"
replicateTimeout = 10 replicateTimeout = 10
...@@ -19,6 +20,7 @@ whoisApi = "aonet" ...@@ -19,6 +20,7 @@ whoisApi = "aonet"
apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG" apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG"
taskUrl = "https://api.aonet.ai/api/v1" taskUrl = "https://api.aonet.ai/api/v1"
imageUrl = "https://tmp-file.aigic.ai/api/v1/upload/persistence" imageUrl = "https://tmp-file.aigic.ai/api/v1/upload/persistence"
imageTransferUrl = "https://tmp-file.aigic.ai/api/v1/down/put"
replicateToken = "r8_9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6" replicateToken = "r8_9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6"
replicateTimeout = 10 replicateTimeout = 10
...@@ -27,6 +29,7 @@ whoisApi = "aonet" ...@@ -27,6 +29,7 @@ whoisApi = "aonet"
apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG" apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG"
taskUrl = "https://api.aonet.ai/api/v1" taskUrl = "https://api.aonet.ai/api/v1"
imageUrl = "https://tmp-file.aigic.ai/api/v1/upload/persistence" imageUrl = "https://tmp-file.aigic.ai/api/v1/upload/persistence"
imageTransferUrl = "https://tmp-file.aigic.ai/api/v1/down/put"
replicateToken = "r8_9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6" replicateToken = "r8_9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6"
replicateTimeout = 10 replicateTimeout = 10
......
package controllers
import (
"aon_app_server/models"
"aon_app_server/utils/mongo"
"encoding/json"
"github.com/beego/beego/v2/core/logs"
"go.mongodb.org/mongo-driver/bson"
"net/http"
"time"
)
type AppController struct {
MainController
}
func (server *AppController) Add() {
body := server.Ctx.Input.RequestBody
template := models.App{}
err := json.Unmarshal(body, &template) //解析body中数据
logs.Debug("appRequest", template)
if err != nil {
server.respond(models.NoRequestBody, err.Error())
return
}
template.CreatedTime = time.Now().UTC()
template.UpdatedTime = template.CreatedTime
_, err = mongo.Insert(&template)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "")
}
func (server *AppController) Update() {
body := server.Ctx.Input.RequestBody
template := models.App{}
err := json.Unmarshal(body, &template) //解析body中数据
logs.Debug("appRequest", template)
if err != nil {
server.respond(models.NoRequestBody, err.Error())
return
}
if template.Id == nil {
server.respond(models.MissingParameter, "id param is null")
return
}
template.UpdatedTime = time.Now().UTC()
_, err = mongo.Update(template)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "")
}
func (server *AppController) Delete() {
body := server.Ctx.Input.RequestBody
template := models.App{}
err := json.Unmarshal(body, &template) //解析body中数据
logs.Debug("appRequest", template)
if err != nil {
server.respond(models.NoRequestBody, err.Error())
return
}
if template.Id == nil {
server.respond(models.MissingParameter, "id param is null")
return
}
template.UpdatedTime = time.Now().UTC()
template.Deleted = 1
_, err = mongo.Update(template)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "")
}
func (server *AppController) List() {
body := server.Ctx.Input.RequestBody
request := models.ListRequest{}
err := json.Unmarshal(body, &request) //解析body中数据
logs.Debug("appRequest", request)
if err != nil {
server.respond(models.NoRequestBody, err.Error())
return
}
if request.Page == 0 {
request.Page = 1
}
if request.Size == 0 {
request.Size = 10
}
total, data, err := mongo.Query("App", request.Page, request.Size, request.Filter)
if err != nil {
logs.Info("List Error:", err)
server.respond(models.BusinessFailed, err.Error())
}
var apps []models.App
for _, bsonD := range data {
var app models.App
// 将 bson.D 转换为 bson.Raw
bsonRaw, err := bson.Marshal(bsonD)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
}
// 将 bson.Raw 解码为 User 结构体
err = bson.Unmarshal(bsonRaw, &app)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
}
apps = append(apps, app)
}
responseData := struct {
Total int64 `json:"total"`
Data interface{} `json:"data,omitempty"`
}{
Total: total,
Data: apps,
}
server.respond(http.StatusOK, "", responseData)
}
//func (server *AppController) BindTemplate() {
// body := server.Ctx.Input.RequestBody
// request := models.AppTemplate{}
// err := json.Unmarshal(body, &request) //解析body中数据
// logs.Debug("appRequest", request)
// if err != nil {
// server.respond(models.NoRequestBody, err.Error())
// return
// }
//
// if request.AppId == nil {
// server.respond(models.MissingParameter, "app_id param is null")
// return
// }
// if request.TemplateId == nil {
// server.respond(models.MissingParameter, "template_id param is null")
// return
// }
//
// request.CreatedTime = time.Now().UTC()
// request.UpdatedTime = request.CreatedTime
// _, err = mongo.Insert(&request)
// if err != nil {
// server.respond(models.BusinessFailed, err.Error())
// return
// }
// server.respond(http.StatusOK, "")
//}
...@@ -12,7 +12,6 @@ type LogController struct { ...@@ -12,7 +12,6 @@ type LogController struct {
MainController MainController
} }
// Report @router /report/ [post]
func (server *LogController) Report() { func (server *LogController) Report() {
body := server.Ctx.Input.RequestBody body := server.Ctx.Input.RequestBody
log := models.Log{} log := models.Log{}
...@@ -48,7 +47,6 @@ func (server *LogController) Report() { ...@@ -48,7 +47,6 @@ func (server *LogController) Report() {
server.respond(http.StatusOK, "") server.respond(http.StatusOK, "")
} }
// BatchReport @router /batch_report/ [post]
func (server *LogController) BatchReport() { func (server *LogController) BatchReport() {
body := server.Ctx.Input.RequestBody body := server.Ctx.Input.RequestBody
var data []models.Log var data []models.Log
......
...@@ -33,7 +33,6 @@ func init() { ...@@ -33,7 +33,6 @@ func init() {
var execTasks = make(chan *models.Task, 100) var execTasks = make(chan *models.Task, 100)
// Prediction @router /prediction/ [post]
func (server *TaskController) Prediction() { func (server *TaskController) Prediction() {
body := server.Ctx.Input.RequestBody body := server.Ctx.Input.RequestBody
task := models.Task{} task := models.Task{}
...@@ -50,6 +49,7 @@ func (server *TaskController) Prediction() { ...@@ -50,6 +49,7 @@ func (server *TaskController) Prediction() {
async = true async = true
} }
task.CreatedTime = time.Now().UTC() task.CreatedTime = time.Now().UTC()
task.UpdatedTime = task.CreatedTime
id, err := mongo.Insert(&task) id, err := mongo.Insert(&task)
if err != nil { if err != nil {
server.respond(models.BusinessFailed, err.Error()) server.respond(models.BusinessFailed, err.Error())
...@@ -107,6 +107,43 @@ func copyImages(images []string) []string { ...@@ -107,6 +107,43 @@ func copyImages(images []string) []string {
return images return images
} }
func transferImages(images []string) []string {
imagesToCopy := models.ImagesToCopy{
Sources: images,
}
url, _ := beego.AppConfig.String("imageTransferUrl")
payload := new(bytes.Buffer)
json.NewEncoder(payload).Encode(imagesToCopy)
resp, err := http.Post(url, "application/json;charset=UTF-8", payload)
if err != nil {
logs.Info("Error sending request:", err)
return images
}
defer resp.Body.Close()
logs.Info("transferImages resp code", resp.StatusCode)
body, err := io.ReadAll(resp.Body)
if err != nil {
logs.Info("Error reading response:", err)
return images
}
logs.Debug("transferImages body", string(body))
var response []models.ImageCopied
if err := json.Unmarshal(body, &response); err != nil {
return images
}
var backImages []string
for _, value := range response {
if value.Code == 200 {
backImages = append(backImages, value.Data)
}
}
if len(backImages) > 0 {
return backImages
}
return images
}
func sendTask(task *models.Task, async bool) (*models.TaskResponse, error) { func sendTask(task *models.Task, async bool) (*models.TaskResponse, error) {
host, _ := beego.AppConfig.String("taskUrl") host, _ := beego.AppConfig.String("taskUrl")
url := host + task.ApiPath url := host + task.ApiPath
...@@ -439,7 +476,7 @@ func doGetReplicate(url string, task *models.Task, taskResponse *models.TaskResp ...@@ -439,7 +476,7 @@ func doGetReplicate(url string, task *models.Task, taskResponse *models.TaskResp
} }
} }
task.Status = 2 task.Status = 2
task.Output = output task.Output = transferImages(output)
mongo.Update(task) mongo.Update(task)
taskResponse.Output = task.Output taskResponse.Output = task.Output
taskResponse.Task.IsSuccess = true taskResponse.Task.IsSuccess = true
...@@ -526,7 +563,6 @@ func setError(task *models.Task, error string) { ...@@ -526,7 +563,6 @@ func setError(task *models.Task, error string) {
} }
} }
// Result @router /result/:excute_id [get]
func (server *TaskController) Result() { func (server *TaskController) Result() {
taskId := server.GetString("excute_id") taskId := server.GetString("excute_id")
if taskId == "" { if taskId == "" {
...@@ -547,7 +583,6 @@ func (server *TaskController) Result() { ...@@ -547,7 +583,6 @@ func (server *TaskController) Result() {
server.respond(http.StatusOK, "", task) server.respond(http.StatusOK, "", task)
} }
// List @router /list/ [post]
func (server *TaskController) List() { func (server *TaskController) List() {
body := server.Ctx.Input.RequestBody body := server.Ctx.Input.RequestBody
request := models.ListRequest{} request := models.ListRequest{}
......
package controllers
import (
"aon_app_server/models"
"aon_app_server/utils/mongo"
"encoding/json"
"github.com/beego/beego/v2/core/logs"
"go.mongodb.org/mongo-driver/bson"
"net/http"
"time"
)
type TemplateController struct {
MainController
}
func (server *TemplateController) Add() {
body := server.Ctx.Input.RequestBody
template := models.Template{}
err := json.Unmarshal(body, &template) //解析body中数据
logs.Debug("appRequest", template)
if err != nil {
server.respond(models.NoRequestBody, err.Error())
return
}
template.CreatedTime = time.Now().UTC()
template.UpdatedTime = template.CreatedTime
_, err = mongo.Insert(&template)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "")
}
func (server *TemplateController) Update() {
body := server.Ctx.Input.RequestBody
template := models.Template{}
err := json.Unmarshal(body, &template) //解析body中数据
logs.Debug("appRequest", template)
if err != nil {
server.respond(models.NoRequestBody, err.Error())
return
}
if template.Id == nil {
server.respond(models.MissingParameter, "id param is null")
return
}
template.UpdatedTime = time.Now().UTC()
_, err = mongo.Update(template)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "")
}
func (server *TemplateController) Delete() {
body := server.Ctx.Input.RequestBody
template := models.Template{}
err := json.Unmarshal(body, &template) //解析body中数据
logs.Debug("appRequest", template)
if err != nil {
server.respond(models.NoRequestBody, err.Error())
return
}
if template.Id == nil {
server.respond(models.MissingParameter, "id param is null")
return
}
template.UpdatedTime = time.Now().UTC()
template.Deleted = 1
_, err = mongo.Update(template)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "")
}
func (server *TemplateController) List() {
body := server.Ctx.Input.RequestBody
request := models.ListRequest{}
err := json.Unmarshal(body, &request) //解析body中数据
logs.Debug("appRequest", request)
if err != nil {
server.respond(models.NoRequestBody, err.Error())
return
}
if request.Page == 0 {
request.Page = 1
}
if request.Size == 0 {
request.Size = 10
}
total, data, err := mongo.Query("Template", request.Page, request.Size, request.Filter)
if err != nil {
logs.Info("List Error:", err)
server.respond(models.BusinessFailed, err.Error())
}
var templates []models.Template
for _, bsonD := range data {
var template models.Template
// 将 bson.D 转换为 bson.Raw
bsonRaw, err := bson.Marshal(bsonD)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
}
// 将 bson.Raw 解码为 User 结构体
err = bson.Unmarshal(bsonRaw, &template)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
}
templates = append(templates, template)
}
responseData := struct {
Total int64 `json:"total"`
Data interface{} `json:"data,omitempty"`
}{
Total: total,
Data: templates,
}
server.respond(http.StatusOK, "", responseData)
}
package controllers
...@@ -13,6 +13,7 @@ require ( ...@@ -13,6 +13,7 @@ require (
) )
require ( require (
github.com/beego/swagger v4.6.2+incompatible // indirect
github.com/beorn7/perks v1.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.1.1 // indirect github.com/cespare/xxhash/v2 v2.1.1 // indirect
github.com/golang/protobuf v1.4.2 // indirect github.com/golang/protobuf v1.4.2 // indirect
......
...@@ -12,6 +12,8 @@ github.com/beego/beego v1.12.12/go.mod h1:QURFL1HldOcCZAxnc1cZ7wrplsYR5dKPHFjmk6 ...@@ -12,6 +12,8 @@ github.com/beego/beego v1.12.12/go.mod h1:QURFL1HldOcCZAxnc1cZ7wrplsYR5dKPHFjmk6
github.com/beego/beego/v2 v2.0.1 h1:07a7Z0Ok5vbqyqh+q53sDPl9LdhKh0ZDy3gbyGrhFnE= github.com/beego/beego/v2 v2.0.1 h1:07a7Z0Ok5vbqyqh+q53sDPl9LdhKh0ZDy3gbyGrhFnE=
github.com/beego/beego/v2 v2.0.1/go.mod h1:8zyHi1FnWO1mZLwTn62aKRIZF/aIKvkCBB2JYs+eqQI= github.com/beego/beego/v2 v2.0.1/go.mod h1:8zyHi1FnWO1mZLwTn62aKRIZF/aIKvkCBB2JYs+eqQI=
github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ= github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ=
github.com/beego/swagger v4.6.2+incompatible h1:kSE3W+XxzkwmU4+DKA0w0e7LH//FYzsxHzh1BT28fsQ=
github.com/beego/swagger v4.6.2+incompatible/go.mod h1:0X68xY3Bdax18fj/jUv/xj7JdT6XjYxeW+Hf8mWjY5M=
github.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU= github.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
......
{"/Users/brent/Documents/wubanWork/aon_app_server/controllers":1720592962344996898} {"/Users/brent/Documents/wubanWork/aon_app_server/controllers":1721197034796038035}
\ No newline at end of file \ No newline at end of file
...@@ -5,6 +5,7 @@ import ( ...@@ -5,6 +5,7 @@ import (
"github.com/beego/beego/v2/core/logs" "github.com/beego/beego/v2/core/logs"
beego "github.com/beego/beego/v2/server/web" beego "github.com/beego/beego/v2/server/web"
"github.com/beego/beego/v2/server/web/filter/cors" "github.com/beego/beego/v2/server/web/filter/cors"
_ "github.com/beego/beego/v2/server/web/swagger" // 导入 Swagger
) )
func init() { func init() {
...@@ -21,5 +22,7 @@ func init() { ...@@ -21,5 +22,7 @@ func init() {
func main() { func main() {
//cronjob.Start() //cronjob.Start()
//beego.BConfig.WebConfig.AutoRender = false
//beego.BConfig.WebConfig.EnableDocs = true // 启用路由调试
beego.Run() beego.Run()
} }
package models
import "time"
//type AppTemplate struct {
// Id interface{} `json:"id" bson:"_id,omitempty"`
// Logo string `json:"logo,omitempty" bson:"logo"`
// Name string `json:"name,omitempty" bson:"name"`
// Desc string `json:"desc,omitempty" bson:"desc"`
// Brand string `json:"brand,omitempty" bson:"brand"`
// CreatedTime time.Time `json:"created_time" bson:"created_time"`
// UpdatedTime time.Time `json:"updated_time" bson:"updated_time"`
// Deleted int `json:"deleted" bson:"deleted"`
//}
type App struct {
Id interface{} `json:"id" bson:"_id,omitempty"`
Logo string `json:"logo,omitempty" bson:"logo"`
Name string `json:"name,omitempty" bson:"name"`
Desc string `json:"desc,omitempty" bson:"desc"`
TemplateId interface{} `json:"template_id" bson:"template_id"`
UserId string `json:"user_id,omitempty" bson:"user_id"`
CreatedTime time.Time `json:"created_time" bson:"created_time"`
UpdatedTime time.Time `json:"updated_time" bson:"updated_time"`
Deleted int `json:"deleted" bson:"deleted"`
}
package models package models
import "time"
//type Position int //type Position int
// //
//const ( //const (
...@@ -19,14 +21,101 @@ type Position struct { ...@@ -19,14 +21,101 @@ type Position struct {
Y int `json:"y,omitempty" bson:"y"` Y int `json:"y,omitempty" bson:"y"`
} }
//type Params struct {
// Ai struct {
// StableDiffusion3 []struct {
// Field string `json:"field"`
// Name string `json:"name"`
// Type interface{} `json:"type"`
// } `json:"stable-diffusion-3"`
// } `json:"ai"`
// Ui []struct {
// Field string `json:"field"`
// Name string `json:"name"`
// Type interface{} `json:"type"`
// Enum []string `json:"enum,omitempty"`
// Properties []struct {
// Field string `json:"field"`
// Name string `json:"name"`
// Type interface{} `json:"type"`
// Format string `json:"format,omitempty"`
// IsShow bool `json:"is_show,omitempty"`
// } `json:"properties,omitempty"`
// } `json:"ui"`
//}
//type Params struct {
// Ui []struct {
// Field string `json:"field"`
// Name string `json:"name"`
// Type interface{} `json:"type"`
// Format string `json:"format,omitempty"`
// IsShow bool `json:"is_show,omitempty"`
// } `json:"ui"`
//}
type Template struct { type Template struct {
Id interface{} `json:"id" bson:"_id,omitempty"` Id interface{} `json:"id" bson:"_id,omitempty"`
Logo string `json:"logo,omitempty" bson:"logo"` // 海报图片上展示的logo,非 应用logo Name string `json:"name,omitempty" bson:"name"`
Image string `json:"image,omitempty" bson:"image"` //模版展示的图片 Desc string `json:"desc,omitempty" bson:"desc"`
Brand string `json:"brand,omitempty" bson:"brand"` // 海报图片上展示的文字,非 应用标题 Params interface{} `json:"params,omitempty" bson:"params"`
Watermark string `json:"watermark,omitempty" bson:"watermark"` //商家 的 水印 UserId string `json:"user_id,omitempty" bson:"user_id"`
WatermarkPosition Position `json:"watermark_position,omitempty" bson:"watermark_position"` //商家 的 水印位置 CreatedTime time.Time `json:"created_time" bson:"created_time"`
Platform string `json:"platform,omitempty" bson:"platform"` //平台 的 水印 UpdatedTime time.Time `json:"updated_time" bson:"updated_time"`
PlatformPosition Position `json:"platform_position,omitempty" bson:"platform_position"` Deleted int `json:"deleted" bson:"deleted"`
Prompt string `json:"prompt" bson:"prompt"` }
type TemplateData struct {
Id interface{} `json:"id" bson:"_id,omitempty"`
TemplateId interface{} `json:"template_id" bson:"template_id"`
TemplateParams interface{} `json:"template_params" bson:"template_params"`
ParamsValue interface{} `json:"params_value" bson:"params_value"`
UserId string `json:"user_id,omitempty" bson:"user_id"`
CreatedTime time.Time `json:"created_time" bson:"created_time"`
UpdatedTime time.Time `json:"updated_time" bson:"updated_time"`
Deleted int `json:"deleted" bson:"deleted"`
} }
//type TemplateData struct {
// Id interface{} `json:"id" bson:"_id,omitempty"`
// TemplateId interface{} `json:"template_id" bson:"template_id"`
// Logo string `json:"logo,omitempty" bson:"logo"` // 海报图片上展示的logo,非 应用logo
// Image string `json:"image,omitempty" bson:"image"` //模版展示的图片
// ProjectName string `json:"project_name,omitempty" bson:"project_name"` // 海报图片上展示的文字,非 应用标题
// Place string `json:"place,omitempty" bson:"place"` // 地点名称
// Watermark string `json:"watermark,omitempty" bson:"watermark"` //商家 的 水印
// WatermarkPosition Position `json:"watermark_position,omitempty" bson:"watermark_position"` //商家 的 水印位置
// Platform string `json:"platform,omitempty" bson:"platform"` //平台 的 水印
// PlatformPosition Position `json:"platform_position,omitempty" bson:"platform_position"`
// Prompt string `json:"prompt,omitempty" bson:"prompt"`
// Audio string `json:"audio,omitempty" bson:"audio"`
// Type int `json:"type,omitempty" bson:"type"` // 1 poster,2 speaker,3 meme
// CreatedTime time.Time `json:"created_time" bson:"created_time"`
// UpdatedTime time.Time `json:"updated_time" bson:"updated_time"`
// Deleted int `json:"deleted" bson:"deleted"`
//}
//type Template struct {
// Id interface{} `json:"id" bson:"_id,omitempty"`
// Image string `json:"image,omitempty" bson:"image"` //模版展示的图片
// Watermark string `json:"watermark,omitempty" bson:"watermark"` //商家 的 水印
// WatermarkPosition Position `json:"watermark_position,omitempty" bson:"watermark_position"` //商家 的 水印位置
// Platform string `json:"platform,omitempty" bson:"platform"` //平台 的 水印
// PlatformPosition Position `json:"platform_position,omitempty" bson:"platform_position"`
// Prompt string `json:"prompt,omitempty" bson:"prompt"`
// CreatedTime time.Time `json:"created_time" bson:"created_time"`
// UpdatedTime time.Time `json:"updated_time" bson:"updated_time"`
// Deleted int `json:"deleted" bson:"deleted"`
//}
//
//type PosterTemplate struct {
// Template
// Audio string `json:"audio,omitempty" bson:"audio"`
//}
//
//type SpeakerTemplate struct {
// Template
// ProjectName string `json:"project_name,omitempty" bson:"project_name"` // 海报图片上展示的文字,非 应用标题
// Logo string `json:"logo,omitempty" bson:"logo"` // 海报图片上展示的logo,非 应用logo
// Place string `json:"place,omitempty" bson:"place"` // 地点名称
//}
package models
...@@ -3,17 +3,41 @@ package routers ...@@ -3,17 +3,41 @@ package routers
import ( import (
"aon_app_server/controllers" "aon_app_server/controllers"
beego "github.com/beego/beego/v2/server/web" beego "github.com/beego/beego/v2/server/web"
_ "github.com/beego/beego/v2/server/web/swagger" // 导入 Swagger
) )
func init() { func init() {
beego.Router("/", &controllers.MainController{}) beego.Router("/", &controllers.MainController{})
beego.AutoPrefix("app/api/v1", &controllers.TaskController{}) beego.AutoPrefix("app/api/v1", &controllers.TaskController{})
beego.AutoPrefix("app/api/v1", &controllers.LogController{}) beego.AutoPrefix("app/api/v1", &controllers.LogController{})
beego.AutoPrefix("app/api/v1", &controllers.AppController{})
beego.AutoPrefix("app/api/v1", &controllers.TemplateController{})
//ns := beego.NewNamespace("app", //ns := beego.NewNamespace("/app",
// beego.NSNamespace("api", // beego.NSNamespace("/api",
// beego.NSNamespace("v1", // beego.NSNamespace("/v1",
// beego.NSNamespace("task", // beego.NSNamespace("/task",
// beego.NSInclude(&controllers.TaskController{}))))) // beego.NSInclude(
// &controllers.TaskController{},
// ),
// ),
// beego.NSNamespace("/log",
// beego.NSInclude(
// &controllers.LogController{},
// ),
// ),
// beego.NSNamespace("/app",
// beego.NSInclude(
// &controllers.AppController{},
// ),
// ),
// beego.NSNamespace("/template",
// beego.NSInclude(
// &controllers.TemplateController{},
// ),
// ),
// ),
// ),
//)
//beego.AddNamespace(ns) //beego.AddNamespace(ns)
} }
<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Swagger UI</title>
<link rel="stylesheet" type="text/css" href="./swagger-ui.css" />
<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
<style>
html
{
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after
{
box-sizing: inherit;
}
body
{
margin:0;
background: #fafafa;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="./swagger-ui-bundle.js" charset="UTF-8"> </script>
<script src="./swagger-ui-standalone-preset.js" charset="UTF-8"> </script>
<script>
window.onload = function() {
// Begin Swagger UI call region
const ui = SwaggerUIBundle({
url: "https://petstore.swagger.io/v2/swagger.json",
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
});
// End Swagger UI call region
window.ui = ui;
};
</script>
</body>
</html>
<!doctype html>
<html lang="en-US">
<head>
<title>Swagger UI: OAuth2 Redirect</title>
</head>
<body>
<script>
'use strict';
function run () {
var oauth2 = window.opener.swaggerUIRedirectOauth2;
var sentState = oauth2.state;
var redirectUrl = oauth2.redirectUrl;
var isValid, qp, arr;
if (/code|token|error/.test(window.location.hash)) {
qp = window.location.hash.substring(1);
} else {
qp = location.search.substring(1);
}
arr = qp.split("&");
arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';});
qp = qp ? JSON.parse('{' + arr.join() + '}',
function (key, value) {
return key === "" ? value : decodeURIComponent(value);
}
) : {};
isValid = qp.state === sentState;
if ((
oauth2.auth.schema.get("flow") === "accessCode" ||
oauth2.auth.schema.get("flow") === "authorizationCode" ||
oauth2.auth.schema.get("flow") === "authorization_code"
) && !oauth2.auth.code) {
if (!isValid) {
oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "warning",
message: "Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"
});
}
if (qp.code) {
delete oauth2.state;
oauth2.auth.code = qp.code;
oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});
} else {
let oauthErrorMsg;
if (qp.error) {
oauthErrorMsg = "["+qp.error+"]: " +
(qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +
(qp.error_uri ? "More info: "+qp.error_uri : "");
}
oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "error",
message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server"
});
}
} else {
oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});
}
window.close();
}
if (document.readyState !== 'loading') {
run();
} else {
document.addEventListener('DOMContentLoaded', function () {
run();
});
}
</script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"swagger": "2.0",
"info": {
"contact": {}
},
"basePath": "/app",
"paths": null
}
\ No newline at end of file
swagger: "2.0"
info: {}
basePath: /app
paths: {}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment