shared/domain/image/
user.rs1use crate::api::endpoints::PathPart;
4use macros::make_path_parts;
5use serde::{Deserialize, Serialize};
6
7use super::{ImageId, ImageSize};
8
9make_path_parts!(UserImageGetPath => "/v1/user/me/image/{}" => ImageId);
10
11make_path_parts!(UserImageCreatePath => "/v1/user/me/image");
12
13#[derive(Serialize, Deserialize, Debug)]
15pub struct UserImageCreateRequest {
16 pub size: ImageSize,
18}
19
20make_path_parts!(UserImageListPath => "/v1/user/me/image");
21
22#[derive(Serialize, Deserialize, Debug)]
26pub struct UserImageListQuery {
27 #[serde(skip_serializing_if = "Option::is_none")]
30 pub kind: Option<ImageSize>,
31}
32
33#[derive(Serialize, Deserialize, Debug)]
35pub struct UserImageListResponse {
36 pub images: Vec<UserImageResponse>,
38}
39
40#[derive(Serialize, Deserialize, Debug)]
42pub struct UserImageResponse {
43 pub metadata: UserImage,
45}
46
47#[derive(Serialize, Deserialize, Debug)]
49pub struct UserImage {
50 pub id: ImageId,
52 pub size: ImageSize,
54 }
56
57make_path_parts!(UserImageUploadPath => "/v1/user/me/image/{}/raw" => ImageId);
58
59#[derive(Serialize, Deserialize, Debug)]
61pub struct UserImageUploadRequest {
62 pub file_size: usize,
64}
65
66#[derive(Serialize, Deserialize, Debug)]
68pub struct UserImageUploadResponse {
69 pub session_uri: String,
71}
72
73make_path_parts!(UserImageDeletePath => "/v1/user/me/image/{}" => ImageId);