docs(devices): Work Order 3 batch 1 — 6 missing device endpoints + gate entries
New frontmatter'd docs with handler-compatible examples: - devices/get_device.md (DeviceInfo shape) - devices/regenerate_device_token.md (token + sync_urls) - devices/get_device_mappings.md (wrapper + DeviceMappingSummary) - devices/update_device_mapping.md (UpdateDeviceMappingRequest) - devices/download_sidecar_config.md (sidecar config JSON file) - devices/link_book.md (LinkBookRequest; one UNVERIFIED marker on required-tag) Schema registry: 6 new entries; DeviceMappingSummary hoisted to package scope. Gate passes (the UNVERIFIED marker is logged, not a failure). Excludes /api/devices-page (htmx page route, per ground rules).
This commit is contained in:
1 parent
50282895f5
commit
c4b62af213
8 files changed
+349
-11
No files matched your search
@@ -75,6 +75,17 @@ type UpdateDeviceMappingRequest struct {
|
||||
SyncDirection string `json:"sync_direction" validate:"required,oneof=bidirectional book_to_device device_to_book none"`
|
||||
}
|
||||
|
||||
// DeviceMappingSummary is one entry in GET /api/devices/:id/collections. Hoisted
|
||||
// to package scope so the docs schema registry can pin the response shape.
|
||||
type DeviceMappingSummary struct {
|
||||
ID uuid.UUID `json:"id"`
|
||||
CollectionID uuid.UUID `json:"collection_id"`
|
||||
CollectionName string `json:"collection_name"`
|
||||
DeviceShelfName string `json:"device_shelf_name"`
|
||||
SyncDirection string `json:"sync_direction"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
|
||||
// CollectionSummary is one entry in GET /api/collections. Package-level so
|
||||
// the docs schema registry (internal/docs) can pin the response shape.
|
||||
type CollectionSummary struct {
|
||||
@@ -653,18 +664,9 @@ func (h *CollectionHandler) GetDeviceMappings(c *echo.Context) error {
|
||||
return c.JSON(http.StatusInternalServerError, map[string]string{"error": err.Error()})
|
||||
}
|
||||
|
||||
type MappingResponse struct {
|
||||
ID uuid.UUID `json:"id"`
|
||||
CollectionID uuid.UUID `json:"collection_id"`
|
||||
CollectionName string `json:"collection_name"`
|
||||
DeviceShelfName string `json:"device_shelf_name"`
|
||||
SyncDirection string `json:"sync_direction"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
|
||||
response := make([]MappingResponse, 0, len(mappings))
|
||||
response := make([]DeviceMappingSummary, 0, len(mappings))
|
||||
for _, m := range mappings {
|
||||
response = append(response, MappingResponse{
|
||||
response = append(response, DeviceMappingSummary{
|
||||
ID: m.ID.Bytes,
|
||||
CollectionID: m.CollectionID.Bytes,
|
||||
CollectionName: m.CollectionName,
|
||||
|
||||
Reference in new issue
Block a user