public/video-ui/src/services/TargetingApi.js (52 lines of code) (raw):
import {getStore} from '../util/storeAccessor';
import { pandaReqwest } from './pandaReqwest';
import moment from 'moment';
const getFortnight = () => moment().add('days', 14).valueOf();
export default class TargetingApi {
static get targetingUrl() {
return getStore().getState().config.targetingUrl;
}
static createTarget({id, title, expiryDate}) {
const data = {
title,
tagPaths: [],
url : `/atom/media/${id}`,
activeUntil: expiryDate || getFortnight()
};
const params = {
url: `${TargetingApi.targetingUrl}/api/suggestions`,
method: 'post',
data,
crossOrigin: true,
withCredentials: true
};
return pandaReqwest(params);
}
static updateTarget({ id, ...data }) {
const params = {
url: `${TargetingApi.targetingUrl}/api/suggestions/${id}`,
method: 'put',
data,
crossOrigin: true,
withCredentials: true
};
return pandaReqwest(params);
}
static deleteTarget({id}) {
const params = {
method: 'delete',
url: `${TargetingApi.targetingUrl}/api/suggestions/${id}`,
crossOrigin: true,
withCredentials: true
};
return pandaReqwest(params);
}
static getTargets({id}) {
const params = {
url: `${TargetingApi.targetingUrl}/api/suggestions/search?url=/atom/media/${id}`,
crossOrigin: true,
withCredentials: true
};
return pandaReqwest(params);
}
}