@@ -4,10 +4,7 @@ import com.nativeapptemplate.nativeapptemplatefree.datastore.NatPreferencesDataS
44import com.nativeapptemplate.nativeapptemplatefree.model.*
55import com.nativeapptemplate.nativeapptemplatefree.network.Dispatcher
66import com.nativeapptemplate.nativeapptemplatefree.network.NatDispatchers
7- import com.skydoves.sandwich.message
8- import com.skydoves.sandwich.retrofit.serialization.deserializeErrorBody
9- import com.skydoves.sandwich.suspendOnFailure
10- import com.skydoves.sandwich.suspendOnSuccess
7+ import com.nativeapptemplate.nativeapptemplatefree.network.emitApiResponse
118import kotlinx.coroutines.CoroutineDispatcher
129import kotlinx.coroutines.flow.first
1310import kotlinx.coroutines.flow.flow
@@ -27,27 +24,7 @@ class ItemTagRepositoryImpl @Inject constructor(
2724 mtcPreferencesDataSource.userData.first().accountId,
2825 shopId,
2926 )
30-
31- response.suspendOnSuccess {
32- emit(data)
33- }.suspendOnFailure {
34- val nativeAppTemplateApiError: NativeAppTemplateApiError ?
35-
36- try {
37- nativeAppTemplateApiError = response.deserializeErrorBody<ItemTags , NativeAppTemplateApiError >()
38- } catch (exception: Exception ) {
39- val message = " Not processable error(${message()} )."
40- throw Exception (message)
41- }
42-
43- if (nativeAppTemplateApiError != null ) {
44- val message = " ${nativeAppTemplateApiError.message} [Status: ${nativeAppTemplateApiError.code} ]"
45- throw Exception (message)
46- } else {
47- val message = " Not processable error(${message()} )."
48- throw Exception (message)
49- }
50- }
27+ emitApiResponse(response)
5128 }.flowOn(ioDispatcher)
5229
5330 override fun getItemTag (
@@ -57,177 +34,51 @@ class ItemTagRepositoryImpl @Inject constructor(
5734 mtcPreferencesDataSource.userData.first().accountId,
5835 id,
5936 )
60-
61- response.suspendOnSuccess {
62- emit(data)
63- }.suspendOnFailure {
64- val nativeAppTemplateApiError: NativeAppTemplateApiError ?
65-
66- try {
67- nativeAppTemplateApiError = response.deserializeErrorBody<ItemTag , NativeAppTemplateApiError >()
68- } catch (exception: Exception ) {
69- val message = " Not processable error(${message()} )."
70- throw Exception (message)
71- }
72-
73- if (nativeAppTemplateApiError != null ) {
74- val message = " ${nativeAppTemplateApiError.message} [Status: ${nativeAppTemplateApiError.code} ]"
75- throw Exception (message)
76- } else {
77- val message = " Not processable error(${message()} )."
78- throw Exception (message)
79- }
80- }
37+ emitApiResponse(response)
8138 }.flowOn(ioDispatcher)
8239
8340 override fun createItemTag (
8441 shopId : String ,
8542 itemTagBody : ItemTagBody ,
8643 ) = flow {
87- var itemTag: ItemTag
88-
8944 val response = api.createItemTag(
9045 mtcPreferencesDataSource.userData.first().accountId,
9146 shopId,
9247 itemTagBody,
9348 )
94-
95- response.suspendOnSuccess {
96- itemTag = data
97- emit(itemTag)
98- }.suspendOnFailure {
99- val nativeAppTemplateApiError: NativeAppTemplateApiError ?
100-
101- try {
102- nativeAppTemplateApiError = response.deserializeErrorBody<ItemTag , NativeAppTemplateApiError >()
103- } catch (exception: Exception ) {
104- val message = " Not processable error(${message()} )."
105- throw Exception (message)
106- }
107-
108- if (nativeAppTemplateApiError != null ) {
109- val message = " ${nativeAppTemplateApiError.message} [Status: ${nativeAppTemplateApiError.code} ]"
110- throw Exception (message)
111- } else {
112- val message = " Not processable error(${message()} )."
113- throw Exception (message)
114- }
115- }
49+ emitApiResponse(response)
11650 }.flowOn(ioDispatcher)
11751
11852 override fun updateItemTag (
11953 id : String ,
12054 itemTagBody : ItemTagBody ,
12155 ) = flow {
122- var itemTag: ItemTag
123-
12456 val response = api.updateItemTag(
12557 mtcPreferencesDataSource.userData.first().accountId,
12658 id,
12759 itemTagBody,
12860 )
129-
130- response.suspendOnSuccess {
131- itemTag = data
132- emit(itemTag)
133- }.suspendOnFailure {
134- val nativeAppTemplateApiError: NativeAppTemplateApiError ?
135-
136- try {
137- nativeAppTemplateApiError = response.deserializeErrorBody<ItemTag , NativeAppTemplateApiError >()
138- } catch (exception: Exception ) {
139- val message = " Not processable error(${message()} )."
140- throw Exception (message)
141- }
142-
143- if (nativeAppTemplateApiError != null ) {
144- val message = " ${nativeAppTemplateApiError.message} [Status: ${nativeAppTemplateApiError.code} ]"
145- throw Exception (message)
146- } else {
147- val message = " Not processable error(${message()} )."
148- throw Exception (message)
149- }
150- }
61+ emitApiResponse(response)
15162 }.flowOn(ioDispatcher)
15263
15364 override fun deleteItemTag (
15465 id : String ,
15566 ) = flow {
15667 val response = api.deleteItemTag(mtcPreferencesDataSource.userData.first().accountId, id)
157-
158- response.suspendOnSuccess {
159- emit(true )
160- }.suspendOnFailure {
161- val nativeAppTemplateApiError: NativeAppTemplateApiError ?
162-
163- try {
164- nativeAppTemplateApiError = response.deserializeErrorBody<Status , NativeAppTemplateApiError >()
165- } catch (exception: Exception ) {
166- val message = " Not processable error(${message()} )."
167- throw Exception (message)
168- }
169-
170- if (nativeAppTemplateApiError != null ) {
171- val message = " ${nativeAppTemplateApiError.message} [Status: ${nativeAppTemplateApiError.code} ]"
172- throw Exception (message)
173- } else {
174- val message = " Not processable error(${message()} )."
175- throw Exception (message)
176- }
177- }
68+ emitApiResponse<Status , Boolean >(response) { true }
17869 }.flowOn(ioDispatcher)
17970
18071 override fun completeItemTag (
18172 id : String ,
18273 ) = flow {
18374 val response = api.completeItemTag(mtcPreferencesDataSource.userData.first().accountId, id)
184-
185- response.suspendOnSuccess {
186- emit(data)
187- }.suspendOnFailure {
188- val nativeAppTemplateApiError: NativeAppTemplateApiError ?
189-
190- try {
191- nativeAppTemplateApiError = response.deserializeErrorBody<ItemTag , NativeAppTemplateApiError >()
192- } catch (exception: Exception ) {
193- val message = " Not processable error(${message()} )."
194- throw Exception (message)
195- }
196-
197- if (nativeAppTemplateApiError != null ) {
198- val message = " ${nativeAppTemplateApiError.message} [Status: ${nativeAppTemplateApiError.code} ]"
199- throw Exception (message)
200- } else {
201- val message = " Not processable error(${message()} )."
202- throw Exception (message)
203- }
204- }
75+ emitApiResponse(response)
20576 }.flowOn(ioDispatcher)
20677
20778 override fun resetItemTag (
20879 id : String ,
20980 ) = flow {
21081 val response = api.resetItemTag(mtcPreferencesDataSource.userData.first().accountId, id)
211-
212- response.suspendOnSuccess {
213- emit(data)
214- }.suspendOnFailure {
215- val nativeAppTemplateApiError: NativeAppTemplateApiError ?
216-
217- try {
218- nativeAppTemplateApiError = response.deserializeErrorBody<ItemTag , NativeAppTemplateApiError >()
219- } catch (exception: Exception ) {
220- val message = " Not processable error(${message()} )."
221- throw Exception (message)
222- }
223-
224- if (nativeAppTemplateApiError != null ) {
225- val message = " ${nativeAppTemplateApiError.message} [Status: ${nativeAppTemplateApiError.code} ]"
226- throw Exception (message)
227- } else {
228- val message = " Not processable error(${message()} )."
229- throw Exception (message)
230- }
231- }
82+ emitApiResponse(response)
23283 }.flowOn(ioDispatcher)
23384}
0 commit comments