@@ -3,6 +3,7 @@ package advancedbilling
33import (
44 "context"
55 "fmt"
6+ "github.com/apimatic/go-core-runtime/https"
67 "github.com/apimatic/go-core-runtime/utilities"
78 "github.com/maxio-com/ab-golang-sdk/errors"
89 "github.com/maxio-com/ab-golang-sdk/models"
@@ -37,7 +38,10 @@ func (a *APIExportsController) ListExportedProformaInvoices(
3738 "GET" ,
3839 fmt .Sprintf ("/api_exports/proforma_invoices/%v/rows.json" , batchId ),
3940 )
40- req .Authenticate (true )
41+ req .Authenticate (NewAuth ("BasicAuth" ))
42+ req .AppendErrors (map [string ]https.ErrorBuilder [error ]{
43+ "404" : {TemplatedMessage : "Not Found:'{$response.body}'" },
44+ })
4145 if perPage != nil {
4246 req .QueryParam ("per_page" , * perPage )
4347 }
@@ -50,19 +54,8 @@ func (a *APIExportsController) ListExportedProformaInvoices(
5054 if err != nil {
5155 return models .NewApiResponse (result , resp ), err
5256 }
53- err = validateResponse (* resp )
54- if err != nil {
55- return models .NewApiResponse (result , resp ), err
56- }
5757
5858 result , err = utilities.DecodeResults [[]models.ProformaInvoice ](decoder )
59- if err != nil {
60- return models .NewApiResponse (result , resp ), err
61- }
62-
63- if resp .StatusCode == 404 {
64- err = errors .NewApiError (404 , "Not Found" )
65- }
6659 return models .NewApiResponse (result , resp ), err
6760}
6861
@@ -83,7 +76,10 @@ func (a *APIExportsController) ListExportedInvoices(
8376 "GET" ,
8477 fmt .Sprintf ("/api_exports/invoices/%v/rows.json" , batchId ),
8578 )
86- req .Authenticate (true )
79+ req .Authenticate (NewAuth ("BasicAuth" ))
80+ req .AppendErrors (map [string ]https.ErrorBuilder [error ]{
81+ "404" : {TemplatedMessage : "Not Found:'{$response.body}'" },
82+ })
8783 if perPage != nil {
8884 req .QueryParam ("per_page" , * perPage )
8985 }
@@ -96,19 +92,8 @@ func (a *APIExportsController) ListExportedInvoices(
9692 if err != nil {
9793 return models .NewApiResponse (result , resp ), err
9894 }
99- err = validateResponse (* resp )
100- if err != nil {
101- return models .NewApiResponse (result , resp ), err
102- }
10395
10496 result , err = utilities.DecodeResults [[]models.Invoice ](decoder )
105- if err != nil {
106- return models .NewApiResponse (result , resp ), err
107- }
108-
109- if resp .StatusCode == 404 {
110- err = errors .NewApiError (404 , "Not Found" )
111- }
11297 return models .NewApiResponse (result , resp ), err
11398}
11499
@@ -129,7 +114,10 @@ func (a *APIExportsController) ListExportedSubscriptions(
129114 "GET" ,
130115 fmt .Sprintf ("/api_exports/subscriptions/%v/rows.json" , batchId ),
131116 )
132- req .Authenticate (true )
117+ req .Authenticate (NewAuth ("BasicAuth" ))
118+ req .AppendErrors (map [string ]https.ErrorBuilder [error ]{
119+ "404" : {TemplatedMessage : "Not Found:'{$response.body}'" },
120+ })
133121 if perPage != nil {
134122 req .QueryParam ("per_page" , * perPage )
135123 }
@@ -142,19 +130,8 @@ func (a *APIExportsController) ListExportedSubscriptions(
142130 if err != nil {
143131 return models .NewApiResponse (result , resp ), err
144132 }
145- err = validateResponse (* resp )
146- if err != nil {
147- return models .NewApiResponse (result , resp ), err
148- }
149133
150134 result , err = utilities.DecodeResults [[]models.Subscription ](decoder )
151- if err != nil {
152- return models .NewApiResponse (result , resp ), err
153- }
154-
155- if resp .StatusCode == 404 {
156- err = errors .NewApiError (404 , "Not Found" )
157- }
158135 return models .NewApiResponse (result , resp ), err
159136}
160137
@@ -167,28 +144,18 @@ func (a *APIExportsController) ExportProformaInvoices(ctx context.Context) (
167144 models.ApiResponse [models.BatchJobResponse ],
168145 error ) {
169146 req := a .prepareRequest (ctx , "POST" , "/api_exports/proforma_invoices.json" )
170- req .Authenticate (true )
147+ req .Authenticate (NewAuth ("BasicAuth" ))
148+ req .AppendErrors (map [string ]https.ErrorBuilder [error ]{
149+ "404" : {TemplatedMessage : "Not Found:'{$response.body}'" },
150+ "409" : {TemplatedMessage : "HTTP Response Not OK. Status code: {$statusCode}. Response: '{$response.body}'." , Unmarshaller : errors .NewSingleErrorResponse },
151+ })
171152 var result models.BatchJobResponse
172153 decoder , resp , err := req .CallAsJson ()
173154 if err != nil {
174155 return models .NewApiResponse (result , resp ), err
175156 }
176- err = validateResponse (* resp )
177- if err != nil {
178- return models .NewApiResponse (result , resp ), err
179- }
180157
181158 result , err = utilities.DecodeResults [models.BatchJobResponse ](decoder )
182- if err != nil {
183- return models .NewApiResponse (result , resp ), err
184- }
185-
186- if resp .StatusCode == 404 {
187- err = errors .NewApiError (404 , "Not Found" )
188- }
189- if resp .StatusCode == 409 {
190- err = errors .NewSingleErrorResponse (409 , "Conflict" )
191- }
192159 return models .NewApiResponse (result , resp ), err
193160}
194161
@@ -200,28 +167,18 @@ func (a *APIExportsController) ExportInvoices(ctx context.Context) (
200167 models.ApiResponse [models.BatchJobResponse ],
201168 error ) {
202169 req := a .prepareRequest (ctx , "POST" , "/api_exports/invoices.json" )
203- req .Authenticate (true )
170+ req .Authenticate (NewAuth ("BasicAuth" ))
171+ req .AppendErrors (map [string ]https.ErrorBuilder [error ]{
172+ "404" : {TemplatedMessage : "Not Found:'{$response.body}'" },
173+ "409" : {TemplatedMessage : "HTTP Response Not OK. Status code: {$statusCode}. Response: '{$response.body}'." , Unmarshaller : errors .NewSingleErrorResponse },
174+ })
204175 var result models.BatchJobResponse
205176 decoder , resp , err := req .CallAsJson ()
206177 if err != nil {
207178 return models .NewApiResponse (result , resp ), err
208179 }
209- err = validateResponse (* resp )
210- if err != nil {
211- return models .NewApiResponse (result , resp ), err
212- }
213180
214181 result , err = utilities.DecodeResults [models.BatchJobResponse ](decoder )
215- if err != nil {
216- return models .NewApiResponse (result , resp ), err
217- }
218-
219- if resp .StatusCode == 404 {
220- err = errors .NewApiError (404 , "Not Found" )
221- }
222- if resp .StatusCode == 409 {
223- err = errors .NewSingleErrorResponse (409 , "Conflict" )
224- }
225182 return models .NewApiResponse (result , resp ), err
226183}
227184
@@ -233,25 +190,17 @@ func (a *APIExportsController) ExportSubscriptions(ctx context.Context) (
233190 models.ApiResponse [models.BatchJobResponse ],
234191 error ) {
235192 req := a .prepareRequest (ctx , "POST" , "/api_exports/subscriptions.json" )
236- req .Authenticate (true )
193+ req .Authenticate (NewAuth ("BasicAuth" ))
194+ req .AppendErrors (map [string ]https.ErrorBuilder [error ]{
195+ "409" : {TemplatedMessage : "HTTP Response Not OK. Status code: {$statusCode}. Response: '{$response.body}'." , Unmarshaller : errors .NewSingleErrorResponse },
196+ })
237197 var result models.BatchJobResponse
238198 decoder , resp , err := req .CallAsJson ()
239199 if err != nil {
240200 return models .NewApiResponse (result , resp ), err
241201 }
242- err = validateResponse (* resp )
243- if err != nil {
244- return models .NewApiResponse (result , resp ), err
245- }
246202
247203 result , err = utilities.DecodeResults [models.BatchJobResponse ](decoder )
248- if err != nil {
249- return models .NewApiResponse (result , resp ), err
250- }
251-
252- if resp .StatusCode == 409 {
253- err = errors .NewSingleErrorResponse (409 , "Conflict" )
254- }
255204 return models .NewApiResponse (result , resp ), err
256205}
257206
@@ -269,26 +218,18 @@ func (a *APIExportsController) ReadProformaInvoicesExport(
269218 "GET" ,
270219 fmt .Sprintf ("/api_exports/proforma_invoices/%v.json" , batchId ),
271220 )
272- req .Authenticate (true )
221+ req .Authenticate (NewAuth ("BasicAuth" ))
222+ req .AppendErrors (map [string ]https.ErrorBuilder [error ]{
223+ "404" : {TemplatedMessage : "Not Found:'{$response.body}'" },
224+ })
273225
274226 var result models.BatchJobResponse
275227 decoder , resp , err := req .CallAsJson ()
276228 if err != nil {
277229 return models .NewApiResponse (result , resp ), err
278230 }
279- err = validateResponse (* resp )
280- if err != nil {
281- return models .NewApiResponse (result , resp ), err
282- }
283231
284232 result , err = utilities.DecodeResults [models.BatchJobResponse ](decoder )
285- if err != nil {
286- return models .NewApiResponse (result , resp ), err
287- }
288-
289- if resp .StatusCode == 404 {
290- err = errors .NewApiError (404 , "Not Found" )
291- }
292233 return models .NewApiResponse (result , resp ), err
293234}
294235
@@ -306,26 +247,18 @@ func (a *APIExportsController) ReadInvoicesExport(
306247 "GET" ,
307248 fmt .Sprintf ("/api_exports/invoices/%v.json" , batchId ),
308249 )
309- req .Authenticate (true )
250+ req .Authenticate (NewAuth ("BasicAuth" ))
251+ req .AppendErrors (map [string ]https.ErrorBuilder [error ]{
252+ "404" : {TemplatedMessage : "Not Found:'{$response.body}'" },
253+ })
310254
311255 var result models.BatchJobResponse
312256 decoder , resp , err := req .CallAsJson ()
313257 if err != nil {
314258 return models .NewApiResponse (result , resp ), err
315259 }
316- err = validateResponse (* resp )
317- if err != nil {
318- return models .NewApiResponse (result , resp ), err
319- }
320260
321261 result , err = utilities.DecodeResults [models.BatchJobResponse ](decoder )
322- if err != nil {
323- return models .NewApiResponse (result , resp ), err
324- }
325-
326- if resp .StatusCode == 404 {
327- err = errors .NewApiError (404 , "Not Found" )
328- }
329262 return models .NewApiResponse (result , resp ), err
330263}
331264
@@ -343,25 +276,17 @@ func (a *APIExportsController) ReadSubscriptionsExport(
343276 "GET" ,
344277 fmt .Sprintf ("/api_exports/subscriptions/%v.json" , batchId ),
345278 )
346- req .Authenticate (true )
279+ req .Authenticate (NewAuth ("BasicAuth" ))
280+ req .AppendErrors (map [string ]https.ErrorBuilder [error ]{
281+ "404" : {TemplatedMessage : "Not Found:'{$response.body}'" },
282+ })
347283
348284 var result models.BatchJobResponse
349285 decoder , resp , err := req .CallAsJson ()
350286 if err != nil {
351287 return models .NewApiResponse (result , resp ), err
352288 }
353- err = validateResponse (* resp )
354- if err != nil {
355- return models .NewApiResponse (result , resp ), err
356- }
357289
358290 result , err = utilities.DecodeResults [models.BatchJobResponse ](decoder )
359- if err != nil {
360- return models .NewApiResponse (result , resp ), err
361- }
362-
363- if resp .StatusCode == 404 {
364- err = errors .NewApiError (404 , "Not Found" )
365- }
366291 return models .NewApiResponse (result , resp ), err
367292}
0 commit comments