@@ -7,6 +7,15 @@ extension APIClient: DependencyKey {
7
7
@Dependency ( \. userDefaultsClient) var userDefaultClient
8
8
@Dependency ( \. keychainClient) var keychainClient
9
9
10
+ lazy var session : Session = {
11
+ let configuration = URLSessionConfiguration . af. default
12
+
13
+ configuration. waitsForConnectivity = true
14
+ configuration. timeoutIntervalForResource = 300
15
+
16
+ return Session ( configuration: configuration)
17
+ } ( )
18
+
10
19
var headers : HTTPHeaders {
11
20
var basicHeaders : HTTPHeaders = [
12
21
. userAgent( BLACK_CANDY_USER_AGENT)
@@ -99,7 +108,7 @@ extension APIClient: DependencyKey {
99
108
]
100
109
]
101
110
102
- let request = AF . request (
111
+ let request = session . request (
103
112
requestURL ( " /authentication " ) ,
104
113
method: . post,
105
114
parameters: parameters,
@@ -126,7 +135,7 @@ extension APIClient: DependencyKey {
126
135
} ,
127
136
128
137
logout: {
129
- let request = AF . request (
138
+ let request = session . request (
130
139
requestURL ( " /authentication " ) ,
131
140
method: . delete,
132
141
headers: headers
@@ -140,7 +149,7 @@ extension APIClient: DependencyKey {
140
149
} ,
141
150
142
151
getSongsFromCurrentPlaylist: {
143
- let request = AF . request (
152
+ let request = session . request (
144
153
requestURL ( " /current_playlist/songs " ) ,
145
154
headers: headers
146
155
)
@@ -153,7 +162,7 @@ extension APIClient: DependencyKey {
153
162
} ,
154
163
155
164
addSongToFavorite: { song in
156
- let request = AF . request (
165
+ let request = session . request (
157
166
requestURL ( " /favorite_playlist/songs " ) ,
158
167
method: . post,
159
168
parameters: [ " song_id " : song. id] ,
@@ -169,7 +178,7 @@ extension APIClient: DependencyKey {
169
178
} ,
170
179
171
180
deleteSongInFavorite: { song in
172
- let request = AF . request (
181
+ let request = session . request (
173
182
requestURL ( " /favorite_playlist/songs/ \( song. id) " ) ,
174
183
method: . delete,
175
184
headers: headers
@@ -184,7 +193,7 @@ extension APIClient: DependencyKey {
184
193
} ,
185
194
186
195
deleteSongInCurrentPlaylist: { song in
187
- let request = AF . request (
196
+ let request = session . request (
188
197
requestURL ( " /current_playlist/songs/ \( song. id) " ) ,
189
198
method: . delete,
190
199
headers: headers
@@ -198,7 +207,7 @@ extension APIClient: DependencyKey {
198
207
} ,
199
208
200
209
moveSongInCurrentPlaylist: { songId, destinationSongId in
201
- let request = AF . request (
210
+ let request = session . request (
202
211
requestURL ( " /current_playlist/songs/ \( songId) /move " ) ,
203
212
method: . put,
204
213
parameters: [ " destination_song_id " : destinationSongId] ,
@@ -213,7 +222,7 @@ extension APIClient: DependencyKey {
213
222
} ,
214
223
215
224
getSong: { songId in
216
- let request = AF . request (
225
+ let request = session . request (
217
226
requestURL ( " /songs/ \( songId) " ) ,
218
227
headers: headers
219
228
)
@@ -228,7 +237,7 @@ extension APIClient: DependencyKey {
228
237
getSystemInfo: { serverAddressState in
229
238
let url = " \( serverAddressState. url) /api/v1/system "
230
239
231
- let request = AF . request (
240
+ let request = session . request (
232
241
url,
233
242
headers: headers
234
243
)
@@ -256,7 +265,7 @@ extension APIClient: DependencyKey {
256
265
parameters [ " location " ] = location
257
266
}
258
267
259
- let request = AF . request (
268
+ let request = session . request (
260
269
requestURL ( " /current_playlist/songs " ) ,
261
270
method: . post,
262
271
parameters: parameters,
@@ -271,7 +280,7 @@ extension APIClient: DependencyKey {
271
280
} ,
272
281
273
282
replaceCurrentPlaylistWithAlbumSongs: { albumId in
274
- let request = AF . request (
283
+ let request = session . request (
275
284
requestURL ( " /current_playlist/songs/albums/ \( albumId) " ) ,
276
285
method: . put,
277
286
headers: headers
@@ -285,7 +294,7 @@ extension APIClient: DependencyKey {
285
294
} ,
286
295
287
296
replaceCurrentPlaylistWithPlaylistSongs: { playlistId in
288
- let request = AF . request (
297
+ let request = session . request (
289
298
requestURL ( " /current_playlist/songs/playlists/ \( playlistId) " ) ,
290
299
method: . put,
291
300
headers: headers
0 commit comments