Compare commits
2 Commits
bad6ab1acc
...
e09f3b7d14
Author | SHA1 | Date |
---|---|---|
adueck | e09f3b7d14 | |
adueck | e0ef03a944 |
|
@ -1,40 +1,45 @@
|
||||||
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("Missing evironment variable(s):", missing.map((m) => m.name).join(", "));
|
console.error(
|
||||||
process.exit(1);
|
"Missing evironment variable(s):",
|
||||||
|
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,
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
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);
|
||||||
|
}
|
|
@ -15,6 +15,7 @@ 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",
|
||||||
|
@ -163,6 +164,7 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
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();
|
||||||
|
@ -15,22 +16,25 @@ 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(() => {
|
})
|
||||||
res.send({ ok: true, message: "feedback received" });
|
.then(() => {
|
||||||
}).catch((e) => {
|
ntfy(JSON.stringify(feedback));
|
||||||
console.error("error receiving feedback");
|
res.send({ ok: true, message: "feedback received" });
|
||||||
console.error("feedback missed", feedback);
|
})
|
||||||
console.error(e);
|
.catch((e) => {
|
||||||
next("error receiving feedback");
|
console.error("error receiving feedback");
|
||||||
|
console.error("feedback missed", feedback);
|
||||||
|
console.error(e);
|
||||||
|
next("error receiving feedback");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue