-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRoutineEndpoint.swift
More file actions
91 lines (83 loc) · 2.39 KB
/
Copy pathRoutineEndpoint.swift
File metadata and controls
91 lines (83 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//
// RoutineEndpoint.swift
// DataSource
//
// Created by 최정인 on 7/30/25.
//
enum RoutineEndpoint {
case createRoutine(routine: RoutineCreationDTO)
case fetchRoutine(routineId: String)
case fetchRoutines(startDate: String, endDate: String)
case updateRoutine(routine: RoutineCreationDTO)
case deleteAllRoutine(routineId: String)
case deleteDailyRoutine(routineId: String)
case updateRoutineCompletion(routines: RoutineCompletionListDTO)
}
extension RoutineEndpoint: Endpoint {
var baseURL: String {
switch self {
case .deleteAllRoutine:
return AppProperties.baseURL + "/api/v1/routines"
default:
return AppProperties.baseURL + "/api/v2/routines"
}
}
var path: String {
switch self {
case .fetchRoutine(let routineId):
"\(baseURL)/\(routineId)"
case .deleteAllRoutine(let routineId):
"\(baseURL)/\(routineId)"
case .deleteDailyRoutine(let routineId):
"\(baseURL)/day/\(routineId)"
case .updateRoutineCompletion:
"\(baseURL)/completions"
default:
baseURL
}
}
var method: HTTPMethod {
switch self {
case .createRoutine, .updateRoutineCompletion:
.post
case .fetchRoutine, .fetchRoutines:
.get
case .updateRoutine:
.patch
case .deleteAllRoutine, .deleteDailyRoutine:
.delete
}
}
var headers: [String : String] {
let headers: [String: String] = [
"Content-Type": "application/json",
"accept": "*/*"
]
return headers
}
var queryParameters: [String : String] {
switch self {
case .fetchRoutines(let startDate, let endDate):
return [
"startDate": startDate,
"endDate": endDate]
default:
return [:]
}
}
var bodyParameters: [String : Any] {
switch self {
case .createRoutine(let routine):
return routine.dictionary
case .updateRoutine(let routine):
return routine.dictionary
case .updateRoutineCompletion(let routines):
return routines.dictionary
default:
return [:]
}
}
var isAuthorized: Bool {
return true
}
}