Compare commits

..

No commits in common. "e09f3b7d1412f33ac74e70a12383b874ebdce0f8" and "bad6ab1accab91189221b7f5994face263c3c495" have entirely different histories.

4 changed files with 45 additions and 65 deletions

View File

@ -1,45 +1,40 @@
const names = [ const names = [
"LINGDOCS_EMAIL_HOST", "LINGDOCS_EMAIL_HOST",
"LINGDOCS_EMAIL_USER", "LINGDOCS_EMAIL_USER",
"LINGDOCS_EMAIL_PASS", "LINGDOCS_EMAIL_PASS",
"LINGDOCS_COUCHDB", "LINGDOCS_COUCHDB",
"LINGDOCS_ACCOUNT_COOKIE_SECRET", "LINGDOCS_ACCOUNT_COOKIE_SECRET",
"LINGDOCS_ACCOUNT_GOOGLE_CLIENT_SECRET", "LINGDOCS_ACCOUNT_GOOGLE_CLIENT_SECRET",
"LINGDOCS_ACCOUNT_TWITTER_CLIENT_SECRET", "LINGDOCS_ACCOUNT_TWITTER_CLIENT_SECRET",
"LINGDOCS_ACCOUNT_GITHUB_CLIENT_SECRET", "LINGDOCS_ACCOUNT_GITHUB_CLIENT_SECRET",
"LINGDOCS_ACCOUNT_RECAPTCHA_SECRET", "LINGDOCS_ACCOUNT_RECAPTCHA_SECRET",
"LINGDOCS_ACCOUNT_UPGRADE_PASSWORD", "LINGDOCS_ACCOUNT_UPGRADE_PASSWORD",
"STRIPE_SECRET_KEY", "STRIPE_SECRET_KEY",
"STRIPE_WEBHOOK_SECRET", "STRIPE_WEBHOOK_SECRET",
"NTFY_TOPIC",
]; ];
const values = names.map((name) => ({ const values = names.map((name) => ({
name, name,
value: process.env[name] || "", value: process.env[name] || "",
})); }));
const missing = values.filter((v) => !v.value); const missing = values.filter((v) => !v.value);
if (missing.length) { if (missing.length) {
console.error( console.error("Missing evironment variable(s):", missing.map((m) => m.name).join(", "));
"Missing evironment variable(s):", process.exit(1);
missing.map((m) => m.name).join(", ")
);
process.exit(1);
} }
export default { export default {
emailHost: values[0].value, emailHost: values[0].value,
emailUser: values[1].value, emailUser: values[1].value,
emailPass: values[2].value, emailPass: values[2].value,
couchDbURL: values[3].value, couchDbURL: values[3].value,
cookieSecret: values[4].value, cookieSecret: values[4].value,
googleClientSecret: values[5].value, googleClientSecret: values[5].value,
twitterClientSecret: values[6].value, twitterClientSecret: values[6].value,
githubClientSecret: values[7].value, githubClientSecret: values[7].value,
recaptchaSecret: values[8].value, recaptchaSecret: values[8].value,
upgradePassword: values[9].value, upgradePassword: values[9].value,
stripeSecretKey: values[10].value, stripeSecretKey: values[10].value,
stripeWebhookSecret: values[11].value, stripeWebhookSecret: values[11].value,
ntfyTopic: values[12].value,
}; };

View File

@ -1,9 +0,0 @@
import fetch from "node-fetch";
import envVars from "./env-vars";
export async function ntfy(message: string) {
fetch(`https://ntfy.sh/${envVars.ntfyTopic}`, {
method: "POST",
body: message,
}).catch(console.error);
}

View File

@ -15,7 +15,6 @@ import { outsideProviders } from "../middleware/setup-passport";
import * as T from "../../../website/src/types/account-types"; import * as T from "../../../website/src/types/account-types";
import env from "../lib/env-vars"; import env from "../lib/env-vars";
import Stripe from "stripe"; import Stripe from "stripe";
import { ntfy } from "./ntfy";
const stripe = new Stripe(env.stripeSecretKey, { const stripe = new Stripe(env.stripeSecretKey, {
apiVersion: "2022-08-01", apiVersion: "2022-08-01",
@ -164,7 +163,6 @@ export async function createNewUser(
email: input.email || "", email: input.email || "",
token: email.token, token: email.token,
}); });
ntfy(`new LingDocs user ${input.name} - ${input.email}`);
const user = await insertLingdocsUser(newUser); const user = await insertLingdocsUser(newUser);
return user; return user;
} }

View File

@ -1,13 +1,12 @@
import express, { Response } from "express"; import express, { Response } from "express";
import * as T from "../../../website/src/types/account-types"; import * as T from "../../../website/src/types/account-types";
import { addFeedback } from "../lib/couch-db"; import { addFeedback } from "../lib/couch-db";
import { ntfy } from "../lib/ntfy";
// import env from "../lib/env-vars"; // import env from "../lib/env-vars";
// TODO: ADD PROPER ERROR HANDLING THAT WILL RETURN JSON ALWAYS // TODO: ADD PROPER ERROR HANDLING THAT WILL RETURN JSON ALWAYS
function sendResponse(res: Response, payload: T.APIResponse) { function sendResponse(res: Response, payload: T.APIResponse) {
return res.send(payload); return res.send(payload);
} }
const feedbackRouter = express.Router(); const feedbackRouter = express.Router();
@ -16,25 +15,22 @@ const feedbackRouter = express.Router();
* receives a piece of feedback * receives a piece of feedback
*/ */
feedbackRouter.put("/", (req, res, next) => { feedbackRouter.put("/", (req, res, next) => {
const { anonymous, ...feedback } = req.body; const { anonymous, ...feedback } = req.body;
const user = anonymous const user = anonymous
? "anonymous" ? "anonymous"
: req.user : req.user
? req.user.name ? req.user.name
: "not logged in"; : "not logged in";
addFeedback({ addFeedback({
user, user,
feedback, feedback,
}) }).then(() => {
.then(() => { res.send({ ok: true, message: "feedback received" });
ntfy(JSON.stringify(feedback)); }).catch((e) => {
res.send({ ok: true, message: "feedback received" }); console.error("error receiving feedback");
}) console.error("feedback missed", feedback);
.catch((e) => { console.error(e);
console.error("error receiving feedback"); next("error receiving feedback");
console.error("feedback missed", feedback);
console.error(e);
next("error receiving feedback");
}); });
}); });