feat: it works

This commit is contained in:
Anatoly Antonov 2025-03-26 17:14:00 +03:00
parent 6302dd62d6
commit 778d5ef146
25 changed files with 638 additions and 106 deletions

View file

@ -0,0 +1,89 @@
package handler
import (
"context"
"fmt"
"net/http"
"git.intra.yksa.space/gsn/gsn-proxy/internal/pkg/errcodes"
api "git.intra.yksa.space/gsn/gsn-proxy/pkg/rest"
)
var (
_ api.Handler = (*Handler)(nil)
)
type Handler struct {
svc Service
}
func New(svc Service) *Handler {
return &Handler{
svc: svc,
}
}
func (h *Handler) GetSatellites(ctx context.Context) (*api.GetSatellitesOK, error) {
satellites, err := h.svc.GetSatellites(ctx)
if err != nil {
return nil, err
}
ret := make([]api.GetSatellitesOKSatellitesItem, 0, len(satellites))
for _, val := range satellites {
ret = append(ret, api.GetSatellitesOKSatellitesItem{
ID: val.ID,
DisplayName: val.DisplayName,
Status: api.GetSatellitesOKSatellitesItemStatus(val.Status),
})
}
return &api.GetSatellitesOK{
Satellites: ret,
}, nil
}
func (h *Handler) GetStations(ctx context.Context) (*api.GetStationsOK, error) {
return nil, nil
}
func (h *Handler) GetSubscriptions(ctx context.Context) (*api.GetSubscriptionsOK, error) {
return nil, nil
}
func (h *Handler) SubscribeSatellite(ctx context.Context, req *api.SubscribeSatelliteReq) (*api.SubscribeSatelliteOK, error) {
return nil, nil
}
func (h *Handler) SubscribeStation(ctx context.Context, req *api.SubscribeStationReq) (*api.SubscribeStationOK, error) {
return nil, nil
}
func (h *Handler) Unsubscribe(ctx context.Context, params api.UnsubscribeParams) error {
return nil
}
func (h *Handler) NewError(ctx context.Context, err error) *api.ErrorStatusCode {
if errcode, ok := err.(*errcodes.ErrorCode); ok {
resp := api.Error{
Message: errcode.Message,
}
if errcode.Details != "" {
resp.Details = api.NewOptString(errcode.Details)
}
return &api.ErrorStatusCode{
StatusCode: errcode.StatusCode,
Response: resp,
}
}
return &api.ErrorStatusCode{
StatusCode: http.StatusInternalServerError,
Response: api.Error{
Message: fmt.Sprintf("undefined internal error"),
Details: api.NewOptString(err.Error()),
},
}
}