Files
suixinkan_uikit/suixinkan/Features/TravelAlbum/ViewModels/TravelAlbumPreviewActionHandler.swift
T

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("关联图片刷新接口待接入")
}
}