diff --git a/src/environment.ts b/src/environment.ts index 52b288d..2dc26d3 100644 --- a/src/environment.ts +++ b/src/environment.ts @@ -13,4 +13,5 @@ export default { mailUser: process.env.MAIL_USER || "", mailJetKey: process.env.MAILJET_KEY || "", mailJetSecret: process.env.MAILJET_SECRET || "", + updatePassword: process.env.UPDATE_PASSWORD, } diff --git a/src/index.ts b/src/index.ts index a60c5c0..f593e7d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -15,7 +15,12 @@ import { import { Commitment, Connection, PublicKey } from "@solana/web3.js" import { UserError } from "./errors" -import { validateMangoAccount, validateEmail, sendAlert } from "./utils" +import { + validateMangoAccount, + validateEmail, + sendAlert, + validateUpdatePassword, +} from "./utils" import config from "./environment" const MESSAGE = "Your health ratio is at or below @ratio@% \n" @@ -129,15 +134,13 @@ router.get("/alerts/:mangoAccountPk", async (ctx, next) => { router.post("/updates", async (ctx, next) => { try { const update: any = ctx.request.body - + await validateUpdatePassword(update.password) ctx.body = { status: "success" } ctx.db.collection("updates").insertOne(update) } catch (e: any) { let errorMessage = "Something went wrong" if (e.name == "UserError") { errorMessage = e.message - } else { - // sendLogsToDiscord(null, e) } ctx.throw(400, errorMessage) } diff --git a/src/utils.ts b/src/utils.ts index 6db70d3..a0164f0 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -31,6 +31,20 @@ export const validateMangoAccount = (client: MangoClient, alert: any) => { }) } +export const validateUpdatePassword = (password: string) => { + return new Promise(async (resolve, reject) => { + try { + if (password != config.updatePassword) { + reject(new UserError("Invalid password")) + } else { + resolve() + } + } catch (e) { + reject(new UserError("Something went wrong")) + } + }) +} + export const validateEmail = (email: string) => { if (!EmailValidator.validate(email)) { throw new UserError("Enter a valid email")