From e18ae1eee1699acfd92fe908acd0911ff01d6e7d Mon Sep 17 00:00:00 2001 From: subnub Date: Sat, 18 Apr 2020 00:16:31 -0400 Subject: [PATCH] Added more typescript support to the backend --- backend/db/mongoose.js | 29 ------------- backend/db/mongoose.ts | 43 +++++++++++++++++++ backend/db/utils/fileUtils/index.js | 5 ++- backend/db/utils/folderUtils/index.js | 3 +- backend/enviroment/{env.js => env.ts} | 3 +- backend/key/getKey.js | 2 +- backend/middleware/auth.js | 2 +- backend/middleware/tempAuth.js | 2 +- backend/middleware/tempAuthVideo.js | 2 +- backend/models/user.ts | 4 +- backend/services/FileService/index.js | 4 +- backend/services/FileService/indexnew.ts | 4 +- .../FileService/utils/createThumbnail.ts | 10 ++--- .../FileService/utils/createThumbnailFS.ts | 8 ++-- .../FileService/utils/createThumbnailS3.ts | 8 ++-- backend/services/FolderService/index.js | 2 +- key/getKey.js | 2 +- key/getNewKey.js | 2 +- serverUtils/createThumbnailBuffer.js | 4 +- 19 files changed, 78 insertions(+), 61 deletions(-) delete mode 100644 backend/db/mongoose.js create mode 100644 backend/db/mongoose.ts rename backend/enviroment/{env.js => env.ts} (81%) diff --git a/backend/db/mongoose.js b/backend/db/mongoose.js deleted file mode 100644 index 6c6e0a4..0000000 --- a/backend/db/mongoose.js +++ /dev/null @@ -1,29 +0,0 @@ -const mongoose = require("mongoose"); -const env = require("../enviroment/env.js"); -const fs = require("fs"); - -if (env.useDocumentDB === "true") { - - console.log("Using DocumentDB"); - - mongoose.connect(env.mongoURL, { - useNewUrlParser: true, - useCreateIndex: true, - useUnifiedTopology: true, - sslValidate: true, - useNewUrlParser: true, - sslCA: fs.readFileSync('./rds-combined-ca-bundle.pem') - }) - -} else { - - mongoose.connect(env.mongoURL, { - useNewUrlParser: true, - useCreateIndex: true, - useUnifiedTopology: true, - }) -} - - - -module.exports = mongoose; \ No newline at end of file diff --git a/backend/db/mongoose.ts b/backend/db/mongoose.ts new file mode 100644 index 0000000..3f0a7b7 --- /dev/null +++ b/backend/db/mongoose.ts @@ -0,0 +1,43 @@ +import mongoose from "mongoose"; +import env from "../enviroment/env"; +import fs from "fs"; + +const DBUrl = env.mongoURL as string; + +if (env.useDocumentDB === "true") { + + console.log("Using DocumentDB"); + + if (env.documentDBBundle === "true") { + + const fileBuffer = fs.readFileSync('./rds-combined-ca-bundle.pem'); + const mongooseCertificateConnect = mongoose as any; + + mongooseCertificateConnect.connect(DBUrl, { + + useCreateIndex: true, + useUnifiedTopology: true, + sslValidate: true, + sslCA: fileBuffer + }) + + } else { + + mongoose.connect(DBUrl, { + useNewUrlParser: true, + useCreateIndex: true, + useUnifiedTopology: true, + sslValidate: true, + }) + } + +} else { + + mongoose.connect(DBUrl, { + useNewUrlParser: true, + useCreateIndex: true, + useUnifiedTopology: true, + }) +} + +export default mongoose; \ No newline at end of file diff --git a/backend/db/utils/fileUtils/index.js b/backend/db/utils/fileUtils/index.js index 7cb92d5..6b17896 100644 --- a/backend/db/utils/fileUtils/index.js +++ b/backend/db/utils/fileUtils/index.js @@ -1,4 +1,4 @@ -const mongoose = require("../../mongoose") +import mongoose from "../../mongoose"; const conn = mongoose.connection; const ObjectID = require('mongodb').ObjectID @@ -163,4 +163,5 @@ const DbUtil = function() { } -module.exports = DbUtil; \ No newline at end of file +module.exports = DbUtil; +export default DbUtil; \ No newline at end of file diff --git a/backend/db/utils/folderUtils/index.js b/backend/db/utils/folderUtils/index.js index 53e6883..d5c6a1f 100644 --- a/backend/db/utils/folderUtils/index.js +++ b/backend/db/utils/folderUtils/index.js @@ -58,4 +58,5 @@ const DbUtil = function() { } } -module.exports = DbUtil; \ No newline at end of file +module.exports = DbUtil; +export default DbUtil; \ No newline at end of file diff --git a/backend/enviroment/env.js b/backend/enviroment/env.ts similarity index 81% rename from backend/enviroment/env.js rename to backend/enviroment/env.ts index 5c29287..9a531c8 100644 --- a/backend/enviroment/env.js +++ b/backend/enviroment/env.ts @@ -11,5 +11,6 @@ export default { s3ID: process.env.S3_ID, s3Key: process.env.S3_KEY, s3Bucket: process.env.S3_BUCKET, - useDocumentDB: process.env.USE_DOCUMENT_DB + useDocumentDB: process.env.USE_DOCUMENT_DB, + documentDBBundle: process.env.DOCUMENT_DB_BUNDLE } \ No newline at end of file diff --git a/backend/key/getKey.js b/backend/key/getKey.js index 533b36f..d9644e8 100644 --- a/backend/key/getKey.js +++ b/backend/key/getKey.js @@ -1,5 +1,5 @@ const prompt = require('password-prompt') -const env = require("../enviroment/env"); +import env from "../enviroment/env"; const crypto = require("crypto"); const getKey = async() => { diff --git a/backend/middleware/auth.js b/backend/middleware/auth.js index 8c70bb3..23175d0 100644 --- a/backend/middleware/auth.js +++ b/backend/middleware/auth.js @@ -1,6 +1,6 @@ const jwt = require("jsonwebtoken"); import User from "../models/user"; -const env = require("../enviroment/env"); +import env from "../enviroment/env"; const auth = async(req, res, next) => { diff --git a/backend/middleware/tempAuth.js b/backend/middleware/tempAuth.js index 8638520..4036a72 100644 --- a/backend/middleware/tempAuth.js +++ b/backend/middleware/tempAuth.js @@ -1,6 +1,6 @@ const jwt = require("jsonwebtoken"); import User from "../models/user"; -const env = require("../enviroment/env"); +import env from "../enviroment/env"; const tempAuth = async(req, res, next) => { diff --git a/backend/middleware/tempAuthVideo.js b/backend/middleware/tempAuthVideo.js index 1ae1861..2c48ab9 100644 --- a/backend/middleware/tempAuthVideo.js +++ b/backend/middleware/tempAuthVideo.js @@ -1,6 +1,6 @@ const jwt = require("jsonwebtoken"); import User from "../models/user"; -const env = require("../enviroment/env"); +import env from "../enviroment/env"; const tempAuthVideo = async(req, res, next) => { diff --git a/backend/models/user.ts b/backend/models/user.ts index 5382bb3..c83b15c 100644 --- a/backend/models/user.ts +++ b/backend/models/user.ts @@ -3,7 +3,7 @@ const validator = require("validator"); const crypto = require("crypto"); const bcrypt = require("bcrypt"); const jwt = require("jsonwebtoken"); -const env = require("../enviroment/env"); +import env from "../enviroment/env"; const userSchema = new mongoose.Schema({ @@ -221,7 +221,7 @@ userSchema.methods.getEncryptionKey = function() { } catch (e) { - console.log("Get Encryption Key Error"); + console.log("Get Encryption Key Error", e); return undefined; } } diff --git a/backend/services/FileService/index.js b/backend/services/FileService/index.js index 7fc7860..f21ee9b 100644 --- a/backend/services/FileService/index.js +++ b/backend/services/FileService/index.js @@ -1,14 +1,14 @@ const imageChecker = require("../../utils/imageChecker"); import crypto from "crypto"; const videoChecker = require("../../utils/videoChecker"); -const mongoose = require("../../db/mongoose") +import mongoose from "../../db/mongoose"; const conn = mongoose.connection; const createThumbnail = require("./utils/createThumbnail.ss"); const Thumbnail = require("../../models/thumbnail"); const ObjectID = require('mongodb').ObjectID const NotAuthorizedError = require("../../utils/NotAuthorizedError"); const NotFoundError = require("../../utils/NotFoundError"); -const env = require("../../enviroment/env"); +import env from "../../enviroment/env"; const jwt = require("jsonwebtoken"); const removeChunks = require("./utils/removeChunks"); const User = require("../../models/user"); diff --git a/backend/services/FileService/indexnew.ts b/backend/services/FileService/indexnew.ts index 7c925ea..7493857 100644 --- a/backend/services/FileService/indexnew.ts +++ b/backend/services/FileService/indexnew.ts @@ -1,14 +1,14 @@ const imageChecker = require("../../utils/imageChecker"); import crypto from "crypto"; const videoChecker = require("../../utils/videoChecker"); -const mongoose = require("../../db/mongoose") +import mongoose from "../../db/mongoose"; const conn = mongoose.connection; const createThumbnail = require("../../services/FileService/utils/createThumbnail"); import Thumbnail, {ThumbnailInterface} from "../../models/thumbnail"; const ObjectID = require('mongodb').ObjectID import NotAuthorizedError from "../../utils/NotAuthorizedError"; import NotFoundError from "../../utils/NotFoundError"; -const env = require("../../enviroment/env"); +import env from "../../enviroment/env"; const jwt = require("jsonwebtoken"); const removeChunks = require("./utils/removeChunks"); const User = require("../../models/user"); diff --git a/backend/services/FileService/utils/createThumbnail.ts b/backend/services/FileService/utils/createThumbnail.ts index d7aa0e2..66bed98 100644 --- a/backend/services/FileService/utils/createThumbnail.ts +++ b/backend/services/FileService/utils/createThumbnail.ts @@ -1,7 +1,7 @@ -const mongoose = require("../../../db/mongoose") +import mongoose from "../../../db/mongoose"; const conn = mongoose.connection; const crypto= require("crypto"); -const env = require("../../../enviroment/env"); +import env from "../../../enviroment/env"; import Thumbnail from "../../../models/thumbnail"; const ObjectID = require('mongodb').ObjectID const sharp = require("sharp"); @@ -49,12 +49,12 @@ const createThumbnail = (file: FileInterface, filename: string, user: UserInterf await thumbnailModel.save(); - let updatedFile = await conn.db.collection("fs.files") + const getUpdatedFile = await conn.db.collection("fs.files") .findOneAndUpdate({"_id": file._id}, {"$set": {"metadata.hasThumbnail": true, "metadata.thumbnailID": thumbnailModel._id}}) - updatedFile = updatedFile.value; + let updatedFile: FileInterface = getUpdatedFile.value; - updatedFile = {...updatedFile, metadata: {...updatedFile.metadata, hasThumbnail: true, thumbnailID: thumbnailModel._id}} + updatedFile = {...updatedFile, metadata: {...updatedFile.metadata, hasThumbnail: true, thumbnailID: thumbnailModel._id}} as FileInterface; resolve(updatedFile); diff --git a/backend/services/FileService/utils/createThumbnailFS.ts b/backend/services/FileService/utils/createThumbnailFS.ts index a9eca0e..3bafcb8 100644 --- a/backend/services/FileService/utils/createThumbnailFS.ts +++ b/backend/services/FileService/utils/createThumbnailFS.ts @@ -1,4 +1,4 @@ -const mongoose = require("../../../db/mongoose") +import mongoose from "../../../db/mongoose"; const conn = mongoose.connection; const crypto= require("crypto"); import Thumbnail from "../../../models/thumbnail"; @@ -62,12 +62,12 @@ const createThumbnailFS = (file: FileInterface, filename: string, user: UserInte await thumbnailModel.save(); - let updatedFile = await conn.db.collection("fs.files") + const getUpdatedFile = await conn.db.collection("fs.files") .findOneAndUpdate({"_id": file._id}, {"$set": {"metadata.hasThumbnail": true, "metadata.thumbnailID": thumbnailModel._id}}) - updatedFile = updatedFile.value; + let updatedFile: FileInterface = getUpdatedFile.value; - updatedFile = {...updatedFile, metadata: {...updatedFile.metadata, hasThumbnail: true, thumbnailID: thumbnailModel._id}} + updatedFile = {...updatedFile, metadata: {...updatedFile.metadata, hasThumbnail: true, thumbnailID: thumbnailModel._id}} as FileInterface resolve(updatedFile); }) diff --git a/backend/services/FileService/utils/createThumbnailS3.ts b/backend/services/FileService/utils/createThumbnailS3.ts index ff09aaa..ebe96d9 100644 --- a/backend/services/FileService/utils/createThumbnailS3.ts +++ b/backend/services/FileService/utils/createThumbnailS3.ts @@ -1,4 +1,4 @@ -const mongoose = require("../../../db/mongoose") +import mongoose from "../../../db/mongoose"; const conn = mongoose.connection; const crypto= require("crypto"); import Thumbnail from "../../../models/thumbnail"; @@ -87,12 +87,12 @@ const createThumbnailS3 = (file: FileInterface, filename: string, user: UserInte await thumbnailModel.save(); - let updatedFile = await conn.db.collection("fs.files") + const getUpdatedFile = await conn.db.collection("fs.files") .findOneAndUpdate({"_id": file._id}, {"$set": {"metadata.hasThumbnail": true, "metadata.thumbnailID": thumbnailModel._id}}) - updatedFile = updatedFile.value; + let updatedFile: FileInterface = getUpdatedFile.value; - updatedFile = {...updatedFile, metadata: {...updatedFile.metadata, hasThumbnail: true, thumbnailID: thumbnailModel._id}} + updatedFile = {...updatedFile, metadata: {...updatedFile.metadata, hasThumbnail: true, thumbnailID: thumbnailModel._id}} as FileInterface; resolve(updatedFile); }) diff --git a/backend/services/FolderService/index.js b/backend/services/FolderService/index.js index 87ad37b..f04352f 100644 --- a/backend/services/FolderService/index.js +++ b/backend/services/FolderService/index.js @@ -4,7 +4,7 @@ const NotFoundError = require("../../utils/NotFoundError"); const UtilsFile = require("../../db/utils/fileUtils"); const ObjectID = require('mongodb').ObjectID const UtilsFolder = require("../../db/utils/folderUtils"); -const mongoose = require("../../db/mongoose") +import mongoose from "../../db/mongoose"; const conn = mongoose.connection; const Thumbnail = require("../../models/thumbnail"); const sortBySwitch = require("../../utils/sortBySwitchFolder"); diff --git a/key/getKey.js b/key/getKey.js index 6117cc3..a65d1f5 100644 --- a/key/getKey.js +++ b/key/getKey.js @@ -1,5 +1,5 @@ const prompt = require('password-prompt') -const env = require("../backend/enviroment/env") +import env from "../backend/enviroment/env"; const crypto = require("crypto"); const getKey = async() => { diff --git a/key/getNewKey.js b/key/getNewKey.js index 6e62f2e..253ad1a 100644 --- a/key/getNewKey.js +++ b/key/getNewKey.js @@ -1,5 +1,5 @@ const prompt = require('password-prompt') -const env = require("../backend/enviroment/env") +import env from "../backend/enviroment/env"; const crypto = require("crypto"); const getKey = async() => { diff --git a/serverUtils/createThumbnailBuffer.js b/serverUtils/createThumbnailBuffer.js index 33de081..23e7b7c 100644 --- a/serverUtils/createThumbnailBuffer.js +++ b/serverUtils/createThumbnailBuffer.js @@ -1,7 +1,7 @@ -const mongoose = require("../backend/db/mongooseServerUtils") +import mongoose from "../backend/db/mongoose"; const conn = mongoose.connection; const crypto= require("crypto"); -const env = require("../backend/enviroment/env"); +import env from "../backend/enviroment/env"; const Thumbnail = require("../backend/models/thumbnail"); const ObjectID = require('mongodb').ObjectID const sharp = require("sharp");