Commit 812d12ae authored by brent's avatar brent

add app

parent 8b8c8c98
No preview for this file type
......@@ -11,6 +11,7 @@ whoisApi = "replicate"
apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG"
taskUrl = "https://api.aonet.ai/api/v1"
imageUrl = "https://tmp-file.aigic.ai/api/v1/upload/persistence"
imageTransferUrl = "https://tmp-file.aigic.ai/api/v1/down/put"
replicateToken = "r8_9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6"
replicateTimeout = 10
......@@ -19,6 +20,7 @@ whoisApi = "aonet"
apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG"
taskUrl = "https://api.aonet.ai/api/v1"
imageUrl = "https://tmp-file.aigic.ai/api/v1/upload/persistence"
imageTransferUrl = "https://tmp-file.aigic.ai/api/v1/down/put"
replicateToken = "r8_9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6"
replicateTimeout = 10
......@@ -27,6 +29,7 @@ whoisApi = "aonet"
apikey = "Rbhpcp0FKNrYNA1nZkrwrIbD0YSSRlVG"
taskUrl = "https://api.aonet.ai/api/v1"
imageUrl = "https://tmp-file.aigic.ai/api/v1/upload/persistence"
imageTransferUrl = "https://tmp-file.aigic.ai/api/v1/down/put"
replicateToken = "r8_9OCCea50go2Qkh0f0jhu3DbNjyzuyt61VNVI6"
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 {
MainController
}
// Report @router /report/ [post]
func (server *LogController) Report() {
body := server.Ctx.Input.RequestBody
log := models.Log{}
......@@ -48,7 +47,6 @@ func (server *LogController) Report() {
server.respond(http.StatusOK, "")
}
// BatchReport @router /batch_report/ [post]
func (server *LogController) BatchReport() {
body := server.Ctx.Input.RequestBody
var data []models.Log
......
......@@ -33,7 +33,6 @@ func init() {
var execTasks = make(chan *models.Task, 100)
// Prediction @router /prediction/ [post]
func (server *TaskController) Prediction() {
body := server.Ctx.Input.RequestBody
task := models.Task{}
......@@ -50,6 +49,7 @@ func (server *TaskController) Prediction() {
async = true
}
task.CreatedTime = time.Now().UTC()
task.UpdatedTime = task.CreatedTime
id, err := mongo.Insert(&task)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
......@@ -107,6 +107,43 @@ func copyImages(images []string) []string {
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) {
host, _ := beego.AppConfig.String("taskUrl")
url := host + task.ApiPath
......@@ -439,7 +476,7 @@ func doGetReplicate(url string, task *models.Task, taskResponse *models.TaskResp
}
}
task.Status = 2
task.Output = output
task.Output = transferImages(output)
mongo.Update(task)
taskResponse.Output = task.Output
taskResponse.Task.IsSuccess = true
......@@ -526,7 +563,6 @@ func setError(task *models.Task, error string) {
}
}
// Result @router /result/:excute_id [get]
func (server *TaskController) Result() {
taskId := server.GetString("excute_id")
if taskId == "" {
......@@ -547,7 +583,6 @@ func (server *TaskController) Result() {
server.respond(http.StatusOK, "", task)
}
// List @router /list/ [post]
func (server *TaskController) List() {
body := server.Ctx.Input.RequestBody
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 (
)
require (
github.com/beego/swagger v4.6.2+incompatible // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.1.1 // indirect
github.com/golang/protobuf v1.4.2 // indirect
......
......@@ -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/go.mod h1:8zyHi1FnWO1mZLwTn62aKRIZF/aIKvkCBB2JYs+eqQI=
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/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=
......
{"/Users/brent/Documents/wubanWork/aon_app_server/controllers":1720592962344996898}
\ No newline at end of file
{"/Users/brent/Documents/wubanWork/aon_app_server/controllers":1721197034796038035}
\ No newline at end of file
......@@ -5,6 +5,7 @@ import (
"github.com/beego/beego/v2/core/logs"
beego "github.com/beego/beego/v2/server/web"
"github.com/beego/beego/v2/server/web/filter/cors"
_ "github.com/beego/beego/v2/server/web/swagger" // 导入 Swagger
)
func init() {
......@@ -21,5 +22,7 @@ func init() {
func main() {
//cronjob.Start()
//beego.BConfig.WebConfig.AutoRender = false
//beego.BConfig.WebConfig.EnableDocs = true // 启用路由调试
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
import "time"
//type Position int
//
//const (
......@@ -19,14 +21,101 @@ type Position struct {
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 {
Id interface{} `json:"id" bson:"_id,omitempty"`
Logo string `json:"logo,omitempty" bson:"logo"` // 海报图片上展示的logo,非 应用logo
Image string `json:"image,omitempty" bson:"image"` //模版展示的图片
Brand string `json:"brand,omitempty" bson:"brand"` // 海报图片上展示的文字,非 应用标题
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" bson:"prompt"`
Id interface{} `json:"id" bson:"_id,omitempty"`
Name string `json:"name,omitempty" bson:"name"`
Desc string `json:"desc,omitempty" bson:"desc"`
Params interface{} `json:"params,omitempty" bson:"params"`
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"`
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
import (
"aon_app_server/controllers"
beego "github.com/beego/beego/v2/server/web"
_ "github.com/beego/beego/v2/server/web/swagger" // 导入 Swagger
)
func init() {
beego.Router("/", &controllers.MainController{})
beego.AutoPrefix("app/api/v1", &controllers.TaskController{})
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",
// beego.NSNamespace("api",
// beego.NSNamespace("v1",
// beego.NSNamespace("task",
// beego.NSInclude(&controllers.TaskController{})))))
//ns := beego.NewNamespace("/app",
// beego.NSNamespace("/api",
// beego.NSNamespace("/v1",
// beego.NSNamespace("/task",
// 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)
}
<!-- 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 diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
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 diff is collapsed.
This diff is collapsed.
{
"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