V3 version with backward comp

This commit is contained in:
m
2026-07-28 18:12:56 +02:00
parent 7713835739
commit bd6e7c38f9
48 changed files with 3685 additions and 1344 deletions
+65
View File
@@ -0,0 +1,65 @@
package handler
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/vaultdrop/backend/internal/auth"
"github.com/vaultdrop/backend/internal/service"
"github.com/vaultdrop/backend/pkg/api"
)
type DeviceHandler struct {
placement *service.PlacementService
}
func (h *DeviceHandler) List(c *gin.Context) {
userID := c.GetString(auth.UserIDKey)
locations, err := h.placement.ListUserLocations(userID)
if err != nil {
api.Error(c, http.StatusInternalServerError, "DB_ERROR", "Failed to list devices")
return
}
type deviceResponse struct {
ID string `json:"id"`
DeviceName string `json:"device_name"`
Role string `json:"role"`
}
resp := make([]deviceResponse, len(locations))
for i, l := range locations {
resp[i] = deviceResponse{
ID: l.ID.String(),
DeviceName: l.DeviceName,
Role: l.Role,
}
}
api.Success(c, resp)
}
func (h *DeviceHandler) Register(c *gin.Context) {
userID := c.GetString(auth.UserIDKey)
var body struct {
DeviceName string `json:"device_name" binding:"required"`
}
if err := c.ShouldBindJSON(&body); err != nil {
api.Error(c, http.StatusBadRequest, "INVALID_BODY", "device_name is required")
return
}
loc, err := h.placement.CreateDeviceLocation(userID, body.DeviceName)
if err != nil {
api.Error(c, http.StatusInternalServerError, "DB_ERROR", "Failed to register device")
return
}
api.Created(c, gin.H{
"id": loc.ID.String(),
"device_name": loc.DeviceName,
"role": loc.Role,
})
}