portainer/app/docker/rest/image.js

58 lines
2.1 KiB
JavaScript

import { deleteImageHandler, jsonObjectsToArrayHandler } from './response/handlers';
import { imageGetResponse } from './response/image';
angular.module('portainer.docker').factory('Image', [
'$resource',
'API_ENDPOINT_ENDPOINTS',
'EndpointProvider',
'HttpRequestHelper',
function ImageFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider, HttpRequestHelper) {
'use strict';
return $resource(
API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/images/:id/:action',
{
endpointId: EndpointProvider.endpointID,
},
{
query: { method: 'GET', params: { all: 0, action: 'json' }, isArray: true },
get: { method: 'GET', params: { action: 'json' } },
search: { method: 'GET', params: { action: 'search' } },
history: { method: 'GET', params: { action: 'history' }, isArray: true },
insert: { method: 'POST', params: { id: '@id', action: 'insert' } },
tag: { method: 'POST', params: { id: '@id', action: 'tag', force: 0, repo: '@repo' }, ignoreLoadingBar: true },
inspect: { method: 'GET', params: { id: '@id', action: 'json' } },
push: {
method: 'POST',
params: { action: 'push', id: '@imageName' },
isArray: true,
transformResponse: jsonObjectsToArrayHandler,
headers: { 'X-Registry-Auth': HttpRequestHelper.registryAuthenticationHeader },
ignoreLoadingBar: true,
},
create: {
method: 'POST',
params: { action: 'create', fromImage: '@fromImage' },
isArray: true,
transformResponse: jsonObjectsToArrayHandler,
headers: { 'X-Registry-Auth': HttpRequestHelper.registryAuthenticationHeader },
ignoreLoadingBar: true,
},
download: {
method: 'GET',
params: { action: 'get', names: '@names' },
transformResponse: imageGetResponse,
responseType: 'blob',
ignoreLoadingBar: true,
},
remove: {
method: 'DELETE',
params: { id: '@id', force: '@force' },
isArray: true,
transformResponse: deleteImageHandler,
},
}
);
},
]);