feat(API): media field type
This commit is contained in:
1 parent
ad5faf3d19
commit
a2d596f4ca
63 files changed
+2567
-259
No files matched your search
@@ -42,6 +42,33 @@ type entryResponse struct {
|
||||
UpdatedBy uint32 `json:"updated_by"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
Media map[string]any `json:"media"`
|
||||
}
|
||||
|
||||
type mediaBody struct {
|
||||
ID uint32 `json:"id"`
|
||||
Filename string `json:"filename"`
|
||||
Width *int `json:"width"`
|
||||
Height *int `json:"height"`
|
||||
Size int64 `json:"size"`
|
||||
ThumbnailURL string `json:"thumbnail_url"`
|
||||
}
|
||||
|
||||
type missingMediaBody struct {
|
||||
ID uint32 `json:"id"`
|
||||
Missing bool `json:"missing"`
|
||||
}
|
||||
|
||||
func toMediaResponse(media map[string]useCases.EntryMedia) map[string]any {
|
||||
body := make(map[string]any, len(media))
|
||||
for key, item := range media {
|
||||
if item.Missing {
|
||||
body[key] = missingMediaBody{ID: item.ID, Missing: true}
|
||||
continue
|
||||
}
|
||||
body[key] = mediaBody{ID: item.ID, Filename: item.Filename, Width: item.Width, Height: item.Height, Size: item.Size, ThumbnailURL: item.ThumbnailURL}
|
||||
}
|
||||
return body
|
||||
}
|
||||
|
||||
func toResponse(typed useCases.TypedEntry) entryResponse {
|
||||
@@ -53,6 +80,7 @@ func toResponse(typed useCases.TypedEntry) entryResponse {
|
||||
UpdatedBy: typed.UpdatedBy,
|
||||
CreatedAt: typed.CreatedAt,
|
||||
UpdatedAt: typed.UpdatedAt,
|
||||
Media: toMediaResponse(typed.Media),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user