Files
mixtape/zero.Web.UI/App/resources/media.js
T

87 lines
2.1 KiB
JavaScript

import Axios from 'axios';
const base = 'media/';
export default {
// get media by id
getById(id)
{
return Axios.get(base + 'getById', { params: { id } }).then(res => Promise.resolve(res.data));
},
// get media by ids
getByIds(ids)
{
return Axios.get(base + 'getByIds', { params: { ids } }).then(res => Promise.resolve(res.data));
},
// get new media model
getEmpty()
{
return Axios.get(base + 'getEmpty').then(res => Promise.resolve(res.data));
},
// get all media items
getAll(query)
{
return Axios.get(base + 'getAll', { params: query }).then(res => Promise.resolve(res.data));
},
// get all media items (including folders)
getListByQuery(query)
{
return Axios.get(base + 'getListByQuery', { params: query }).then(res => Promise.resolve(res.data));
},
// get path to thumbnail source
getImageSource(id)
{
if (!id || id.indexOf('http') === 0)
{
return id;
}
return zero.apiPath + base + 'streamThumbnail/' + id;
},
// save a media
save(model)
{
return Axios.post(base + 'save', model).then(res => Promise.resolve(res.data));
},
// uploads a file
upload(file, folderId, onProgress, isTemporary)
{
var data = new FormData();
data.append('file', file);
data.append('folderId', folderId);
return Axios.post(base + (isTemporary ? 'uploadTemporary' : 'upload'), data, {
onUploadProgress: (progressEvent) =>
{
if (typeof onProgress === 'function')
{
var percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
onProgress(percentCompleted);
}
}
}).then(function (res)
{
return Promise.resolve(res.data);
});
//return Axios.post(base + 'save', model).then(res => Promise.resolve(res.data));
},
move(id, destinationId)
{
return Axios.post(base + 'move', { id, destinationId }).then(res => Promise.resolve(res.data));
},
// deletes a media
delete(id)
{
return Axios.delete(base + 'delete', { params: { id } }).then(res => Promise.resolve(res.data));
}
};