66 lines
1.3 KiB
JavaScript
66 lines
1.3 KiB
JavaScript
import { collection, get, post } from '../helpers/request.ts';
|
|
|
|
const base = 'media/';
|
|
|
|
const upload = async (file, folderId, onProgress, isTemporary) =>
|
|
{
|
|
var data = new FormData();
|
|
data.append('file', file);
|
|
data.append('folderId', folderId);
|
|
|
|
return await post(base + (isTemporary ? 'uploadTemporary' : 'upload'), data, {
|
|
onUploadProgress: (progressEvent) =>
|
|
{
|
|
if (typeof onProgress === 'function')
|
|
{
|
|
var percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
|
|
onProgress(percentCompleted);
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
|
|
const getImageSource = (id, size, shared) =>
|
|
{
|
|
if (!id || id.indexOf('http') === 0)
|
|
{
|
|
return id;
|
|
}
|
|
if (id.indexOf('url://') === 0)
|
|
{
|
|
return id.substring(6) + "?preset=productListing";
|
|
}
|
|
if (Array.isArray(id))
|
|
{
|
|
id = id[0];
|
|
}
|
|
|
|
if (size === true)
|
|
{
|
|
size = 'thumbnail';
|
|
}
|
|
else if (size === false)
|
|
{
|
|
size = 'original';
|
|
}
|
|
else if (!size)
|
|
{
|
|
size = 'preview';
|
|
}
|
|
|
|
return zero.apiPath + base + 'getSource/?id=' + id + '&size=' + size + (shared === true ? '&scope=shared' : '');
|
|
};
|
|
|
|
|
|
export default {
|
|
...collection(base),
|
|
|
|
getListByQuery: async query => await get(base + 'getListByQuery', { params: query }),
|
|
|
|
move: async (id, destinationId) => await post(base + 'move', { id, destinationId }),
|
|
|
|
upload,
|
|
|
|
getImageSource
|
|
}; |