slate/node_common/monitor.js

154 lines
4.5 KiB
JavaScript
Raw Normal View History

import * as Social from "~/node_common/social";
import * as Arrays from "~/common/arrays";
import * as Logging from "~/common/logging";
2021-06-11 03:36:57 +03:00
//things taht could be combined into this:
//update search (searchmanager)
//send websocket update (viewermanager)
//send slack message (Social.sendSlackMessage)
2021-06-11 03:36:57 +03:00
//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
2021-07-07 01:40:27 +03:00
? ` and ${files.length - 1} other file${files.length - 1 > 1 ? "s" : ""}`
: "";
let message;
if (slate) {
2021-12-14 00:27:03 +03:00
const objectURL = `<https://slate.host/${user.username}/${slate.slatename}?id=${files[0].id}|${files[0].filename}>`;
2021-08-29 03:29:17 +03:00
const slateURL = `<https://slate.host/${user.username}/${slate.slatename}|${slate.name}>`;
2021-07-07 01:40:27 +03:00
message = `*${userURL}* uploaded ${objectURL}${extra} to ${slateURL}`;
} else {
2021-12-14 00:27:03 +03:00
const objectURL = `<https://slate.host/${user.username}?id=${files[0].id}|${files[0].filename}>`;
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);
2021-12-14 00:27:03 +03:00
const objectURL = `<https://slate.host/${user.username}?id=${files[0].id}|${files[0].filename}>`;
const extra =
files.length > 1
2021-07-07 01:40:27 +03:00
? ` 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
2021-07-07 01:40:27 +03:00
? ` and ${files.length - 1} other file${files.length - 1 > 1 ? "s" : ""}`
: "";
let message;
if (slate) {
2021-12-14 00:27:03 +03:00
const objectURL = `<https://slate.host/${user.username}/${slate.slatename}?id=${files[0].id}|${files[0].filename}>`;
2021-08-29 03:29:17 +03:00
const slateURL = `<https://slate.host/${user.username}/${slate.slatename}|${slate.name}>`;
2021-07-07 01:40:27 +03:00
message = `*${userURL}* saved ${objectURL}${extra} to ${slateURL}`;
} else {
2021-12-14 00:27:03 +03:00
const objectURL = `<https://slate.host/${user.username}?id=${files[0].id}|${files[0].filename}>`;
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);
2021-08-29 03:29:17 +03:00
const slateURL = `<https://slate.host/${user.username}/${slate.slatename}|${slate.name}>`;
2021-07-07 01:40:27 +03:00
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);
2021-08-29 03:29:17 +03:00
const targetSlateURL = `<https://slate.host/$/${targetSlate.id}|${targetSlate.name}>`;
const message = `*${userURL}* subscribed to ${targetSlateURL}`;
Social.sendSlackMessage(message);
} catch (e) {
Logging.error(e);
}
};