40 lines
1.4 KiB
Swift
40 lines
1.4 KiB
Swift
//
|
|
// TravelAlbumPreviewActionHandler.swift
|
|
// suixinkan
|
|
//
|
|
|
|
import Foundation
|
|
|
|
/// 图片预览页业务操作实现,负责将底部操作转发到旅拍相册服务。
|
|
final class TravelAlbumPreviewActionHandler: TravelAlbumPreviewActionHandling {
|
|
private let api: any TravelAlbumServing
|
|
|
|
/// 使用旅拍相册服务创建操作处理器。
|
|
init(api: any TravelAlbumServing) {
|
|
self.api = api
|
|
}
|
|
|
|
/// AI 修图仍由相册选择态的模板流程发起。
|
|
func requestAIRetouch(originalMaterialId: Int) async -> TravelAlbumPreviewActionResult {
|
|
.unavailable("请在相册中选择照片后使用AI修图")
|
|
}
|
|
|
|
/// 调用素材删除接口,仅在服务端确认成功后返回成功结果。
|
|
func deleteProject(originalMaterialId: Int) async -> TravelAlbumPreviewActionResult {
|
|
do {
|
|
try await api.deleteMaterial(id: originalMaterialId)
|
|
return .success("删除成功")
|
|
} catch is CancellationError {
|
|
return .failure("删除已取消")
|
|
} catch {
|
|
let message = error.localizedDescription.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
return .failure(message.isEmpty ? "删除失败" : message)
|
|
}
|
|
}
|
|
|
|
/// 刷新关联结果图接口尚未提供。
|
|
func refreshProject(originalMaterialId: Int) async -> TravelAlbumPreviewActionResult {
|
|
.unavailable("关联图片刷新接口待接入")
|
|
}
|
|
}
|