@@ -118,6 +118,12 @@ CLASS zcl_pacote DEFINITION
118
118
RAISING
119
119
zcx_error.
120
120
121
+ CLASS-METHODS write_request
122
+ IMPORTING
123
+ !write TYPE abap_bool
124
+ RETURNING
125
+ VALUE (result ) TYPE string .
126
+
121
127
ENDCLASS .
122
128
123
129
@@ -246,7 +252,7 @@ CLASS zcl_pacote IMPLEMENTATION.
246
252
attachment-tarball-content_type = ajson->get( '/_attachments/' && attachment-key && '/content_type' ).
247
253
attachment-tarball-data = ajson->get( '/_attachments/' && attachment-key && '/data' ).
248
254
attachment-tarball-length = ajson->get_integer( '/_attachments/' && attachment-key && '/length' ).
249
- INSERT attachment INTO TABLE packument-__attachments .
255
+ INSERT attachment INTO TABLE packument-_attachments .
250
256
ENDLOOP .
251
257
252
258
LOOP AT ajson->members( '/versions' ) INTO version-key.
@@ -255,6 +261,10 @@ CLASS zcl_pacote IMPLEMENTATION.
255
261
INSERT version INTO TABLE packument-versions.
256
262
ENDLOOP .
257
263
264
+ " TODO: Do we need this?
265
+ packument-_id = ajson->get( '/_id' ).
266
+ packument-_rev = ajson->get( '/_rev' ).
267
+
258
268
" TODO: validation of packument
259
269
260
270
result = sort_packument( packument ).
@@ -316,7 +326,7 @@ CLASS zcl_pacote IMPLEMENTATION.
316
326
ENDLOOP .
317
327
318
328
ajson->setx( '/_attachments:{ }' ).
319
- LOOP AT packument-__attachments INTO DATA (attachment ).
329
+ LOOP AT packument-_attachments INTO DATA (attachment ).
320
330
ajson->set(
321
331
iv_path = '_attachments/' && attachment-key && '/content_type'
322
332
iv_val = attachment-tarball-content_type ).
@@ -449,12 +459,21 @@ CLASS zcl_pacote IMPLEMENTATION.
449
459
SORT result-maintainers BY name .
450
460
SORT result-users BY name .
451
461
SORT result-versions BY key .
452
- SORT result-__attachments BY key .
462
+ SORT result-_attachments BY key .
453
463
SORT result-keywords.
454
464
455
465
ENDMETHOD .
456
466
457
467
468
+ METHOD write_request .
469
+
470
+ IF write = abap_true .
471
+ result = '?write=true' .
472
+ ENDIF .
473
+
474
+ ENDMETHOD .
475
+
476
+
458
477
METHOD zif_pacote ~delete .
459
478
460
479
db_persist->delete( pacote-key ).
@@ -508,7 +527,7 @@ CLASS zcl_pacote IMPLEMENTATION.
508
527
METHOD zif_pacote ~manifest .
509
528
510
529
result = request(
511
- url = | { registry } /{ pacote-name } /{ version } |
530
+ url = | { registry } /{ pacote-name } /{ version }{ write_request( write ) } |
512
531
abbreviated = abbreviated )->cdata( ).
513
532
514
533
check_result( result ).
@@ -518,7 +537,7 @@ CLASS zcl_pacote IMPLEMENTATION.
518
537
519
538
METHOD zif_pacote ~packument .
520
539
521
- result = request( | { registry } /{ pacote-name } | )->cdata( ).
540
+ result = request( | { registry } /{ pacote-name }{ write_request( write ) } | )->cdata( ).
522
541
523
542
check_result( result ).
524
543
zif_pacote~set_json( result ).
@@ -557,8 +576,13 @@ CLASS zcl_pacote IMPLEMENTATION.
557
576
558
577
METHOD zif_pacote ~tarball .
559
578
560
- " TODO: Error check (HTTP status)
561
- result = request( filename )->data( ).
579
+ DATA (response ) = request( filename ).
580
+
581
+ IF response->is_ok( ) = abap_false .
582
+ check_result( response->cdata( ) ).
583
+ ELSE .
584
+ result = response->data( ).
585
+ ENDIF .
562
586
563
587
ENDMETHOD .
564
588
ENDCLASS .
0 commit comments