kahuna/public/js/services/api/loader.js (40 lines of code) (raw):
import angular from 'angular';
import {mediaApi} from './media-api';
export var loaderApi = angular.module('kahuna.services.api.loader', [
mediaApi.name
]);
loaderApi.factory('loaderApi', ['mediaApi', function(mediaApi) {
var loaderRoot;
function getLoaderRoot() {
if (! loaderRoot) {
loaderRoot = mediaApi.root.follow('loader');
}
return loaderRoot;
}
function prepare(mediaIdToFilenameMap) {
return getLoaderRoot().follow('prepare').post(mediaIdToFilenameMap);
}
async function getUploadsByCurrentUser() {
return getLoaderRoot().follow('uploadStatuses').get();
}
function load(imageData, uploadInfo) {
const options = {
// We could get the guessed mime-type from the File, but
// it could be wrong, so might as well just send as data
headers: {'Content-Type': 'application/octet-stream'},
// Skip angular's default JSON-converting transform
transformRequest: []
};
return getLoaderRoot().
follow('load', uploadInfo).post(imageData, options);
}
function import_(uri, identifiersMap = {}) {
const identifiers = JSON.stringify(identifiersMap);
return getLoaderRoot().
follow('import', {uri, identifiers}).post();
}
return {
getLoaderRoot,
prepare,
load,
getUploadsByCurrentUser,
import: import_
};
}]);