Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ struct RoutineResponseDTO: Decodable {
}

extension FetchChallengesResponseDTO {
func toEntity() -> ChallengeEntity {
func toEntity() -> ProgressChallengeEntity {
.init(
challengeID: challengeId,
title: title,
Expand All @@ -44,7 +44,7 @@ extension FetchChallengesResponseDTO {
}

extension RoutineResponseDTO {
func toEntity() -> RoutineEntity {
func toEntity() -> ProgressRoutineEntity {
.init(
routineID: routineId,
name: name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ struct RoutineToggleResponseDTO: Decodable {
}

extension RoutineToggleResponseDTO {
func toEntity() -> RoutineEntity {
func toEntity() -> ProgressRoutineEntity {
.init(
routineID: routineId,
name: name,
Expand Down

This file was deleted.

19 changes: 12 additions & 7 deletions Cherrish-iOS/Cherrish-iOS/Data/Network/EndPoint/DemoAPI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ enum DemoAPI {
case fetchChallenges(userID: Int)
case advance(userID: Int)
case routineToggle(userID: Int, routineID: Int)
case createChallenge(userID: Int, requestDTO: MakeChallengeRequestDTO)
}

extension DemoAPI: EndPoint {
Expand All @@ -22,7 +23,7 @@ extension DemoAPI: EndPoint {

var path: String {
switch self {
case .fetchChallenges:
case .fetchChallenges, .createChallenge:
return ""
case .advance:
return "/advance-day"
Expand All @@ -35,7 +36,7 @@ extension DemoAPI: EndPoint {
switch self {
case .fetchChallenges:
return .get
case .advance:
case .advance, .createChallenge:
return .post
case .routineToggle(_, let routineID):
return .patch
Expand All @@ -46,7 +47,8 @@ extension DemoAPI: EndPoint {
switch self {
case .fetchChallenges(let userID),
.advance(let userID),
.routineToggle(let userID, _):
.routineToggle(let userID, _),
.createChallenge(let userID, _):
return .withAuth(userID: userID)
}
}
Expand All @@ -55,7 +57,7 @@ extension DemoAPI: EndPoint {
switch self {
case .fetchChallenges:
return URLEncoding.default
case .advance, .routineToggle:
case .advance, .routineToggle, .createChallenge:
return JSONEncoding.default
}
}
Expand All @@ -65,8 +67,11 @@ extension DemoAPI: EndPoint {
}

var bodyParameters: Alamofire.Parameters? {
return nil
switch self {
case .createChallenge(_, let dto):
return try? dto.toDictionary()
case .fetchChallenges, .advance, .routineToggle:
return nil
}
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,4 @@ struct DefaultChallengeRepository: ChallengeInterface {
CherrishLogger.debug(response)
return response.toEntities()
}

func createChallenge(missionIds: Int, routineNames: [String]) async throws {
let userID: Int = userDefaultService.load(key: .userID) ?? 1
let response: () = try await networkService.request(
ChallengeDemoAPI.createChallenge(userID: userID, requestDTO:
.init(
homecareRoutineId: missionIds,
routineNames: routineNames
)
)
)
}
}
20 changes: 16 additions & 4 deletions Cherrish-iOS/Cherrish-iOS/Data/Repository/DemoRepository.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ struct DefaultDemoRepository: DemoInterface {
self.userDefaultService = userDefaultService
}

func fetchChallenges() async throws -> ChallengeEntity {
func fetchChallenges() async throws -> ProgressChallengeEntity {
let userID: Int = userDefaultService.load(key: .userID) ?? 1
let response = try await networkService.request(
DemoAPI.fetchChallenges(userID: userID),
Expand All @@ -29,21 +29,33 @@ struct DefaultDemoRepository: DemoInterface {
return response.toEntity()
}

func advance() async throws -> ChallengeEntity {
func advance() async throws -> ProgressChallengeEntity {
let userID: Int = userDefaultService.load(key: .userID) ?? 1
let response = try await networkService.request(
DemoAPI.advance(userID: userID),
decodingType: FetchChallengesResponseDTO.self
)
return response.toEntity()
}

func toggleRoutine(routineID: Int) async throws -> RoutineEntity {
func toggleRoutine(routineID: Int) async throws -> ProgressRoutineEntity {
let userID: Int = userDefaultService.load(key: .userID) ?? 1
let response = try await networkService.request(
DemoAPI.routineToggle(userID: userID, routineID: routineID),
decodingType: RoutineToggleResponseDTO.self
)
return response.toEntity()
}

func createChallenge(missionIds: Int, routineNames: [String]) async throws {
let userID: Int = userDefaultService.load(key: .userID) ?? 1
let response: () = try await networkService.request(
DemoAPI.createChallenge(userID: userID, requestDTO:
.init(
homecareRoutineId: missionIds,
routineNames: routineNames
)
)
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ final class DomainDependencyAssembler: DependencyAssembler {
}

DIContainer.shared.register(type: CreateChallengeUseCase.self) {
return DefaultCreateChallengeUseCase(repository: challengeRepository)
return DefaultCreateChallengeUseCase(repository: demoRepository)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,4 @@ import Foundation
protocol ChallengeInterface {
func fetchHomecareRoutines() async throws -> [RoutineEntity]
func aiRecommendations(id: Int) async throws -> [ChallengeMissionEntity]
func createChallenge(missionIds: Int, routineNames: [String]) async throws
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
import Foundation

protocol DemoInterface {
func fetchChallenges() async throws -> ChallengeEntity
func advance() async throws -> ChallengeEntity
func toggleRoutine(routineID: Int) async throws -> RoutineEntity
func fetchChallenges() async throws -> ProgressChallengeEntity
func advance() async throws -> ProgressChallengeEntity
func toggleRoutine(routineID: Int) async throws -> ProgressRoutineEntity
func createChallenge(missionIds: Int, routineNames: [String]) async throws
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import Foundation

struct ChallengeEntity {
struct ProgressChallengeEntity {
let challengeID: Int
let title: String
let currentDay: Int
Expand All @@ -16,5 +16,5 @@ struct ChallengeEntity {
let cherryLevelName: String
let progressToNextLevel: Double
let remainingRoutinesToNextLevel: Int
let todayRoutines: [RoutineEntity]
let todayRoutines: [ProgressRoutineEntity]
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import Foundation

struct RoutineEntity {
struct ProgressRoutineEntity {
let routineID: Int
let name: String
let isComplete: Bool
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import Foundation

protocol AdvanceDayUseCase {
func execute() async throws -> ChallengeEntity
func execute() async throws -> ProgressChallengeEntity
}

struct DefaultAdvanceDayUseCase: AdvanceDayUseCase {
Expand All @@ -18,7 +18,7 @@ struct DefaultAdvanceDayUseCase: AdvanceDayUseCase {
self.repository = repository
}

func execute() async throws -> ChallengeEntity {
func execute() async throws -> ProgressChallengeEntity {
try await repository.advance()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ protocol CreateChallengeUseCase {
}

struct DefaultCreateChallengeUseCase: CreateChallengeUseCase {
private let repository: ChallengeInterface
private let repository: DemoInterface

init(repository: ChallengeInterface) {
init(repository: DemoInterface) {
self.repository = repository
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import Foundation

protocol FetchChallengeUseCase {
func execute() async throws -> ChallengeEntity
func execute() async throws -> ProgressChallengeEntity
}

struct DefaultFetchChallengeUseCase: FetchChallengeUseCase {
Expand All @@ -18,7 +18,7 @@ struct DefaultFetchChallengeUseCase: FetchChallengeUseCase {
self.repository = repository
}

func execute() async throws -> ChallengeEntity {
func execute() async throws -> ProgressChallengeEntity {
try await repository.fetchChallenges()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import Foundation

protocol ToggleRoutineUseCase {
func execute(routineID: Int) async throws -> RoutineEntity
func execute(routineID: Int) async throws -> ProgressRoutineEntity
}

struct DefaultToggleRoutineUseCase: ToggleRoutineUseCase {
Expand All @@ -18,7 +18,7 @@ struct DefaultToggleRoutineUseCase: ToggleRoutineUseCase {
self.repository = repository
}

func execute(routineID: Int) async throws -> RoutineEntity {
func execute(routineID: Int) async throws -> ProgressRoutineEntity {
try await repository.toggleRoutine(routineID: routineID)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
import Foundation

final class ChallengeProgressViewModel: ObservableObject {
@Published private(set) var challengeData: ChallengeEntity?
@Published private(set) var challengeData: ProgressChallengeEntity?
@Published private(set) var isLoading: Bool = false
@Published private(set) var errorMessage: String?
@Published private(set) var cherryLevel: CherryLevel = .mong
@Published private(set) var remainMissions: Int = 0
@Published private(set) var progressRate = 0
@Published private(set) var currentDay: Int = 1
@Published private(set) var challengeTitle: String = "챌린지"
@Published private(set) var todayRoutines: [RoutineEntity] = []
@Published private(set) var todayRoutines: [ProgressRoutineEntity] = []

private let fetchChallengeUseCase: FetchChallengeUseCase
private let toggleRoutineUseCase: ToggleRoutineUseCase
Expand Down Expand Up @@ -60,7 +60,7 @@ final class ChallengeProgressViewModel: ObservableObject {
return routine
}

challengeData = ChallengeEntity(
challengeData = ProgressChallengeEntity(
challengeID: currentData.challengeID,
title: currentData.title,
currentDay: currentData.currentDay,
Expand Down