@mamindom/contracts 1.0.53 → 1.0.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,14 @@ export declare enum MediaStatus {
5
5
  MEDIA_STATUS_PENDING = 1,
6
6
  MEDIA_STATUS_READY = 2,
7
7
  MEDIA_STATUS_FAILED = 3,
8
+ MEDIA_STATUS_PROCESSING = 4,
9
+ UNRECOGNIZED = -1
10
+ }
11
+ export declare enum MediaType {
12
+ MEDIA_TYPE_UNSPECIFIED = 0,
13
+ MEDIA_TYPE_IMAGE = 1,
14
+ MEDIA_TYPE_VIDEO = 2,
15
+ MEDIA_TYPE_DOCUMENT = 3,
8
16
  UNRECOGNIZED = -1
9
17
  }
10
18
  export interface GetPresignedUrlRequest {
@@ -27,6 +35,50 @@ export interface GetMultiplePresignedUrlsResponse {
27
35
  export interface ConfirmUploadRequest {
28
36
  fileId: string;
29
37
  }
38
+ export interface InitMultipartUploadRequest {
39
+ fileName: string;
40
+ mimeType: string;
41
+ fileSize: number;
42
+ createdById: string;
43
+ totalParts: number;
44
+ }
45
+ export interface InitMultipartUploadResponse {
46
+ fileId: string;
47
+ uploadId: string;
48
+ s3Key: string;
49
+ }
50
+ export interface GetMultipartPresignedUrlsRequest {
51
+ fileId: string;
52
+ uploadId: string;
53
+ s3Key: string;
54
+ partStart: number;
55
+ partEnd: number;
56
+ }
57
+ export interface PresignedPartUrl {
58
+ partNumber: number;
59
+ uploadUrl: string;
60
+ }
61
+ export interface GetMultipartPresignedUrlsResponse {
62
+ parts: PresignedPartUrl[];
63
+ }
64
+ export interface CompletedPart {
65
+ partNumber: number;
66
+ etag: string;
67
+ }
68
+ export interface CompleteMultipartUploadRequest {
69
+ fileId: string;
70
+ uploadId: string;
71
+ s3Key: string;
72
+ parts: CompletedPart[];
73
+ }
74
+ export interface AbortMultipartUploadRequest {
75
+ fileId: string;
76
+ uploadId: string;
77
+ s3Key: string;
78
+ }
79
+ export interface AbortMultipartUploadResponse {
80
+ success: boolean;
81
+ }
30
82
  export interface DeleteMediaRequest {
31
83
  fileId: string;
32
84
  }
@@ -44,12 +96,19 @@ export interface MediaResponse {
44
96
  publicUrl: string;
45
97
  createdById: string;
46
98
  status: MediaStatus;
99
+ type: MediaType;
100
+ thumbnailUrl?: string | undefined;
101
+ duration?: number | undefined;
47
102
  }
48
103
  export declare const MEDIA_V1_PACKAGE_NAME = "media.v1";
49
104
  export interface MediaServiceClient {
50
105
  getPresignedUploadUrl(request: GetPresignedUrlRequest): Observable<GetPresignedUrlResponse>;
51
106
  getMultiplePresignedUploadUrls(request: GetMultiplePresignedUrlsRequest): Observable<GetMultiplePresignedUrlsResponse>;
52
107
  confirmUpload(request: ConfirmUploadRequest): Observable<MediaResponse>;
108
+ initMultipartUpload(request: InitMultipartUploadRequest): Observable<InitMultipartUploadResponse>;
109
+ getMultipartPresignedUrls(request: GetMultipartPresignedUrlsRequest): Observable<GetMultipartPresignedUrlsResponse>;
110
+ completeMultipartUpload(request: CompleteMultipartUploadRequest): Observable<MediaResponse>;
111
+ abortMultipartUpload(request: AbortMultipartUploadRequest): Observable<AbortMultipartUploadResponse>;
53
112
  deleteMedia(request: DeleteMediaRequest): Observable<DeleteMediaResponse>;
54
113
  getMedia(request: GetMediaRequest): Observable<MediaResponse>;
55
114
  }
@@ -57,6 +116,10 @@ export interface MediaServiceController {
57
116
  getPresignedUploadUrl(request: GetPresignedUrlRequest): Promise<GetPresignedUrlResponse> | Observable<GetPresignedUrlResponse> | GetPresignedUrlResponse;
58
117
  getMultiplePresignedUploadUrls(request: GetMultiplePresignedUrlsRequest): Promise<GetMultiplePresignedUrlsResponse> | Observable<GetMultiplePresignedUrlsResponse> | GetMultiplePresignedUrlsResponse;
59
118
  confirmUpload(request: ConfirmUploadRequest): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
119
+ initMultipartUpload(request: InitMultipartUploadRequest): Promise<InitMultipartUploadResponse> | Observable<InitMultipartUploadResponse> | InitMultipartUploadResponse;
120
+ getMultipartPresignedUrls(request: GetMultipartPresignedUrlsRequest): Promise<GetMultipartPresignedUrlsResponse> | Observable<GetMultipartPresignedUrlsResponse> | GetMultipartPresignedUrlsResponse;
121
+ completeMultipartUpload(request: CompleteMultipartUploadRequest): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
122
+ abortMultipartUpload(request: AbortMultipartUploadRequest): Promise<AbortMultipartUploadResponse> | Observable<AbortMultipartUploadResponse> | AbortMultipartUploadResponse;
60
123
  deleteMedia(request: DeleteMediaRequest): Promise<DeleteMediaResponse> | Observable<DeleteMediaResponse> | DeleteMediaResponse;
61
124
  getMedia(request: GetMediaRequest): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
62
125
  }
package/dist/gen/media.js CHANGED
@@ -5,7 +5,7 @@
5
5
  // protoc v3.21.12
6
6
  // source: media.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.MEDIA_SERVICE_NAME = exports.MEDIA_V1_PACKAGE_NAME = exports.MediaStatus = exports.protobufPackage = void 0;
8
+ exports.MEDIA_SERVICE_NAME = exports.MEDIA_V1_PACKAGE_NAME = exports.MediaType = exports.MediaStatus = exports.protobufPackage = void 0;
9
9
  exports.MediaServiceControllerMethods = MediaServiceControllerMethods;
10
10
  /* eslint-disable */
11
11
  const microservices_1 = require("@nestjs/microservices");
@@ -16,8 +16,17 @@ var MediaStatus;
16
16
  MediaStatus[MediaStatus["MEDIA_STATUS_PENDING"] = 1] = "MEDIA_STATUS_PENDING";
17
17
  MediaStatus[MediaStatus["MEDIA_STATUS_READY"] = 2] = "MEDIA_STATUS_READY";
18
18
  MediaStatus[MediaStatus["MEDIA_STATUS_FAILED"] = 3] = "MEDIA_STATUS_FAILED";
19
+ MediaStatus[MediaStatus["MEDIA_STATUS_PROCESSING"] = 4] = "MEDIA_STATUS_PROCESSING";
19
20
  MediaStatus[MediaStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
20
21
  })(MediaStatus || (exports.MediaStatus = MediaStatus = {}));
22
+ var MediaType;
23
+ (function (MediaType) {
24
+ MediaType[MediaType["MEDIA_TYPE_UNSPECIFIED"] = 0] = "MEDIA_TYPE_UNSPECIFIED";
25
+ MediaType[MediaType["MEDIA_TYPE_IMAGE"] = 1] = "MEDIA_TYPE_IMAGE";
26
+ MediaType[MediaType["MEDIA_TYPE_VIDEO"] = 2] = "MEDIA_TYPE_VIDEO";
27
+ MediaType[MediaType["MEDIA_TYPE_DOCUMENT"] = 3] = "MEDIA_TYPE_DOCUMENT";
28
+ MediaType[MediaType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
29
+ })(MediaType || (exports.MediaType = MediaType = {}));
21
30
  exports.MEDIA_V1_PACKAGE_NAME = "media.v1";
22
31
  function MediaServiceControllerMethods() {
23
32
  return function (constructor) {
@@ -25,6 +34,10 @@ function MediaServiceControllerMethods() {
25
34
  "getPresignedUploadUrl",
26
35
  "getMultiplePresignedUploadUrls",
27
36
  "confirmUpload",
37
+ "initMultipartUpload",
38
+ "getMultipartPresignedUrls",
39
+ "completeMultipartUpload",
40
+ "abortMultipartUpload",
28
41
  "deleteMedia",
29
42
  "getMedia",
30
43
  ];
@@ -53,6 +53,7 @@ export interface PostResponse {
53
53
  updatedAt: string;
54
54
  categories: PostCategoryItem[];
55
55
  tags: PostTagItem[];
56
+ images: PostImageResponse[];
56
57
  }
57
58
  export interface PostResponse_TitleEntry {
58
59
  key: string;
@@ -104,6 +105,17 @@ export interface PostTagItem_NameEntry {
104
105
  key: string;
105
106
  value: string;
106
107
  }
108
+ export interface PostImageResponse {
109
+ id: string;
110
+ url: string;
111
+ mediaId: string;
112
+ sortOrder: number;
113
+ }
114
+ export interface PostImagePayload {
115
+ url: string;
116
+ mediaId: string;
117
+ sortOrder: number;
118
+ }
107
119
  export interface PostListItem {
108
120
  id: string;
109
121
  slug: string;
@@ -178,6 +190,7 @@ export interface CreatePostRequest {
178
190
  };
179
191
  categoryIds: string[];
180
192
  tagIds: string[];
193
+ images: PostImagePayload[];
181
194
  createdById: string;
182
195
  }
183
196
  export interface CreatePostRequest_TitleEntry {
@@ -236,6 +249,7 @@ export interface UpdatePostRequest {
236
249
  };
237
250
  categoryIds: string[];
238
251
  tagIds: string[];
252
+ images: PostImagePayload[];
239
253
  updatedById: string;
240
254
  }
241
255
  export interface UpdatePostRequest_TitleEntry {
@@ -4,39 +4,50 @@ package media.v1;
4
4
 
5
5
  service MediaService {
6
6
 
7
- rpc GetPresignedUploadUrl (GetPresignedUrlRequest) returns (GetPresignedUrlResponse);
8
-
9
7
 
8
+ rpc GetPresignedUploadUrl (GetPresignedUrlRequest) returns (GetPresignedUrlResponse);
10
9
  rpc GetMultiplePresignedUploadUrls (GetMultiplePresignedUrlsRequest) returns (GetMultiplePresignedUrlsResponse);
11
-
12
-
13
10
  rpc ConfirmUpload (ConfirmUploadRequest) returns (MediaResponse);
14
-
15
11
 
16
- rpc DeleteMedia (DeleteMediaRequest) returns (DeleteMediaResponse);
17
12
 
13
+ rpc InitMultipartUpload (InitMultipartUploadRequest) returns (InitMultipartUploadResponse);
14
+ rpc GetMultipartPresignedUrls (GetMultipartPresignedUrlsRequest) returns (GetMultipartPresignedUrlsResponse);
15
+ rpc CompleteMultipartUpload (CompleteMultipartUploadRequest) returns (MediaResponse);
16
+ rpc AbortMultipartUpload (AbortMultipartUploadRequest) returns (AbortMultipartUploadResponse);
18
17
 
18
+
19
+ rpc DeleteMedia (DeleteMediaRequest) returns (DeleteMediaResponse);
19
20
  rpc GetMedia (GetMediaRequest) returns (MediaResponse);
20
21
  }
21
22
 
22
23
  enum MediaStatus {
23
24
  MEDIA_STATUS_UNSPECIFIED = 0;
24
- MEDIA_STATUS_PENDING = 1;
25
+ MEDIA_STATUS_PENDING = 1;
25
26
  MEDIA_STATUS_READY = 2;
26
- MEDIA_STATUS_FAILED = 3;
27
+ MEDIA_STATUS_FAILED = 3;
28
+ MEDIA_STATUS_PROCESSING = 4;
29
+ }
30
+
31
+ enum MediaType {
32
+ MEDIA_TYPE_UNSPECIFIED = 0;
33
+ MEDIA_TYPE_IMAGE = 1;
34
+ MEDIA_TYPE_VIDEO = 2;
35
+ MEDIA_TYPE_DOCUMENT = 3;
27
36
  }
28
37
 
38
+
39
+
29
40
  message GetPresignedUrlRequest {
30
- string file_name = 1;
31
- string mime_type = 2;
32
- int64 file_size = 3;
33
- string created_by_id = 4;
41
+ string file_name = 1;
42
+ string mime_type = 2;
43
+ int64 file_size = 3;
44
+ string created_by_id = 4;
34
45
  }
35
46
 
36
47
  message GetPresignedUrlResponse {
37
- string upload_url = 1;
38
- string file_id = 2;
39
- string public_url = 3;
48
+ string upload_url = 1;
49
+ string file_id = 2;
50
+ string public_url = 3;
40
51
  }
41
52
 
42
53
  message GetMultiplePresignedUrlsRequest {
@@ -48,9 +59,66 @@ message GetMultiplePresignedUrlsResponse {
48
59
  }
49
60
 
50
61
  message ConfirmUploadRequest {
51
- string file_id = 1;
62
+ string file_id = 1;
63
+ }
64
+
65
+
66
+
67
+ message InitMultipartUploadRequest {
68
+ string file_name = 1;
69
+ string mime_type = 2;
70
+ int64 file_size = 3;
71
+ string created_by_id = 4;
72
+ int32 total_parts = 5;
73
+ }
74
+
75
+ message InitMultipartUploadResponse {
76
+ string file_id = 1;
77
+ string upload_id = 2;
78
+ string s3_key = 3;
52
79
  }
53
80
 
81
+ message GetMultipartPresignedUrlsRequest {
82
+ string file_id = 1;
83
+ string upload_id = 2;
84
+ string s3_key = 3;
85
+ int32 part_start = 4;
86
+ int32 part_end = 5;
87
+ }
88
+
89
+ message PresignedPartUrl {
90
+ int32 part_number = 1;
91
+ string upload_url = 2;
92
+ }
93
+
94
+ message GetMultipartPresignedUrlsResponse {
95
+ repeated PresignedPartUrl parts = 1;
96
+ }
97
+
98
+ message CompletedPart {
99
+ int32 part_number = 1;
100
+ string etag = 2;
101
+ }
102
+
103
+ message CompleteMultipartUploadRequest {
104
+ string file_id = 1;
105
+ string upload_id = 2;
106
+ string s3_key = 3;
107
+ repeated CompletedPart parts = 4;
108
+ }
109
+
110
+ message AbortMultipartUploadRequest {
111
+ string file_id = 1;
112
+ string upload_id = 2;
113
+ string s3_key = 3;
114
+ }
115
+
116
+ message AbortMultipartUploadResponse {
117
+ bool success = 1;
118
+ }
119
+
120
+
121
+
54
122
  message DeleteMediaRequest {
55
123
  string file_id = 1;
56
124
  }
@@ -68,7 +136,10 @@ message MediaResponse {
68
136
  string file_name = 2;
69
137
  string mime_type = 3;
70
138
  int64 file_size = 4;
71
- string public_url = 5;
139
+ string public_url = 5;
72
140
  string created_by_id = 6;
73
- MediaStatus status = 7;
74
- }
141
+ MediaStatus status = 7;
142
+ MediaType type = 8;
143
+ optional string thumbnail_url = 9;
144
+ optional int32 duration = 10;
145
+ }
@@ -5,6 +5,7 @@ package content.v1;
5
5
  import "common_post.proto";
6
6
 
7
7
 
8
+
8
9
  service PostService {
9
10
 
10
11
  rpc GetPosts (GetPostsRequest) returns (GetPostsResponse);
@@ -13,12 +14,12 @@ service PostService {
13
14
  rpc UpdatePost (UpdatePostRequest) returns (PostResponse);
14
15
  rpc DeletePost (DeletePostRequest) returns (DeleteResponse);
15
16
 
16
-
17
+
17
18
  rpc PublishPost (PostIdRequest) returns (PostResponse);
18
19
  rpc SchedulePost (SchedulePostRequest) returns (PostResponse);
19
- rpc ArchivePost (PostIdRequest) returns (PostResponse);
20
+ rpc ArchivePost (PostIdRequest) returns (PostResponse);
20
21
 
21
-
22
+
22
23
  rpc IncrementViews (PostIdRequest) returns (SuccessResponse);
23
24
  }
24
25
 
@@ -65,8 +66,9 @@ message PostResponse {
65
66
  string created_at = 19;
66
67
  string updated_at = 20;
67
68
 
68
- repeated PostCategoryItem categories = 21;
69
+ repeated PostCategoryItem categories = 21;
69
70
  repeated PostTagItem tags = 22;
71
+ repeated PostImageResponse images = 23;
70
72
  }
71
73
 
72
74
 
@@ -83,6 +85,21 @@ message PostTagItem {
83
85
  }
84
86
 
85
87
 
88
+ message PostImageResponse {
89
+ string id = 1;
90
+ string url = 2;
91
+ string media_id = 3;
92
+ int32 sort_order = 4;
93
+ }
94
+
95
+
96
+ message PostImagePayload {
97
+ string url = 1;
98
+ string media_id = 2;
99
+ int32 sort_order = 3;
100
+ }
101
+
102
+
86
103
  message PostListItem {
87
104
  string id = 1;
88
105
  string slug = 2;
@@ -102,7 +119,6 @@ message PostListItem {
102
119
  repeated PostTagItem tags = 13;
103
120
  }
104
121
 
105
-
106
122
  message GetPostsRequest {
107
123
  PaginationRequest pagination = 1;
108
124
 
@@ -121,13 +137,11 @@ message GetPostsResponse {
121
137
  PaginationMeta meta = 2;
122
138
  }
123
139
 
124
-
125
140
  message GetPostRequest {
126
141
  string id = 1;
127
142
  optional string slug = 2;
128
143
  }
129
144
 
130
-
131
145
  message CreatePostRequest {
132
146
  PostType type = 1;
133
147
 
@@ -145,13 +159,13 @@ message CreatePostRequest {
145
159
  map<string, string> seo_keywords = 10;
146
160
  map<string, string> seo_h1 = 11;
147
161
 
148
- repeated string category_ids = 12;
149
- repeated string tag_ids = 13;
162
+ repeated string category_ids = 12;
163
+ repeated string tag_ids = 13;
164
+ repeated PostImagePayload images = 14;
150
165
 
151
- string created_by_id = 14;
166
+ string created_by_id = 15;
152
167
  }
153
168
 
154
-
155
169
  message UpdatePostRequest {
156
170
  string id = 1;
157
171
 
@@ -169,10 +183,11 @@ message UpdatePostRequest {
169
183
  map<string, string> seo_keywords = 10;
170
184
  map<string, string> seo_h1 = 11;
171
185
 
172
- repeated string category_ids = 12;
173
- repeated string tag_ids = 13;
186
+ repeated string category_ids = 12;
187
+ repeated string tag_ids = 13;
188
+ repeated PostImagePayload images = 14;
174
189
 
175
- string updated_by_id = 14;
190
+ string updated_by_id = 15;
176
191
  }
177
192
 
178
193
 
@@ -180,12 +195,10 @@ message DeletePostRequest {
180
195
  string id = 1;
181
196
  }
182
197
 
183
-
184
198
  message PostIdRequest {
185
199
  string id = 1;
186
200
  }
187
201
 
188
-
189
202
  message SchedulePostRequest {
190
203
  string id = 1;
191
204
  string publish_at = 2;
package/gen/media.ts CHANGED
@@ -15,6 +15,15 @@ export enum MediaStatus {
15
15
  MEDIA_STATUS_PENDING = 1,
16
16
  MEDIA_STATUS_READY = 2,
17
17
  MEDIA_STATUS_FAILED = 3,
18
+ MEDIA_STATUS_PROCESSING = 4,
19
+ UNRECOGNIZED = -1,
20
+ }
21
+
22
+ export enum MediaType {
23
+ MEDIA_TYPE_UNSPECIFIED = 0,
24
+ MEDIA_TYPE_IMAGE = 1,
25
+ MEDIA_TYPE_VIDEO = 2,
26
+ MEDIA_TYPE_DOCUMENT = 3,
18
27
  UNRECOGNIZED = -1,
19
28
  }
20
29
 
@@ -43,6 +52,59 @@ export interface ConfirmUploadRequest {
43
52
  fileId: string;
44
53
  }
45
54
 
55
+ export interface InitMultipartUploadRequest {
56
+ fileName: string;
57
+ mimeType: string;
58
+ fileSize: number;
59
+ createdById: string;
60
+ totalParts: number;
61
+ }
62
+
63
+ export interface InitMultipartUploadResponse {
64
+ fileId: string;
65
+ uploadId: string;
66
+ s3Key: string;
67
+ }
68
+
69
+ export interface GetMultipartPresignedUrlsRequest {
70
+ fileId: string;
71
+ uploadId: string;
72
+ s3Key: string;
73
+ partStart: number;
74
+ partEnd: number;
75
+ }
76
+
77
+ export interface PresignedPartUrl {
78
+ partNumber: number;
79
+ uploadUrl: string;
80
+ }
81
+
82
+ export interface GetMultipartPresignedUrlsResponse {
83
+ parts: PresignedPartUrl[];
84
+ }
85
+
86
+ export interface CompletedPart {
87
+ partNumber: number;
88
+ etag: string;
89
+ }
90
+
91
+ export interface CompleteMultipartUploadRequest {
92
+ fileId: string;
93
+ uploadId: string;
94
+ s3Key: string;
95
+ parts: CompletedPart[];
96
+ }
97
+
98
+ export interface AbortMultipartUploadRequest {
99
+ fileId: string;
100
+ uploadId: string;
101
+ s3Key: string;
102
+ }
103
+
104
+ export interface AbortMultipartUploadResponse {
105
+ success: boolean;
106
+ }
107
+
46
108
  export interface DeleteMediaRequest {
47
109
  fileId: string;
48
110
  }
@@ -63,6 +125,9 @@ export interface MediaResponse {
63
125
  publicUrl: string;
64
126
  createdById: string;
65
127
  status: MediaStatus;
128
+ type: MediaType;
129
+ thumbnailUrl?: string | undefined;
130
+ duration?: number | undefined;
66
131
  }
67
132
 
68
133
  export const MEDIA_V1_PACKAGE_NAME = "media.v1";
@@ -76,6 +141,14 @@ export interface MediaServiceClient {
76
141
 
77
142
  confirmUpload(request: ConfirmUploadRequest): Observable<MediaResponse>;
78
143
 
144
+ initMultipartUpload(request: InitMultipartUploadRequest): Observable<InitMultipartUploadResponse>;
145
+
146
+ getMultipartPresignedUrls(request: GetMultipartPresignedUrlsRequest): Observable<GetMultipartPresignedUrlsResponse>;
147
+
148
+ completeMultipartUpload(request: CompleteMultipartUploadRequest): Observable<MediaResponse>;
149
+
150
+ abortMultipartUpload(request: AbortMultipartUploadRequest): Observable<AbortMultipartUploadResponse>;
151
+
79
152
  deleteMedia(request: DeleteMediaRequest): Observable<DeleteMediaResponse>;
80
153
 
81
154
  getMedia(request: GetMediaRequest): Observable<MediaResponse>;
@@ -95,6 +168,25 @@ export interface MediaServiceController {
95
168
 
96
169
  confirmUpload(request: ConfirmUploadRequest): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
97
170
 
171
+ initMultipartUpload(
172
+ request: InitMultipartUploadRequest,
173
+ ): Promise<InitMultipartUploadResponse> | Observable<InitMultipartUploadResponse> | InitMultipartUploadResponse;
174
+
175
+ getMultipartPresignedUrls(
176
+ request: GetMultipartPresignedUrlsRequest,
177
+ ):
178
+ | Promise<GetMultipartPresignedUrlsResponse>
179
+ | Observable<GetMultipartPresignedUrlsResponse>
180
+ | GetMultipartPresignedUrlsResponse;
181
+
182
+ completeMultipartUpload(
183
+ request: CompleteMultipartUploadRequest,
184
+ ): Promise<MediaResponse> | Observable<MediaResponse> | MediaResponse;
185
+
186
+ abortMultipartUpload(
187
+ request: AbortMultipartUploadRequest,
188
+ ): Promise<AbortMultipartUploadResponse> | Observable<AbortMultipartUploadResponse> | AbortMultipartUploadResponse;
189
+
98
190
  deleteMedia(
99
191
  request: DeleteMediaRequest,
100
192
  ): Promise<DeleteMediaResponse> | Observable<DeleteMediaResponse> | DeleteMediaResponse;
@@ -108,6 +200,10 @@ export function MediaServiceControllerMethods() {
108
200
  "getPresignedUploadUrl",
109
201
  "getMultiplePresignedUploadUrls",
110
202
  "confirmUpload",
203
+ "initMultipartUpload",
204
+ "getMultipartPresignedUrls",
205
+ "completeMultipartUpload",
206
+ "abortMultipartUpload",
111
207
  "deleteMedia",
112
208
  "getMedia",
113
209
  ];
package/gen/post.ts CHANGED
@@ -51,6 +51,7 @@ export interface PostResponse {
51
51
  updatedAt: string;
52
52
  categories: PostCategoryItem[];
53
53
  tags: PostTagItem[];
54
+ images: PostImageResponse[];
54
55
  }
55
56
 
56
57
  export interface PostResponse_TitleEntry {
@@ -110,6 +111,19 @@ export interface PostTagItem_NameEntry {
110
111
  value: string;
111
112
  }
112
113
 
114
+ export interface PostImageResponse {
115
+ id: string;
116
+ url: string;
117
+ mediaId: string;
118
+ sortOrder: number;
119
+ }
120
+
121
+ export interface PostImagePayload {
122
+ url: string;
123
+ mediaId: string;
124
+ sortOrder: number;
125
+ }
126
+
113
127
  export interface PostListItem {
114
128
  id: string;
115
129
  slug: string;
@@ -172,6 +186,7 @@ export interface CreatePostRequest {
172
186
  seoH1: { [key: string]: string };
173
187
  categoryIds: string[];
174
188
  tagIds: string[];
189
+ images: PostImagePayload[];
175
190
  createdById: string;
176
191
  }
177
192
 
@@ -224,6 +239,7 @@ export interface UpdatePostRequest {
224
239
  seoH1: { [key: string]: string };
225
240
  categoryIds: string[];
226
241
  tagIds: string[];
242
+ images: PostImagePayload[];
227
243
  updatedById: string;
228
244
  }
229
245
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mamindom/contracts",
3
3
  "description": "proto",
4
- "version": "1.0.53",
4
+ "version": "1.0.55",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
7
7
  "exports": {
package/proto/media.proto CHANGED
@@ -4,39 +4,50 @@ package media.v1;
4
4
 
5
5
  service MediaService {
6
6
 
7
- rpc GetPresignedUploadUrl (GetPresignedUrlRequest) returns (GetPresignedUrlResponse);
8
-
9
7
 
8
+ rpc GetPresignedUploadUrl (GetPresignedUrlRequest) returns (GetPresignedUrlResponse);
10
9
  rpc GetMultiplePresignedUploadUrls (GetMultiplePresignedUrlsRequest) returns (GetMultiplePresignedUrlsResponse);
11
-
12
-
13
10
  rpc ConfirmUpload (ConfirmUploadRequest) returns (MediaResponse);
14
-
15
11
 
16
- rpc DeleteMedia (DeleteMediaRequest) returns (DeleteMediaResponse);
17
12
 
13
+ rpc InitMultipartUpload (InitMultipartUploadRequest) returns (InitMultipartUploadResponse);
14
+ rpc GetMultipartPresignedUrls (GetMultipartPresignedUrlsRequest) returns (GetMultipartPresignedUrlsResponse);
15
+ rpc CompleteMultipartUpload (CompleteMultipartUploadRequest) returns (MediaResponse);
16
+ rpc AbortMultipartUpload (AbortMultipartUploadRequest) returns (AbortMultipartUploadResponse);
18
17
 
18
+
19
+ rpc DeleteMedia (DeleteMediaRequest) returns (DeleteMediaResponse);
19
20
  rpc GetMedia (GetMediaRequest) returns (MediaResponse);
20
21
  }
21
22
 
22
23
  enum MediaStatus {
23
24
  MEDIA_STATUS_UNSPECIFIED = 0;
24
- MEDIA_STATUS_PENDING = 1;
25
+ MEDIA_STATUS_PENDING = 1;
25
26
  MEDIA_STATUS_READY = 2;
26
- MEDIA_STATUS_FAILED = 3;
27
+ MEDIA_STATUS_FAILED = 3;
28
+ MEDIA_STATUS_PROCESSING = 4;
29
+ }
30
+
31
+ enum MediaType {
32
+ MEDIA_TYPE_UNSPECIFIED = 0;
33
+ MEDIA_TYPE_IMAGE = 1;
34
+ MEDIA_TYPE_VIDEO = 2;
35
+ MEDIA_TYPE_DOCUMENT = 3;
27
36
  }
28
37
 
38
+
39
+
29
40
  message GetPresignedUrlRequest {
30
- string file_name = 1;
31
- string mime_type = 2;
32
- int64 file_size = 3;
33
- string created_by_id = 4;
41
+ string file_name = 1;
42
+ string mime_type = 2;
43
+ int64 file_size = 3;
44
+ string created_by_id = 4;
34
45
  }
35
46
 
36
47
  message GetPresignedUrlResponse {
37
- string upload_url = 1;
38
- string file_id = 2;
39
- string public_url = 3;
48
+ string upload_url = 1;
49
+ string file_id = 2;
50
+ string public_url = 3;
40
51
  }
41
52
 
42
53
  message GetMultiplePresignedUrlsRequest {
@@ -48,9 +59,66 @@ message GetMultiplePresignedUrlsResponse {
48
59
  }
49
60
 
50
61
  message ConfirmUploadRequest {
51
- string file_id = 1;
62
+ string file_id = 1;
63
+ }
64
+
65
+
66
+
67
+ message InitMultipartUploadRequest {
68
+ string file_name = 1;
69
+ string mime_type = 2;
70
+ int64 file_size = 3;
71
+ string created_by_id = 4;
72
+ int32 total_parts = 5;
73
+ }
74
+
75
+ message InitMultipartUploadResponse {
76
+ string file_id = 1;
77
+ string upload_id = 2;
78
+ string s3_key = 3;
52
79
  }
53
80
 
81
+ message GetMultipartPresignedUrlsRequest {
82
+ string file_id = 1;
83
+ string upload_id = 2;
84
+ string s3_key = 3;
85
+ int32 part_start = 4;
86
+ int32 part_end = 5;
87
+ }
88
+
89
+ message PresignedPartUrl {
90
+ int32 part_number = 1;
91
+ string upload_url = 2;
92
+ }
93
+
94
+ message GetMultipartPresignedUrlsResponse {
95
+ repeated PresignedPartUrl parts = 1;
96
+ }
97
+
98
+ message CompletedPart {
99
+ int32 part_number = 1;
100
+ string etag = 2;
101
+ }
102
+
103
+ message CompleteMultipartUploadRequest {
104
+ string file_id = 1;
105
+ string upload_id = 2;
106
+ string s3_key = 3;
107
+ repeated CompletedPart parts = 4;
108
+ }
109
+
110
+ message AbortMultipartUploadRequest {
111
+ string file_id = 1;
112
+ string upload_id = 2;
113
+ string s3_key = 3;
114
+ }
115
+
116
+ message AbortMultipartUploadResponse {
117
+ bool success = 1;
118
+ }
119
+
120
+
121
+
54
122
  message DeleteMediaRequest {
55
123
  string file_id = 1;
56
124
  }
@@ -68,7 +136,10 @@ message MediaResponse {
68
136
  string file_name = 2;
69
137
  string mime_type = 3;
70
138
  int64 file_size = 4;
71
- string public_url = 5;
139
+ string public_url = 5;
72
140
  string created_by_id = 6;
73
- MediaStatus status = 7;
74
- }
141
+ MediaStatus status = 7;
142
+ MediaType type = 8;
143
+ optional string thumbnail_url = 9;
144
+ optional int32 duration = 10;
145
+ }
package/proto/post.proto CHANGED
@@ -5,6 +5,7 @@ package content.v1;
5
5
  import "common_post.proto";
6
6
 
7
7
 
8
+
8
9
  service PostService {
9
10
 
10
11
  rpc GetPosts (GetPostsRequest) returns (GetPostsResponse);
@@ -13,12 +14,12 @@ service PostService {
13
14
  rpc UpdatePost (UpdatePostRequest) returns (PostResponse);
14
15
  rpc DeletePost (DeletePostRequest) returns (DeleteResponse);
15
16
 
16
-
17
+
17
18
  rpc PublishPost (PostIdRequest) returns (PostResponse);
18
19
  rpc SchedulePost (SchedulePostRequest) returns (PostResponse);
19
- rpc ArchivePost (PostIdRequest) returns (PostResponse);
20
+ rpc ArchivePost (PostIdRequest) returns (PostResponse);
20
21
 
21
-
22
+
22
23
  rpc IncrementViews (PostIdRequest) returns (SuccessResponse);
23
24
  }
24
25
 
@@ -65,8 +66,9 @@ message PostResponse {
65
66
  string created_at = 19;
66
67
  string updated_at = 20;
67
68
 
68
- repeated PostCategoryItem categories = 21;
69
+ repeated PostCategoryItem categories = 21;
69
70
  repeated PostTagItem tags = 22;
71
+ repeated PostImageResponse images = 23;
70
72
  }
71
73
 
72
74
 
@@ -83,6 +85,21 @@ message PostTagItem {
83
85
  }
84
86
 
85
87
 
88
+ message PostImageResponse {
89
+ string id = 1;
90
+ string url = 2;
91
+ string media_id = 3;
92
+ int32 sort_order = 4;
93
+ }
94
+
95
+
96
+ message PostImagePayload {
97
+ string url = 1;
98
+ string media_id = 2;
99
+ int32 sort_order = 3;
100
+ }
101
+
102
+
86
103
  message PostListItem {
87
104
  string id = 1;
88
105
  string slug = 2;
@@ -102,7 +119,6 @@ message PostListItem {
102
119
  repeated PostTagItem tags = 13;
103
120
  }
104
121
 
105
-
106
122
  message GetPostsRequest {
107
123
  PaginationRequest pagination = 1;
108
124
 
@@ -121,13 +137,11 @@ message GetPostsResponse {
121
137
  PaginationMeta meta = 2;
122
138
  }
123
139
 
124
-
125
140
  message GetPostRequest {
126
141
  string id = 1;
127
142
  optional string slug = 2;
128
143
  }
129
144
 
130
-
131
145
  message CreatePostRequest {
132
146
  PostType type = 1;
133
147
 
@@ -145,13 +159,13 @@ message CreatePostRequest {
145
159
  map<string, string> seo_keywords = 10;
146
160
  map<string, string> seo_h1 = 11;
147
161
 
148
- repeated string category_ids = 12;
149
- repeated string tag_ids = 13;
162
+ repeated string category_ids = 12;
163
+ repeated string tag_ids = 13;
164
+ repeated PostImagePayload images = 14;
150
165
 
151
- string created_by_id = 14;
166
+ string created_by_id = 15;
152
167
  }
153
168
 
154
-
155
169
  message UpdatePostRequest {
156
170
  string id = 1;
157
171
 
@@ -169,10 +183,11 @@ message UpdatePostRequest {
169
183
  map<string, string> seo_keywords = 10;
170
184
  map<string, string> seo_h1 = 11;
171
185
 
172
- repeated string category_ids = 12;
173
- repeated string tag_ids = 13;
186
+ repeated string category_ids = 12;
187
+ repeated string tag_ids = 13;
188
+ repeated PostImagePayload images = 14;
174
189
 
175
- string updated_by_id = 14;
190
+ string updated_by_id = 15;
176
191
  }
177
192
 
178
193
 
@@ -180,12 +195,10 @@ message DeletePostRequest {
180
195
  string id = 1;
181
196
  }
182
197
 
183
-
184
198
  message PostIdRequest {
185
199
  string id = 1;
186
200
  }
187
201
 
188
-
189
202
  message SchedulePostRequest {
190
203
  string id = 1;
191
204
  string publish_at = 2;