2022-04-15 04:07:11 +00:00
|
|
|
import { checkResponse, fetchWithTimeout } from './fetchUtil';
|
|
|
|
|
2022-04-25 17:29:22 +00:00
|
|
|
export async function addContactChannelTopic(server, token, channelId, message, assets ) {
|
2022-04-15 04:07:11 +00:00
|
|
|
|
|
|
|
let subject = { data: JSON.stringify(message, (key, value) => {
|
2022-04-27 17:33:51 +00:00
|
|
|
if (value !== null) return value
|
|
|
|
}), datatype: 'superbasictopic' };
|
|
|
|
|
|
|
|
if (assets == null || assets.length == 0) {
|
|
|
|
let topic = await fetchWithTimeout(`https://${server}/content/channels/${channelId}/topics?contact=${token}&confirm=true`,
|
|
|
|
{ method: 'POST', body: JSON.stringify(subject) });
|
|
|
|
checkResponse(topic);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
let topic = await fetchWithTimeout(`https://${server}/content/channels/${channelId}/topics?contact=${token}`,
|
|
|
|
{ method: 'POST', body: JSON.stringify({}) });
|
|
|
|
checkResponse(topic);
|
|
|
|
let slot = await topic.json();
|
|
|
|
|
|
|
|
// add each asset
|
2022-04-30 07:01:25 +00:00
|
|
|
for (let asset of assets) {
|
|
|
|
const formData = new FormData();
|
|
|
|
formData.append('asset', asset.image);
|
|
|
|
let transform = encodeURIComponent(JSON.stringify(["ithumb;photo"]));
|
|
|
|
let topicAsset = await fetch(`https://${server}/content/channels/${channelId}/topics/${slot.id}/assets?transforms=${transform}&contact=${token}`, { method: 'POST', body: formData });
|
|
|
|
checkResponse(topicAsset);
|
|
|
|
console.log(await topicAsset.json());
|
|
|
|
}
|
2022-04-15 04:07:11 +00:00
|
|
|
|
2022-04-27 17:33:51 +00:00
|
|
|
let unconfirmed = await fetchWithTimeout(`https://${server}/content/channels/${channelId}/topics/${slot.id}/subject?contact=${token}`,
|
|
|
|
{ method: 'PUT', body: JSON.stringify(subject) });
|
|
|
|
checkResponse(unconfirmed);
|
2022-04-15 04:07:11 +00:00
|
|
|
|
2022-04-27 17:33:51 +00:00
|
|
|
let confirmed = await fetchWithTimeout(`https://${server}/content/channels/${channelId}/topics/${slot.id}/confirmed?contact=${token}`,
|
|
|
|
{ method: 'PUT', body: JSON.stringify('confirmed') });
|
|
|
|
checkResponse(confirmed);
|
|
|
|
}
|
2022-04-15 04:07:11 +00:00
|
|
|
}
|
|
|
|
|