UNPKG

q42-cms-components

Version:

59 lines (48 loc) 1.54 kB
import { ServerStore } from './server-store.js'; class AssetStore extends ServerStore { constructor() { super({ initial: { assets: [], tags: [] }, loaders: { assets: () => this.fetch('/assets/list'), tags: () => this.fetch('/assets/tags').then(tags => [{name: 'hallo'}] || tags) } }); } createAsset(asset, fileData) { var data = new FormData(); data.append("file", fileData); data.append("title", asset.title); data.append("previewData", asset.previewData); if (asset.width && asset.height) { data.append("width", asset.width); data.append("height", asset.height); } return this.fetch('/assets/create', null, { method: 'post', body: data }).then(this.updaters.assets); } updateAsset(asset) { return this.putJson(`/assets/${asset.id}/update`, asset).then(this.updaters.assets); } deleteAsset(asset) { return this.del(`/assets/${asset.id}/delete`, asset).then(this.updaters.assets); } getAssetById(id) { return this.fetch(`/assets/${id}`); } previewUrl(asset) { if (!asset || !asset.contentType || !asset.contentType.startsWith('image/')) return ''; return asset.contentType.startsWith('image/svg') ? asset.blobstoreUrl : asset.imageUrl.startsWith('/image/') // no resized version yet? ? asset.blobstoreUrl : asset.imageUrl; } } export const assetStore = new AssetStore();