import * as Social from "~/node_common/social"; import * as Arrays from "~/common/arrays"; import * as Logging from "~/common/logging"; //things taht could be combined into this: //update search (searchmanager) //send websocket update (viewermanager) //send slack message (Social.sendSlackMessage) //create activity //update summary counts //maybe you could remove the try catch from here and put it inside the send part const getUserURL = (user) => { const userProfileURL = `https://slate.host/${user.username}`; const userURL = `<${userProfileURL}|${user.username}>`; return userURL; }; export const error = (location, e) => { try { const message = `@martina there was an error at ${location}: ${e}`; Social.sendSlackMessage(message); } catch (e) { Logging.error(e); } }; export const upload = ({ user, slate, files: targetFiles }) => { if (slate && !slate.isPublic) return; const files = Arrays.filterPublic(targetFiles); if (!files.length) { return; } try { const userURL = getUserURL(user); const extra = files.length > 1 ? ` and ${files.length - 1} other file${files.length - 1 > 1 ? "s" : ""}` : ""; let message; if (slate) { const objectURL = ``; const slateURL = ``; message = `*${userURL}* uploaded ${objectURL}${extra} to ${slateURL}`; } else { const objectURL = ``; message = `*${userURL}* uploaded ${objectURL}${extra}`; } Social.sendSlackMessage(message); } catch (e) { Logging.error(e); } }; export const download = ({ user, files: targetFiles }) => { const files = Arrays.filterPublic(targetFiles); if (!files.length) { return; } try { const userURL = getUserURL(user); const objectURL = ``; const extra = files.length > 1 ? ` and ${files.length - 1} other file${files.length - 1 > 1 ? "s" : ""}` : ""; const message = `*${userURL}* downloaded ${objectURL}${extra}`; Social.sendSlackMessage(message); } catch (e) { Logging.error(e); } }; export const saveCopy = ({ slate, user, files: targetFiles }) => { if (slate && !slate.isPublic) return; const files = Arrays.filterPublic(targetFiles); if (!files.length) { return; } try { const userURL = getUserURL(user); const extra = files.length > 1 ? ` and ${files.length - 1} other file${files.length - 1 > 1 ? "s" : ""}` : ""; let message; if (slate) { const objectURL = ``; const slateURL = ``; message = `*${userURL}* saved ${objectURL}${extra} to ${slateURL}`; } else { const objectURL = ``; message = `*${userURL}* saved ${objectURL}${extra}`; } Social.sendSlackMessage(message); } catch (e) { Logging.error(e); } }; export const createSlate = ({ user, slate }) => { if (!slate.isPublic) return; try { const userURL = getUserURL(user); const slateURL = ``; const message = `*${userURL}* created a collection ${slateURL}`; Social.sendSlackMessage(message); } catch (e) { Logging.error(e); } }; export const createUser = ({ user }) => { try { const userURL = getUserURL(user); const message = `*${userURL}* joined slate`; Social.sendSlackMessage(message); } catch (e) { Logging.error(e); } }; export const subscribeUser = ({ user, targetUser }) => { try { const userURL = getUserURL(user); const targetUserURL = getUserURL(targetUser); const message = `*${userURL}* followed ${targetUserURL}`; Social.sendSlackMessage(message); } catch (e) { Logging.error(e); } }; export const subscribeSlate = ({ user, targetSlate }) => { if (!targetSlate.isPublic) return; try { const userURL = getUserURL(user); const targetSlateURL = ``; const message = `*${userURL}* subscribed to ${targetSlateURL}`; Social.sendSlackMessage(message); } catch (e) { Logging.error(e); } };