1 /*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License"){return 0;}
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #define MLOG_TAG "Media_Cloud_Controller"
17
18 #include "cloud_media_photo_controller_service.h"
19
20 #include "media_log.h"
21 #include "media_column.h"
22 #include "cloud_media_data_controller_processor.h"
23 #include "user_define_ipc.h"
24 #include "media_req_vo.h"
25 #include "media_resp_vo.h"
26 #include "cloud_media_photos_service.h"
27 #include "cloud_media_data_service.h"
28 #include "medialibrary_errno.h"
29 #include "cloud_mdkrecord_photos_vo.h"
30 #include "on_delete_records_photos_vo.h"
31 #include "on_copy_records_photos_vo.h"
32 #include "on_create_records_photos_vo.h"
33 #include "on_modify_records_photos_vo.h"
34 #include "on_fetch_records_vo.h"
35 #include "on_modify_file_dirty_vo.h"
36 #include "get_retey_records_vo.h"
37 #include "on_dentry_file_vo.h"
38 #include "on_fetch_photos_vo.h"
39 #include "failed_size_resp_vo.h"
40 #include "get_check_records_vo.h"
41 #include "report_failure_vo.h"
42
43 namespace OHOS::Media::CloudSync {
OnFetchRecords(MessageParcel & data,MessageParcel & reply)44 int32_t CloudMediaPhotoControllerService::OnFetchRecords(MessageParcel &data, MessageParcel &reply)
45 {
46 MEDIA_INFO_LOG("enter CloudMediaPhotoControllerService::OnFetchRecords");
47 OnFetchRecordsReqBody reqBody;
48 OnFetchRecordsRespBody respBody;
49 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
50 if (ret != E_OK) {
51 MEDIA_ERR_LOG("OnFetchRecords Read Req Error");
52 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
53 }
54 std::vector<OnFetchPhotosVo> onFetchPhotoDatas = reqBody.GetOnFetchPhotoData();
55 std::vector<std::string> cloudIds;
56 std::map<std::string, CloudMediaPullDataDto> cloudIdRelativeMap;
57 std::vector<PhotosDto> newData;
58 std::vector<PhotosDto> fdirtyData;
59 std::vector<int32_t> stats{0, 0, 0, 0, 0};
60 std::vector<std::string> failedRecords;
61 MEDIA_INFO_LOG("OnFetchRecords onFetchPhotoDatas size: %{public}zu", onFetchPhotoDatas.size());
62 for (auto onFetchPhotoData : onFetchPhotoDatas) {
63 cloudIds.emplace_back(onFetchPhotoData.cloudId);
64 CloudMediaPullDataDto pullData = this->processor_.ConvertToCloudMediaPullData(onFetchPhotoData);
65 cloudIdRelativeMap[onFetchPhotoData.cloudId] = pullData;
66 MEDIA_DEBUG_LOG("OnFetchRecords CloudMediaPullData: %{public}s", pullData.ToString().c_str());
67 }
68 ret = this->photosService_.OnFetchRecords(cloudIds, cloudIdRelativeMap, newData, fdirtyData, stats, failedRecords);
69 respBody.stats = stats;
70 respBody.failedRecords = failedRecords;
71 respBody.newDatas = this->processor_.SetNewDataVoFromDto(newData);
72 respBody.fdirtyDatas = this->processor_.SetFdirtyDataVoFromDto(fdirtyData);
73 MEDIA_INFO_LOG("OnFetchRecords Resp: %{public}s, size:%{public}zu", respBody.ToString().c_str(), newData.size());
74 return IPC::UserDefineIPC().WriteResponseBody(reply, respBody);
75 }
76
OnDentryFileInsert(MessageParcel & data,MessageParcel & reply)77 int32_t CloudMediaPhotoControllerService::OnDentryFileInsert(MessageParcel &data, MessageParcel &reply)
78 {
79 MEDIA_INFO_LOG("OnDentryFileInsert enter");
80 OnDentryFileReqBody reqBody;
81 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
82 if (ret != E_OK) {
83 MEDIA_ERR_LOG("OnDentryFileInsert Read Req Error");
84 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
85 }
86 OnDentryFileRespBody respBody;
87 std::vector<std::string> failedRecords;
88 std::vector<OnFetchPhotosVo> onDentryRecords = reqBody.GetOnDentryFileRecord();
89 std::vector<CloudMediaPullDataDto> pullDatas;
90 for (auto onDentryRecord : onDentryRecords) {
91 CloudMediaPullDataDto pullData = this->processor_.ConvertToCloudMediaPullData(onDentryRecord);
92 pullDatas.emplace_back(pullData);
93 MEDIA_DEBUG_LOG("OnDentryFileInsert PullData: %{public}s", pullData.ToString().c_str());
94 }
95 ret = this->photosService_.OnDentryFileInsert(pullDatas, failedRecords);
96 respBody.failedRecords = failedRecords;
97 return IPC::UserDefineIPC().WriteResponseBody(reply, respBody);
98 }
99
GetCheckRecords(MessageParcel & data,MessageParcel & reply)100 int32_t CloudMediaPhotoControllerService::GetCheckRecords(MessageParcel &data, MessageParcel &reply)
101 {
102 MEDIA_INFO_LOG("enter CloudMediaPhotoControllerService::GetCheckRecords");
103 GetCheckRecordsReqBody reqBody;
104 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
105 if (ret != E_OK) {
106 MEDIA_ERR_LOG("GetCheckRecords Read Req Error");
107 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
108 }
109 int32_t size = static_cast<int32_t>(reqBody.cloudIds.size());
110 if (size <= 0 || size > LIMIT_SIZE) {
111 MEDIA_ERR_LOG("GetCheckRecords param error, size: %{public}d", size);
112 return IPC::UserDefineIPC().WriteResponseBody(reply, E_MEDIA_CLOUD_ARGS_INVAILD);
113 }
114 MEDIA_INFO_LOG("GetCheckRecords reqBody: %{public}s", reqBody.ToString().c_str());
115 std::vector<PhotosDto> photosDtoVec = this->photosService_.GetCheckRecords(reqBody.cloudIds);
116 GetCheckRecordsRespBody respBody;
117 respBody.checkDataList = this->processor_.GetCheckRecordsRespBody(photosDtoVec);
118 MEDIA_INFO_LOG("GetCheckRecords RespBody: %{public}s", respBody.ToString().c_str());
119 return IPC::UserDefineIPC().WriteResponseBody(reply, respBody);
120 }
121
GetCreatedRecords(MessageParcel & data,MessageParcel & reply)122 int32_t CloudMediaPhotoControllerService::GetCreatedRecords(MessageParcel &data, MessageParcel &reply)
123 {
124 CloudMdkRecordPhotosReqBody reqBody;
125 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
126 if (ret != E_OK) {
127 MEDIA_ERR_LOG("CloudMediaPhotoControllerService::GetCreatedRecords Read Req Error %{public}d", ret);
128 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
129 }
130 int32_t size = reqBody.size;
131 MEDIA_INFO_LOG("enter CloudMediaPhotoControllerService::GetCreatedRecords %{public}d", size);
132 if (size <= 0 || size > LIMIT_SIZE) {
133 MEDIA_ERR_LOG("GetCreatedRecords param error, size: %{public}d", size);
134 return IPC::UserDefineIPC().WriteResponseBody(reply, E_MEDIA_CLOUD_ARGS_INVAILD);
135 }
136 std::vector<PhotosPo> createdRecordsPoList;
137 ret = this->photosService_.GetCreatedRecords(reqBody.size, createdRecordsPoList);
138 if (ret != E_OK) {
139 MEDIA_ERR_LOG("GetCreatedRecords process error, ret: %{public}d", ret);
140 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
141 }
142 std::vector<CloudMdkRecordPhotosVo> createdRecordsList;
143 for (const auto &createdRecord : createdRecordsPoList) {
144 createdRecordsList.emplace_back(this->processor_.ConvertRecordPoToVo(createdRecord));
145 }
146 CloudMdkRecordPhotosRespBody respBody{createdRecordsList};
147 MEDIA_INFO_LOG("exit CloudMediaPhotoControllerService::GetCreatedRecords %{public}zu", createdRecordsList.size());
148 return IPC::UserDefineIPC().WriteResponseBody(reply, respBody);
149 }
150
GetMetaModifiedRecords(MessageParcel & data,MessageParcel & reply)151 int32_t CloudMediaPhotoControllerService::GetMetaModifiedRecords(MessageParcel &data, MessageParcel &reply)
152 {
153 CloudMdkRecordPhotosReqBody reqBody;
154 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
155 if (ret != E_OK) {
156 MEDIA_INFO_LOG("CloudMediaPhotoControllerService::GetMetaModifiedRecords Read Req Err");
157 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
158 }
159 int32_t size = reqBody.size;
160 if (size <= 0 || size > LIMIT_SIZE) {
161 MEDIA_ERR_LOG("GetMetaModifiedRecords param error, size: %{public}d", size);
162 return IPC::UserDefineIPC().WriteResponseBody(reply, E_MEDIA_CLOUD_ARGS_INVAILD);
163 }
164 bool isInvalidType = reqBody.dirtyType != static_cast<int32_t>(DirtyType::TYPE_MDIRTY) &&
165 reqBody.dirtyType != static_cast<int32_t>(DirtyType::TYPE_SDIRTY);
166 if (isInvalidType) {
167 MEDIA_ERR_LOG("GetMetaModifiedRecords param error, dirtyType: %{public}d", reqBody.dirtyType);
168 return IPC::UserDefineIPC().WriteResponseBody(reply, E_MEDIA_CLOUD_ARGS_INVAILD);
169 }
170 std::vector<PhotosPo> metaModifiedRecordsPoList;
171 ret = this->photosService_.GetMetaModifiedRecords(reqBody.size, metaModifiedRecordsPoList, reqBody.dirtyType);
172 if (ret != E_OK) {
173 MEDIA_ERR_LOG("GetMetaModifiedRecords process error, ret: %{public}d", ret);
174 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
175 }
176 std::vector<CloudMdkRecordPhotosVo> metaModifiedRecordsList;
177 for (const auto &metaModifiedRecord : metaModifiedRecordsPoList) {
178 metaModifiedRecordsList.emplace_back(this->processor_.ConvertRecordPoToVo(metaModifiedRecord));
179 }
180 MEDIA_INFO_LOG("end CloudMediaPhotoControllerService::GetMetaModifiedRecords Query:%{public}zu,Result:%{public}zu",
181 metaModifiedRecordsList.size(),
182 metaModifiedRecordsPoList.size());
183 CloudMdkRecordPhotosRespBody respBody{metaModifiedRecordsList};
184 return IPC::UserDefineIPC().WriteResponseBody(reply, respBody);
185 }
186
GetFileModifiedRecords(MessageParcel & data,MessageParcel & reply)187 int32_t CloudMediaPhotoControllerService::GetFileModifiedRecords(MessageParcel &data, MessageParcel &reply)
188 {
189 MEDIA_INFO_LOG("enter GetFileModifiedRecords");
190 CloudMdkRecordPhotosReqBody reqBody;
191 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
192 if (ret != E_OK) {
193 MEDIA_ERR_LOG("GetFileModifiedRecords Read Req ERR");
194 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
195 }
196 int32_t size = reqBody.size;
197 MEDIA_INFO_LOG("enter CloudMediaPhotoControllerService::GetFileModifiedRecords %{public}d", size);
198 if (size <= 0 || size > LIMIT_SIZE) {
199 MEDIA_ERR_LOG("GetFileModifiedRecords param error, size: %{public}d", size);
200 return IPC::UserDefineIPC().WriteResponseBody(reply, E_MEDIA_CLOUD_ARGS_INVAILD);
201 }
202 std::vector<PhotosPo> fileModifiedRecordsPoList;
203 ret = this->photosService_.GetFileModifiedRecords(reqBody.size, fileModifiedRecordsPoList);
204 if (ret != E_OK) {
205 MEDIA_ERR_LOG("GetFileModifiedRecords process error, ret: %{public}d", ret);
206 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
207 }
208 std::vector<CloudMdkRecordPhotosVo> fileModifiedRecordsList;
209 for (const auto &fileModifiedRecord : fileModifiedRecordsPoList) {
210 MEDIA_DEBUG_LOG("GetFileModifiedRecords PO: %{public}s", fileModifiedRecord.ToString().c_str());
211 fileModifiedRecordsList.emplace_back(this->processor_.ConvertRecordPoToVo(fileModifiedRecord));
212 }
213 CloudMdkRecordPhotosRespBody respBody{fileModifiedRecordsList};
214 return IPC::UserDefineIPC().WriteResponseBody(reply, respBody);
215 }
216
GetDeletedRecords(MessageParcel & data,MessageParcel & reply)217 int32_t CloudMediaPhotoControllerService::GetDeletedRecords(MessageParcel &data, MessageParcel &reply)
218 {
219 CloudMdkRecordPhotosReqBody reqBody;
220 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
221 if (ret != E_OK) {
222 MEDIA_ERR_LOG("GetDeletedRecords ReadRequestBody error %{public}d", ret);
223 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
224 }
225 int32_t size = reqBody.size;
226 if (size <= 0 || size > LIMIT_SIZE) {
227 MEDIA_ERR_LOG("GetDeletedRecords param error, size: %{public}d", size);
228 return IPC::UserDefineIPC().WriteResponseBody(reply, E_MEDIA_CLOUD_ARGS_INVAILD);
229 }
230 std::vector<PhotosPo> deletedRecordsPoList = this->photosService_.GetDeletedRecords(reqBody.size);
231 std::vector<CloudMdkRecordPhotosVo> deletedRecordsList;
232 for (const auto &deletedRecord : deletedRecordsPoList) {
233 deletedRecordsList.emplace_back(this->processor_.ConvertRecordPoToVo(deletedRecord));
234 }
235 MEDIA_INFO_LOG("exit CloudMediaPhotoControllerService::GetDeletedRecords %{public}zu", deletedRecordsList.size());
236 CloudMdkRecordPhotosRespBody respBody{deletedRecordsList};
237 return IPC::UserDefineIPC().WriteResponseBody(reply, respBody);
238 }
239
GetCopyRecords(MessageParcel & data,MessageParcel & reply)240 int32_t CloudMediaPhotoControllerService::GetCopyRecords(MessageParcel &data, MessageParcel &reply)
241 {
242 CloudMdkRecordPhotosReqBody reqBody;
243 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
244 if (ret != E_OK) {
245 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
246 }
247 int32_t size = reqBody.size;
248 if (size <= 0 || size > LIMIT_SIZE) {
249 MEDIA_ERR_LOG("GetCopyRecords param error, size: %{public}d", size);
250 return IPC::UserDefineIPC().WriteResponseBody(reply, E_MEDIA_CLOUD_ARGS_INVAILD);
251 }
252 std::vector<PhotosPo> copyRecordsPoList;
253 ret = this->photosService_.GetCopyRecords(reqBody.size, copyRecordsPoList);
254 if (ret != E_OK) {
255 MEDIA_ERR_LOG("GetCopyRecords process error, ret: %{public}d", ret);
256 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
257 }
258 std::vector<CloudMdkRecordPhotosVo> copyRecordsList;
259 for (const auto ©Record : copyRecordsPoList) {
260 copyRecordsList.emplace_back(this->processor_.ConvertRecordPoToVo(copyRecord));
261 }
262 MEDIA_INFO_LOG("CloudMediaPhotoControllerService::GetCopyRecords Size: %{public}zu, %{public}zu",
263 copyRecordsPoList.size(),
264 copyRecordsList.size());
265 CloudMdkRecordPhotosRespBody respBody{copyRecordsList};
266 return IPC::UserDefineIPC().WriteResponseBody(reply, respBody);
267 }
268
OnCreateRecords(MessageParcel & data,MessageParcel & reply)269 int32_t CloudMediaPhotoControllerService::OnCreateRecords(MessageParcel &data, MessageParcel &reply)
270 {
271 MEDIA_INFO_LOG("enter OnCreateRecords");
272 OnCreateRecordsPhotosReqBody req;
273 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, req);
274 if (ret != E_OK) {
275 MEDIA_ERR_LOG("OnCreateRecords Read Req Err");
276 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
277 }
278 std::vector<PhotosDto> photos;
279 for (const auto &record : req.records) {
280 PhotosDto photo = this->processor_.ConvertToPhotoDto(record);
281 MEDIA_DEBUG_LOG("OnCreateRecords record: %{public}s", record.ToString().c_str());
282 photos.emplace_back(photo);
283 }
284 FailedSizeResp resp;
285 ret = this->photosService_.OnCreateRecords(photos, resp.failedSize);
286 MEDIA_INFO_LOG("OnCreateRecords ret: %{public}d, failedSize:%{public}d", ret, resp.failedSize);
287 return IPC::UserDefineIPC().WriteResponseBody(reply, resp, ret);
288 }
289
OnMdirtyRecords(MessageParcel & data,MessageParcel & reply)290 int32_t CloudMediaPhotoControllerService::OnMdirtyRecords(MessageParcel &data, MessageParcel &reply)
291 {
292 MEDIA_INFO_LOG("enter OnMdirtyRecords");
293 OnModifyRecordsPhotosReqBody req;
294 FailedSizeResp resp;
295 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, req);
296 if (ret != E_OK) {
297 MEDIA_ERR_LOG("OnMdirtyRecords Read Req Error");
298 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
299 }
300 std::vector<OnModifyRecord> records = req.GetModifyRecords();
301 std::vector<PhotosDto> photos;
302 for (const auto &record : records) {
303 PhotosDto photo;
304 this->processor_.ConvertToPhotosDto(record, photo);
305 photos.emplace_back(photo);
306 MEDIA_DEBUG_LOG("OnMdirtyRecords OnModifyRecord: %{public}s", record.ToString().c_str());
307 }
308 ret = this->photosService_.OnMdirtyRecords(photos, resp.failedSize);
309 return IPC::UserDefineIPC().WriteResponseBody(reply, resp, ret);
310 }
311
OnFdirtyRecords(MessageParcel & data,MessageParcel & reply)312 int32_t CloudMediaPhotoControllerService::OnFdirtyRecords(MessageParcel &data, MessageParcel &reply)
313 {
314 MEDIA_INFO_LOG("OnFdirtyRecords enter");
315 OnFileDirtyRecordsReqBody req;
316 FailedSizeResp resp;
317 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, req);
318 if (ret != E_OK) {
319 MEDIA_ERR_LOG("OnFdirtyRecords Read Req Error");
320 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
321 }
322 std::vector<PhotosDto> photos;
323 for (const auto &entry : req.records) {
324 PhotosDto photo;
325 this->processor_.ConvertToPhotosDto(entry, photo);
326 MEDIA_ERR_LOG(
327 "OnFdirtyRecords Photo: %{public}s, entry: %{public}s", photo.ToString().c_str(), entry.ToString().c_str());
328 photos.emplace_back(photo);
329 }
330 ret = this->photosService_.OnFdirtyRecords(photos, resp.failedSize);
331 MEDIA_INFO_LOG("OnFdirtyRecords end Ret:%{public}d", ret);
332 return IPC::UserDefineIPC().WriteResponseBody(reply, resp, ret);
333 }
334
OnDeleteRecords(MessageParcel & data,MessageParcel & reply)335 int32_t CloudMediaPhotoControllerService::OnDeleteRecords(MessageParcel &data, MessageParcel &reply)
336 {
337 MEDIA_INFO_LOG("CloudMediaPhotoControllerService::OnDeleteRecords");
338 OnDeleteRecordsPhotosReqBody reqBody;
339 OnDeleteRecordsPhotosRespBody resp;
340 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
341 if (ret != E_OK) {
342 MEDIA_ERR_LOG("CloudMediaPhotoControllerService::OnDeleteRecords Read Request Error");
343 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
344 }
345 std::vector<PhotosDto> photoDtoList;
346 for (const auto &photo : reqBody.records) {
347 PhotosDto photoDto;
348 photoDto.cloudId = photo.cloudId;
349 photoDto.dkRecordId = photo.dkRecordId;
350 photoDto.isSuccess = photo.isSuccess;
351 photoDtoList.emplace_back(photoDto);
352 }
353 MEDIA_INFO_LOG("CloudMediaPhotoControllerService::OnDeleteRecords size: %{public}zu", photoDtoList.size());
354 ret = this->photosService_.OnDeleteRecords(photoDtoList, resp.failSize);
355 return IPC::UserDefineIPC().WriteResponseBody(reply, resp, ret);
356 }
357
OnCopyRecords(MessageParcel & data,MessageParcel & reply)358 int32_t CloudMediaPhotoControllerService::OnCopyRecords(MessageParcel &data, MessageParcel &reply)
359 {
360 MEDIA_INFO_LOG("enter CloudMediaPhotoControllerService::OnCopyRecords");
361 OnCopyRecordsPhotosReqBody req;
362 FailedSizeResp resp;
363 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, req);
364 if (ret != E_OK) {
365 MEDIA_ERR_LOG("OnCopyRecords Read Req Error");
366 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
367 }
368 std::vector<OnCopyRecord> records = req.GetRecords();
369 std::vector<PhotosDto> photos;
370 for (const auto &record : records) {
371 PhotosDto photo;
372 photo.fileId = record.fileId;
373 photo.fileType = record.fileType;
374 photo.size = record.size;
375 photo.createTime = record.createTime;
376 photo.modifiedTime = record.modifyTime;
377 photo.cloudVersion = record.version;
378 photo.rotation = record.rotation;
379 photo.cloudId = record.cloudId;
380 photo.path = record.path;
381 photo.fileName = record.fileName;
382 photo.sourcePath = record.sourcePath;
383 photo.isSuccess = record.isSuccess;
384 photo.errorType = record.errorType;
385 photo.serverErrorCode = record.serverErrorCode;
386 photo.errorDetails = record.errorDetails;
387 photos.emplace_back(photo);
388 MEDIA_DEBUG_LOG("OnCopyRecords record: %{public}s", record.ToString().c_str());
389 }
390 ret = this->photosService_.OnCopyRecords(photos, resp.failedSize);
391 return IPC::UserDefineIPC().WriteResponseBody(reply, resp, ret);
392 }
393
GetRetryRecords(MessageParcel & data,MessageParcel & reply)394 int32_t CloudMediaPhotoControllerService::GetRetryRecords(MessageParcel &data, MessageParcel &reply)
395 {
396 MEDIA_INFO_LOG("enter GetRetryRecords");
397 GetRetryRecordsRespBody respBody;
398 int32_t ret = this->photosService_.GetRetryRecords(respBody.cloudIds);
399 if (ret != E_OK) {
400 MEDIA_ERR_LOG("GetRetryRecords ret error");
401 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
402 }
403 return IPC::UserDefineIPC().WriteResponseBody(reply, respBody, ret);
404 }
405
OnStartSync(MessageParcel & data,MessageParcel & reply)406 int32_t CloudMediaPhotoControllerService::OnStartSync(MessageParcel &data, MessageParcel &reply)
407 {
408 int32_t ret = this->photosService_.OnStartSync();
409 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
410 }
411
OnCompleteSync(MessageParcel & data,MessageParcel & reply)412 int32_t CloudMediaPhotoControllerService::OnCompleteSync(MessageParcel &data, MessageParcel &reply)
413 {
414 int32_t ret = this->photosService_.OnCompleteSync();
415 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
416 }
417
OnCompletePull(MessageParcel & data,MessageParcel & reply)418 int32_t CloudMediaPhotoControllerService::OnCompletePull(MessageParcel &data, MessageParcel &reply)
419 {
420 int32_t ret = this->photosService_.OnCompletePull();
421 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
422 }
423
OnCompletePush(MessageParcel & data,MessageParcel & reply)424 int32_t CloudMediaPhotoControllerService::OnCompletePush(MessageParcel &data, MessageParcel &reply)
425 {
426 int32_t ret = this->photosService_.OnCompletePush();
427 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
428 }
429
OnCompleteCheck(MessageParcel & data,MessageParcel & reply)430 int32_t CloudMediaPhotoControllerService::OnCompleteCheck(MessageParcel &data, MessageParcel &reply)
431 {
432 int32_t ret = this->photosService_.OnCompleteCheck();
433 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
434 }
435
ReportFailure(MessageParcel & data,MessageParcel & reply)436 int32_t CloudMediaPhotoControllerService::ReportFailure(MessageParcel &data, MessageParcel &reply)
437 {
438 MEDIA_INFO_LOG("enter CloudMediaPhotoControllerService::ReportFailure");
439 ReportFailureReqBody reqBody;
440 int32_t ret = IPC::UserDefineIPC().ReadRequestBody(data, reqBody);
441 if (ret != E_OK) {
442 MEDIA_ERR_LOG("ReportFailure Read Req Error");
443 return IPC::UserDefineIPC().WriteResponseBody(reply, ret);
444 }
445 ret = this->photosService_.ReportFailure(this->processor_.GetReportFailureDto(reqBody));
446 return IPC::UserDefineIPC().WriteResponseBody(reply);
447 }
448 } // namespace OHOS::Media::CloudSync