feat(character-detail, gallery): 캐릭터 상세 갤러리 - 이미지 리스트 API 연동

CharacterDetailView에 갤러리 탭을 추가하고, 갤러리 화면/상태 관리/네트워킹을
구현했습니다. 소유/미소유 UI, 페이지네이션, 이미지 뷰어, 오류 토스트를 포함합니다.

TODO: 이미지 구매 API 연동
This commit is contained in:
Yu Sung
2025-09-02 03:47:41 +09:00
parent 392184fd34
commit 7c031daebf
7 changed files with 346 additions and 36 deletions

View File

@@ -11,6 +11,7 @@ import Moya
enum CharacterApi {
case getCharacterHome
case getCharacterDetail(characterId: Int)
case getCharacterImageList(characterId: Int, page: Int, size: Int)
}
extension CharacterApi: TargetType {
@@ -23,12 +24,30 @@ extension CharacterApi: TargetType {
case .getCharacterDetail(let characterId):
return "/api/chat/character/\(characterId)"
case .getCharacterImageList:
return "/api/chat/character/image/list"
}
}
var method: Moya.Method { .get }
var task: Moya.Task { .requestPlain }
var task: Moya.Task {
switch self {
case .getCharacterHome, .getCharacterDetail:
return .requestPlain
case .getCharacterImageList(let characterId, let page, let size):
return .requestParameters(
parameters: [
"characterId": characterId,
"page": page,
"size": size
],
encoding: URLEncoding.queryString
)
}
}
var headers: [String : String]? {
["Authorization": "Bearer \(UserDefaults.string(forKey: UserDefaultsKey.token))"]