|
@@ -3,7 +3,6 @@ package engine_http
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
_ "embed"
|
|
_ "embed"
|
|
|
- "fmt"
|
|
|
|
|
"time"
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/gofiber/fiber/v2"
|
|
@@ -11,39 +10,26 @@ import (
|
|
|
"gitp78su.ipnodns.ru/svi/kern/v3/kc/log_buf"
|
|
"gitp78su.ipnodns.ru/svi/kern/v3/kc/log_buf"
|
|
|
"gitp78su.ipnodns.ru/svi/kern/v3/krn/ktypes"
|
|
"gitp78su.ipnodns.ru/svi/kern/v3/krn/ktypes"
|
|
|
|
|
|
|
|
- "gitp78su.ipnodns.ru/svi/goarch/lev0/alias"
|
|
|
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev0/cons"
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev0/cons"
|
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev0/types"
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev0/types"
|
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev1/arch_doc"
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev1/arch_doc"
|
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev1/view_coord"
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev1/view_coord"
|
|
|
- "gitp78su.ipnodns.ru/svi/goarch/lev1/view_size"
|
|
|
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev2/engine_http/http_api"
|
|
"gitp78su.ipnodns.ru/svi/goarch/lev2/engine_http/http_api"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
//go:embed index.html
|
|
//go:embed index.html
|
|
|
var indexHtml []byte
|
|
var indexHtml []byte
|
|
|
|
|
|
|
|
-// CanvasSize -- размер хоста
|
|
|
|
|
-type CanvasSize struct {
|
|
|
|
|
- SizeX_ int `form:"w"`
|
|
|
|
|
- SizeY_ int `form:"h"`
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-func (sf *CanvasSize) String() string {
|
|
|
|
|
- return fmt.Sprintf("w:%v; h:%v", sf.SizeX_, sf.SizeY_)
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
// EngineHttp -- http-движок для архитектуры
|
|
// EngineHttp -- http-движок для архитектуры
|
|
|
type EngineHttp struct {
|
|
type EngineHttp struct {
|
|
|
// fibApp *fiber.App
|
|
// fibApp *fiber.App
|
|
|
- kCtx ktypes.IKernelCtx
|
|
|
|
|
- log ktypes.ILogBuf
|
|
|
|
|
- diaMode string // Режим диаграммы
|
|
|
|
|
- canvSize CanvasSize // Размер холста
|
|
|
|
|
- size types.IViewSize // Размер холста в его координатах
|
|
|
|
|
- pos types.IViewCoord // Координаты холста
|
|
|
|
|
- archDoc *arch_doc.ArchDoc // Документ архитектуры
|
|
|
|
|
- httpApi *http_api.HttpApi
|
|
|
|
|
|
|
+ kCtx ktypes.IKernelCtx
|
|
|
|
|
+ log ktypes.ILogBuf
|
|
|
|
|
+ diaMode string // Режим диаграммы
|
|
|
|
|
+
|
|
|
|
|
+ pos types.IViewCoord // Координаты холста
|
|
|
|
|
+ archDoc *arch_doc.ArchDoc // Документ архитектуры
|
|
|
|
|
+ httpApi *http_api.HttpApi
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// NewEngineHttp -- возвращает новый движок HTTP
|
|
// NewEngineHttp -- возвращает новый движок HTTP
|
|
@@ -55,7 +41,6 @@ func NewEngineHttp() *EngineHttp {
|
|
|
kCtx: kern.GetKernelCtx(),
|
|
kCtx: kern.GetKernelCtx(),
|
|
|
log: log,
|
|
log: log,
|
|
|
diaMode: cons.ModeUseCase,
|
|
diaMode: cons.ModeUseCase,
|
|
|
- size: view_size.NewViewSize(800, 600),
|
|
|
|
|
pos: view_coord.NewViewCoord(0, 0),
|
|
pos: view_coord.NewViewCoord(0, 0),
|
|
|
archDoc: arch_doc.GetArchDoc(),
|
|
archDoc: arch_doc.GetArchDoc(),
|
|
|
httpApi: http_api.NewHttpApi(),
|
|
httpApi: http_api.NewHttpApi(),
|
|
@@ -69,30 +54,9 @@ func NewEngineHttp() *EngineHttp {
|
|
|
})
|
|
})
|
|
|
fibApp.Get("/", sf.getIndex)
|
|
fibApp.Get("/", sf.getIndex)
|
|
|
fibApp.Get("/api/use_case", sf.postSetModeUseCase)
|
|
fibApp.Get("/api/use_case", sf.postSetModeUseCase)
|
|
|
- fibApp.Post("/api/canvas/size/set", sf.postSetCanvasSize)
|
|
|
|
|
return sf
|
|
return sf
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// Устанавливает размер холста
|
|
|
|
|
-func (sf *EngineHttp) postSetCanvasSize(ctx *fiber.Ctx) error {
|
|
|
|
|
- err := ctx.BodyParser(&sf.canvSize)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- sf.log.Err("postSetCanvasSize(): on body parser, err=\n\t%v", err)
|
|
|
|
|
- }
|
|
|
|
|
- var (
|
|
|
|
|
- w alias.SizeX
|
|
|
|
|
- h alias.SizeY
|
|
|
|
|
- )
|
|
|
|
|
- if sf.canvSize.SizeX_ > 0 {
|
|
|
|
|
- w = alias.SizeX(sf.canvSize.SizeX_ - 10)
|
|
|
|
|
- }
|
|
|
|
|
- if sf.canvSize.SizeY_ > 0 {
|
|
|
|
|
- h = alias.SizeY(sf.canvSize.SizeY_ - 10)
|
|
|
|
|
- }
|
|
|
|
|
- sf.size = view_size.NewViewSize(w, h)
|
|
|
|
|
- return ctx.SendString(sf.size.String())
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
// Возвращает картинку архитектуры
|
|
// Возвращает картинку архитектуры
|
|
|
func (sf *EngineHttp) postSetModeUseCase(ctx *fiber.Ctx) error {
|
|
func (sf *EngineHttp) postSetModeUseCase(ctx *fiber.Ctx) error {
|
|
|
sf.diaMode = cons.ModeUseCase
|
|
sf.diaMode = cons.ModeUseCase
|