33function apiclient ( baseurl ) {
44 baseurl = baseurl || ''
55
6- function request ( url , method , opts , successHandler , errorHandler ) {
6+ function createfetcher ( url , method , opts ) {
77 let requesturl = baseurl + url
88
99 const requestopts = {
@@ -21,41 +21,60 @@ function apiclient (baseurl) {
2121 }
2222 }
2323
24- fetch ( requesturl , requestopts )
24+ return fetch ( requesturl , requestopts )
2525 . then ( function ( response ) {
2626 // Replicate axios behaviour of a non-ok response being an error
2727 if ( ! response . ok ) {
2828 const errorvalue = new Error ( 'Error status returned:' + response . status )
2929 errorvalue . response = response
3030 throw errorvalue
3131 } else {
32- // Only .text() is okay with an empty response. Later, we will parse it
33- // into valid json.
34- // This is a promise, so gets taken care of in the next .then
35- return response . text ( )
32+ return response
3633 }
3734 } )
38- . then ( function ( responseData ) {
39- // Replicate axios behaviour of response body being sent back in
40- // data property
41- const responseBody = responseData ? { data : JSON . parse ( responseData ) } : { }
42- successHandler ( responseBody )
43- } )
44- . catch ( function ( error ) {
45- errorHandler ( error )
46- } )
4735 }
4836
49- function get ( url , opts , successHandler , errorHandler , progressHandler ) {
50- request ( url , 'GET' , opts , successHandler , errorHandler )
37+ function requestJSON ( url , method , opts , successHandler , errorHandler ) {
38+ const fetcher = createfetcher ( url , method , opts )
39+ fetcher . then ( function ( response ) {
40+ // Only .text() is okay with an empty response. Later, we will parse it
41+ // into valid json.
42+ // This is a promise, so gets taken care of in the next .then
43+ return response . text ( )
44+ } ) . then ( function ( responseData ) {
45+ // Replicate axios behaviour of response body being sent back in
46+ // data property
47+ const responseBody = responseData ? { data : JSON . parse ( responseData ) } : { }
48+ successHandler ( responseBody )
49+ } ) . catch ( function ( error ) {
50+ errorHandler ( error )
51+ } )
52+ }
53+
54+ function requestBuffer ( url , method , opts , successHandler , errorHandler ) {
55+ const fetcher = createfetcher ( url , method , opts )
56+ fetcher . then ( function ( response ) {
57+ return response . arrayBuffer ( )
58+ } ) . then ( function ( responseData ) {
59+ // Replicate axios behaviour of response body being sent back in
60+ // data property
61+ const responseBody = responseData ? { data : responseData } : { }
62+ successHandler ( responseBody )
63+ } ) . catch ( function ( error ) {
64+ errorHandler ( error )
65+ } )
66+ }
67+
68+ function get ( url , opts , successHandler , errorHandler ) {
69+ requestJSON ( url , 'GET' , opts , successHandler , errorHandler )
5170 }
5271
5372 function post ( url , opts , successHandler , errorHandler ) {
54- request ( url , 'POST' , opts , successHandler , errorHandler )
73+ requestJSON ( url , 'POST' , opts , successHandler , errorHandler )
5574 }
5675
5776 function deleteverb ( url , opts , successHandler , errorHandler ) {
58- request ( url , 'DELETE' , opts , successHandler , errorHandler )
77+ requestJSON ( url , 'DELETE' , opts , successHandler , errorHandler )
5978 }
6079
6180 this . listcontainers = function ( opts , successHandler , errorHandler ) {
@@ -83,12 +102,12 @@ function apiclient (baseurl) {
83102 get ( '/containers/' + name + '/top' , opts , successHandler , errorHandler )
84103 }
85104
86- this . logscontainer = function ( name , opts , successHandler , errorHandler , progressHandler ) {
105+ this . logscontainer = function ( name , opts , successHandler , errorHandler ) {
87106 opts = opts || { }
88107 opts . stdout = true
89108 opts . stderr = true
90109
91- get ( '/containers/' + name + '/logs' , opts , successHandler , errorHandler , progressHandler )
110+ requestBuffer ( '/containers/' + name + '/logs' , 'GET' , opts , successHandler , errorHandler )
92111 }
93112
94113 this . startcontainer = function ( name , opts , successHandler , errorHandler ) {
0 commit comments