30 lines
1.0 KiB
Swift
30 lines
1.0 KiB
Swift
//
|
|
// TravelAlbumPreviewActionHandler.swift
|
|
// suixinkan
|
|
//
|
|
|
|
import Foundation
|
|
|
|
/// 图片预览页业务操作实现,负责将底部操作转发到旅拍相册服务。
|
|
final class TravelAlbumPreviewActionHandler: TravelAlbumPreviewActionHandling {
|
|
private let api: any TravelAlbumServing
|
|
|
|
/// 使用旅拍相册服务创建操作处理器。
|
|
init(api: any TravelAlbumServing) {
|
|
self.api = api
|
|
}
|
|
|
|
/// 调用素材删除接口,仅在服务端确认成功后返回成功结果。
|
|
func deleteProject(originalMaterialId: Int) async -> TravelAlbumPreviewActionResult {
|
|
do {
|
|
try await api.batchDeleteMaterials(ids: [originalMaterialId])
|
|
return .success("删除成功")
|
|
} catch is CancellationError {
|
|
return .failure("删除已取消")
|
|
} catch {
|
|
let message = error.localizedDescription.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
return .failure(message.isEmpty ? "删除失败" : message)
|
|
}
|
|
}
|
|
}
|