mirror of
https://git.rwth-aachen.de/acs/public/villas/web-backend-go/
synced 2025-03-30 00:00:12 +01:00

- clean up testdata, serializers and responses - add validators for dashboards - revise documentation of dashboard endpoints for swaggo - revise endpoint implementations
115 lines
2.5 KiB
Go
115 lines
2.5 KiB
Go
package common
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// Widget/s Serializers
|
|
|
|
type WidgetsSerializer struct {
|
|
Ctx *gin.Context
|
|
Widgets []Widget
|
|
}
|
|
|
|
func (self *WidgetsSerializer) Response() []WidgetResponse {
|
|
response := []WidgetResponse{}
|
|
for _, widget := range self.Widgets {
|
|
serializer := WidgetSerializer{self.Ctx, widget}
|
|
response = append(response, serializer.Response())
|
|
}
|
|
return response
|
|
}
|
|
|
|
type WidgetSerializer struct {
|
|
Ctx *gin.Context
|
|
Widget
|
|
}
|
|
|
|
func (self *WidgetSerializer) Response() WidgetResponse {
|
|
|
|
response := WidgetResponse{
|
|
ID: self.ID,
|
|
Name: self.Name,
|
|
Type: self.Type,
|
|
Width: self.Width,
|
|
Height: self.Height,
|
|
MinWidth: self.MinWidth,
|
|
MinHeight: self.MinHeight,
|
|
X: self.X,
|
|
Y: self.Y,
|
|
Z: self.Z,
|
|
DashboardID: self.DashboardID,
|
|
IsLocked: self.IsLocked,
|
|
CustomProperties: self.CustomProperties,
|
|
}
|
|
return response
|
|
}
|
|
|
|
// File/s Serializers
|
|
|
|
type FilesSerializerNoAssoc struct {
|
|
Ctx *gin.Context
|
|
Files []File
|
|
}
|
|
|
|
func (self *FilesSerializerNoAssoc) Response() []FileResponse {
|
|
response := []FileResponse{}
|
|
for _, files := range self.Files {
|
|
serializer := FileSerializerNoAssoc{self.Ctx, files}
|
|
response = append(response, serializer.Response())
|
|
}
|
|
return response
|
|
}
|
|
|
|
type FileSerializerNoAssoc struct {
|
|
Ctx *gin.Context
|
|
File
|
|
}
|
|
|
|
func (self *FileSerializerNoAssoc) Response() FileResponse {
|
|
response := FileResponse{
|
|
Name: self.Name,
|
|
ID: self.ID,
|
|
//Path: self.Path,
|
|
Type: self.Type,
|
|
Size: self.Size,
|
|
ImageHeight: self.ImageHeight,
|
|
ImageWidth: self.ImageWidth,
|
|
Date: self.Date,
|
|
WidgetID: self.WidgetID,
|
|
SimulationModelID: self.SimulationModelID,
|
|
}
|
|
return response
|
|
}
|
|
|
|
// Signal/s Serializers
|
|
type SignalsSerializer struct {
|
|
Ctx *gin.Context
|
|
Signals []Signal
|
|
}
|
|
|
|
func (self *SignalsSerializer) Response() []SignalResponse {
|
|
response := []SignalResponse{}
|
|
for _, s := range self.Signals {
|
|
serializer := SignalSerializer{self.Ctx, s}
|
|
response = append(response, serializer.Response())
|
|
}
|
|
return response
|
|
|
|
}
|
|
|
|
type SignalSerializer struct {
|
|
Ctx *gin.Context
|
|
Signal
|
|
}
|
|
|
|
func (self *SignalSerializer) Response() SignalResponse {
|
|
response := SignalResponse{
|
|
Name: self.Name,
|
|
Unit: self.Unit,
|
|
Direction: self.Direction,
|
|
SimulationModelID: self.SimulationModelID,
|
|
Index: self.Index,
|
|
}
|
|
return response
|
|
}
|