From 3e22cafd77fd76c55bd66a1afb0f9d0dab186686 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafael=20L=C3=A1szl=C3=B3?= <rlacko99@gmail.com>
Date: Tue, 5 Jan 2021 17:11:25 +0100
Subject: [PATCH] better sort imports, fix dotenv problem, add files api plan

---
 package-lock.json                             | 32 ++-----
 package.json                                  |  2 +-
 src/index.ts                                  |  8 +-
 src/middlewares/auth/complete.ts              |  6 +-
 src/middlewares/auth/isAdmin.ts               |  1 +
 src/middlewares/auth/login.ts                 |  5 +-
 src/middlewares/auth/refreshToken.ts          |  1 +
 src/middlewares/files/card/getUserCard.ts     |  3 +-
 .../files/card/responseCardImage.ts           |  1 +
 src/middlewares/files/card/uploadCardImage.ts |  3 +-
 src/middlewares/files/createFile.ts           |  5 +-
 src/middlewares/files/deleteFile.ts           |  3 +-
 src/middlewares/files/imageFilter.ts          |  2 +-
 src/middlewares/files/sendFile.ts             |  3 +-
 src/middlewares/files/updateTermCardBg.ts     |  3 +-
 src/middlewares/news/addNews.ts               |  3 +-
 src/middlewares/news/deleteNews.ts            |  1 +
 src/middlewares/news/getNewsList.ts           |  1 +
 src/middlewares/news/getOneNews.ts            |  1 +
 src/middlewares/news/updateNews.ts            |  2 +-
 src/middlewares/term/addMember.ts             |  3 +-
 src/middlewares/term/addTerm.ts               |  1 +
 src/middlewares/term/deleteTerm.ts            |  1 +
 src/middlewares/term/filterMembersByState.ts  |  1 +
 src/middlewares/term/getTerm.ts               |  1 +
 src/middlewares/term/getTermMembers.ts        |  1 +
 src/middlewares/term/getTermsList.ts          |  1 +
 .../term/getUserTermMemberships.ts            |  1 +
 src/middlewares/user/acceptPicture.ts         |  1 +
 src/middlewares/user/deleteUser.ts            |  1 +
 src/middlewares/user/getUser.ts               |  1 +
 src/middlewares/user/getUsersList.ts          |  3 +-
 .../user/notice/addNoticeToUser.ts            |  3 +-
 src/middlewares/user/notice/deleteNotice.ts   |  1 +
 .../user/notice/getUserNoticeNum.ts           |  1 +
 src/middlewares/user/notice/getUserNotices.ts |  1 +
 .../user/notice/markNoticeAsSeen.ts           |  1 +
 src/middlewares/user/registerOwnUser.ts       |  1 +
 src/middlewares/user/rejectPicture.ts         |  1 +
 src/middlewares/user/warning/addWarning.ts    |  3 +-
 src/middlewares/user/warning/deleteWarning.ts |  1 +
 .../user/warning/getUserWarningsList.ts       |  1 +
 src/middlewares/utils/validateFields.ts       |  2 +-
 src/models/CounterSchema.ts                   |  2 +-
 src/models/FileSchema.ts                      |  2 +-
 src/models/NewsSchema.ts                      |  2 +-
 src/models/ProfileSchema.ts                   |  2 +-
 src/models/TermSchema.ts                      |  2 +-
 src/models/user.interface.ts                  |  2 +-
 src/routes/files.ts                           | 83 ++++++++++++++-----
 src/routes/news.ts                            |  8 +-
 src/routes/setErrorHandler.ts                 |  3 +-
 src/routes/setRouters.ts                      |  6 +-
 src/routes/terms.ts                           | 18 ++--
 src/routes/users/membership.ts                |  2 +-
 src/routes/users/notice.ts                    |  6 +-
 src/routes/users/user.ts                      | 20 ++---
 src/routes/users/warning.ts                   |  8 +-
 58 files changed, 176 insertions(+), 108 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index ee8a43b8..cb959ebd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1253,11 +1253,11 @@
       "dev": true
     },
     "axios": {
-      "version": "0.19.2",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
-      "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
+      "version": "0.21.1",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+      "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
       "requires": {
-        "follow-redirects": "1.5.10"
+        "follow-redirects": "^1.10.0"
       }
     },
     "babel-jest": {
@@ -2640,27 +2640,9 @@
       }
     },
     "follow-redirects": {
-      "version": "1.5.10",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
-      "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
-      "requires": {
-        "debug": "=3.1.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-        }
-      }
+      "version": "1.13.1",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
+      "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg=="
     },
     "for-in": {
       "version": "1.0.2",
diff --git a/package.json b/package.json
index 1461ed00..c0674e34 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
   "dependencies": {
     "@types/express-session": "^1.17.3",
     "@types/simple-oauth2": "^2.5.4",
-    "axios": "^0.19.2",
+    "axios": "^0.21.1",
     "body-parser": "^1.19.0",
     "dotenv": "^8.2.0",
     "express": "^4.17.1",
diff --git a/src/index.ts b/src/index.ts
index 270ff0cf..6d24c07a 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,10 +1,12 @@
-import bodyParser from "body-parser";
+import "./utils/env";
+
 import express, { Application, NextFunction, Request, Response } from "express";
+
+import bodyParser from "body-parser";
 import expressSession from "express-session";
 import mongoose from "mongoose";
 import morgan from "morgan";
-import { setRouters } from "./routes/setRouters";
-import "./utils/env";
+import setRouters from "./routes/setRouters";
 
 mongoose
   .connect("mongodb://localhost:27017/bodysch", {
diff --git a/src/middlewares/auth/complete.ts b/src/middlewares/auth/complete.ts
index fdb80989..a8b1364c 100644
--- a/src/middlewares/auth/complete.ts
+++ b/src/middlewares/auth/complete.ts
@@ -1,9 +1,9 @@
-import axios from "axios";
 import { NextFunction, Request, Response } from "express";
-import Profile from "../../models/ProfileSchema";
 import { oauth2, scope } from "../../utils/auth";
-import { authschResponse } from "../../utils/types/authschResponse";
 
+import Profile from "../../models/ProfileSchema";
+import { authschResponse } from "../../utils/types/authschResponse";
+import axios from "axios";
 
 /**
  * Called after authentication.
diff --git a/src/middlewares/auth/isAdmin.ts b/src/middlewares/auth/isAdmin.ts
index 403ca9ff..b1b58d95 100644
--- a/src/middlewares/auth/isAdmin.ts
+++ b/src/middlewares/auth/isAdmin.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import { Role } from "../../models/ProfileSchema";
 
 /**
diff --git a/src/middlewares/auth/login.ts b/src/middlewares/auth/login.ts
index 15fad1eb..a9158a25 100644
--- a/src/middlewares/auth/login.ts
+++ b/src/middlewares/auth/login.ts
@@ -8,7 +8,10 @@ const authorizationUri = oauth2().authorizationCode.authorizeURL({
 /**
  * Redirects to the authorization URL
  */
-const login = () => (req: Request, res: Response) =>
+const login = () => (req: Request, res: Response) => {
+  console.log(authorizationUri);
+  console.log(process.env.AUTH_ID);
   res.redirect(authorizationUri);
+};
 
 export default login;
diff --git a/src/middlewares/auth/refreshToken.ts b/src/middlewares/auth/refreshToken.ts
index 97c8a661..bc7303be 100644
--- a/src/middlewares/auth/refreshToken.ts
+++ b/src/middlewares/auth/refreshToken.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import { oauth2 } from "../../utils/auth";
 
 /**
diff --git a/src/middlewares/files/card/getUserCard.ts b/src/middlewares/files/card/getUserCard.ts
index 05bff3eb..e1e35121 100644
--- a/src/middlewares/files/card/getUserCard.ts
+++ b/src/middlewares/files/card/getUserCard.ts
@@ -1,7 +1,8 @@
 import { NextFunction, Request, Response } from "express";
-import fs from "fs";
+
 import Card from "../../../models/CardSchema";
 import File from "../../../models/FileSchema";
+import fs from "fs";
 
 /**
  * Generate Entry card svg from Users data and card
diff --git a/src/middlewares/files/card/responseCardImage.ts b/src/middlewares/files/card/responseCardImage.ts
index 88bb1149..a5a52bb2 100644
--- a/src/middlewares/files/card/responseCardImage.ts
+++ b/src/middlewares/files/card/responseCardImage.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import File from "../../../models/FileSchema";
 
 /**
diff --git a/src/middlewares/files/card/uploadCardImage.ts b/src/middlewares/files/card/uploadCardImage.ts
index 6283f8a7..10fe5b55 100644
--- a/src/middlewares/files/card/uploadCardImage.ts
+++ b/src/middlewares/files/card/uploadCardImage.ts
@@ -1,7 +1,8 @@
 import { NextFunction, Request, Response } from "express";
-import fs from "fs";
+
 import CardImage from "../../../models/CardImageSchema";
 import File from "../../../models/FileSchema";
+import fs from "fs";
 
 /**
  * Upload a new Card background Image
diff --git a/src/middlewares/files/createFile.ts b/src/middlewares/files/createFile.ts
index d780aa7d..7f46cc14 100644
--- a/src/middlewares/files/createFile.ts
+++ b/src/middlewares/files/createFile.ts
@@ -1,7 +1,8 @@
 import { NextFunction, Request, Response } from "express";
-import fs from "fs";
-import File from "../../models/FileSchema";
+
 import { ErrorHandler } from "../utils/ErrorHandler";
+import File from "../../models/FileSchema";
+import fs from "fs";
 
 /**
  * Upload a new profile picture
diff --git a/src/middlewares/files/deleteFile.ts b/src/middlewares/files/deleteFile.ts
index 97f42310..e1965145 100644
--- a/src/middlewares/files/deleteFile.ts
+++ b/src/middlewares/files/deleteFile.ts
@@ -1,6 +1,7 @@
 import { NextFunction, Request, Response } from "express";
-import fs from "fs";
+
 import File from "../../models/FileSchema";
+import fs from "fs";
 
 /**
  * Deletes the file if exists. Careful, doesn't remove reference!
diff --git a/src/middlewares/files/imageFilter.ts b/src/middlewares/files/imageFilter.ts
index 6fa72dd6..4e5d8885 100644
--- a/src/middlewares/files/imageFilter.ts
+++ b/src/middlewares/files/imageFilter.ts
@@ -1,5 +1,5 @@
-import { FileFilterCallback } from "multer";
 import { ErrorHandler } from "../utils/ErrorHandler";
+import { FileFilterCallback } from "multer";
 
 /**
  * multer imageFilter that only lets png or jpeg to be uploaded
diff --git a/src/middlewares/files/sendFile.ts b/src/middlewares/files/sendFile.ts
index 9ca90e36..4103093f 100644
--- a/src/middlewares/files/sendFile.ts
+++ b/src/middlewares/files/sendFile.ts
@@ -1,6 +1,7 @@
 import { NextFunction, Request, Response } from "express";
-import File from "../../models/FileSchema";
+
 import { ErrorHandler } from "../utils/ErrorHandler";
+import File from "../../models/FileSchema";
 
 /**
  * Return the file with id = res.data.value
diff --git a/src/middlewares/files/updateTermCardBg.ts b/src/middlewares/files/updateTermCardBg.ts
index 882046d5..0872f1e0 100644
--- a/src/middlewares/files/updateTermCardBg.ts
+++ b/src/middlewares/files/updateTermCardBg.ts
@@ -1,7 +1,8 @@
 import { NextFunction, Request, Response } from "express";
-import fs from "fs";
+
 import File from "../../models/FileSchema";
 import Term from "../../models/TermSchema";
+import fs from "fs";
 
 /**
  * Upload a new profile picture
diff --git a/src/middlewares/news/addNews.ts b/src/middlewares/news/addNews.ts
index b2095a86..f41e11dd 100644
--- a/src/middlewares/news/addNews.ts
+++ b/src/middlewares/news/addNews.ts
@@ -1,5 +1,6 @@
-import { NextFunction, Request, Response } from "express";
 import News, { INews } from "../../models/NewsSchema";
+import { NextFunction, Request, Response } from "express";
+
 import { validateFields } from "../utils/validateFields";
 
 /**
diff --git a/src/middlewares/news/deleteNews.ts b/src/middlewares/news/deleteNews.ts
index 6ac7e621..e9925c9a 100644
--- a/src/middlewares/news/deleteNews.ts
+++ b/src/middlewares/news/deleteNews.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import News from "../../models/NewsSchema";
 
 const deleteNews = () => async (
diff --git a/src/middlewares/news/getNewsList.ts b/src/middlewares/news/getNewsList.ts
index fc9a7ff3..9e1f1f88 100644
--- a/src/middlewares/news/getNewsList.ts
+++ b/src/middlewares/news/getNewsList.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import News from "../../models/NewsSchema";
 
 /**
diff --git a/src/middlewares/news/getOneNews.ts b/src/middlewares/news/getOneNews.ts
index 36c0e4c9..7de7cbfc 100644
--- a/src/middlewares/news/getOneNews.ts
+++ b/src/middlewares/news/getOneNews.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import News from "../../models/NewsSchema";
 
 /**
diff --git a/src/middlewares/news/updateNews.ts b/src/middlewares/news/updateNews.ts
index 1191321f..156491e8 100644
--- a/src/middlewares/news/updateNews.ts
+++ b/src/middlewares/news/updateNews.ts
@@ -1,5 +1,5 @@
-import { NextFunction, Request, Response } from "express";
 import News, { INews } from "../../models/NewsSchema";
+import { NextFunction, Request, Response } from "express";
 
 /**
  * Update a News Object
diff --git a/src/middlewares/term/addMember.ts b/src/middlewares/term/addMember.ts
index 65a82453..e5f86027 100644
--- a/src/middlewares/term/addMember.ts
+++ b/src/middlewares/term/addMember.ts
@@ -1,7 +1,8 @@
 import { NextFunction, Request, Response } from "express";
-import Counter from "../../models/CounterSchema";
 import Term, { CardState, IMember, MemberState } from "../../models/TermSchema";
 
+import Counter from "../../models/CounterSchema";
+
 /**
  * Add a new Term
  */
diff --git a/src/middlewares/term/addTerm.ts b/src/middlewares/term/addTerm.ts
index 550ca563..26676ad0 100644
--- a/src/middlewares/term/addTerm.ts
+++ b/src/middlewares/term/addTerm.ts
@@ -1,5 +1,6 @@
 import { NextFunction, Request, Response } from "express";
 import Term, { ITerm } from "../../models/TermSchema";
+
 import { validateFields } from "../utils/validateFields";
 
 /**
diff --git a/src/middlewares/term/deleteTerm.ts b/src/middlewares/term/deleteTerm.ts
index 6cd779f1..95e4a942 100644
--- a/src/middlewares/term/deleteTerm.ts
+++ b/src/middlewares/term/deleteTerm.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import File from "../../models/FileSchema";
 import Term from "../../models/TermSchema";
 
diff --git a/src/middlewares/term/filterMembersByState.ts b/src/middlewares/term/filterMembersByState.ts
index 2755309d..ec2d580d 100644
--- a/src/middlewares/term/filterMembersByState.ts
+++ b/src/middlewares/term/filterMembersByState.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import { MemberState } from "../../models/TermSchema";
 
 const convertState = (state: string) => {
diff --git a/src/middlewares/term/getTerm.ts b/src/middlewares/term/getTerm.ts
index 48881be1..31ce1163 100644
--- a/src/middlewares/term/getTerm.ts
+++ b/src/middlewares/term/getTerm.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Term from "../../models/TermSchema";
 
 /**
diff --git a/src/middlewares/term/getTermMembers.ts b/src/middlewares/term/getTermMembers.ts
index bad9dfb3..79ffe98c 100644
--- a/src/middlewares/term/getTermMembers.ts
+++ b/src/middlewares/term/getTermMembers.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Term from "../../models/TermSchema";
 
 const getTermMembers = () => async (
diff --git a/src/middlewares/term/getTermsList.ts b/src/middlewares/term/getTermsList.ts
index c2bcb2eb..430e87d9 100644
--- a/src/middlewares/term/getTermsList.ts
+++ b/src/middlewares/term/getTermsList.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Term from "../../models/TermSchema";
 
 /**
diff --git a/src/middlewares/term/getUserTermMemberships.ts b/src/middlewares/term/getUserTermMemberships.ts
index 57f0693e..49868f37 100644
--- a/src/middlewares/term/getUserTermMemberships.ts
+++ b/src/middlewares/term/getUserTermMemberships.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Term from "../../models/TermSchema";
 
 const getUserTermMemberships = () => async (
diff --git a/src/middlewares/user/acceptPicture.ts b/src/middlewares/user/acceptPicture.ts
index 44d62423..15d8bf05 100644
--- a/src/middlewares/user/acceptPicture.ts
+++ b/src/middlewares/user/acceptPicture.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../models/ProfileSchema";
 
 /**
diff --git a/src/middlewares/user/deleteUser.ts b/src/middlewares/user/deleteUser.ts
index 6cecb1da..460cb038 100644
--- a/src/middlewares/user/deleteUser.ts
+++ b/src/middlewares/user/deleteUser.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../models/ProfileSchema";
 
 /**
diff --git a/src/middlewares/user/getUser.ts b/src/middlewares/user/getUser.ts
index 164483d5..de494e0f 100644
--- a/src/middlewares/user/getUser.ts
+++ b/src/middlewares/user/getUser.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../models/ProfileSchema";
 
 /**
diff --git a/src/middlewares/user/getUsersList.ts b/src/middlewares/user/getUsersList.ts
index 57dd0f06..2761145c 100644
--- a/src/middlewares/user/getUsersList.ts
+++ b/src/middlewares/user/getUsersList.ts
@@ -1,7 +1,8 @@
 import { NextFunction, Request, Response } from "express";
-import { FilterQuery } from "mongoose";
 import Profile, { IProfile } from "../../models/ProfileSchema";
 
+import { FilterQuery } from "mongoose";
+
 /**
  * -> All Profiles to res.data.profiles
  */
diff --git a/src/middlewares/user/notice/addNoticeToUser.ts b/src/middlewares/user/notice/addNoticeToUser.ts
index 77776b1e..0d46e29e 100644
--- a/src/middlewares/user/notice/addNoticeToUser.ts
+++ b/src/middlewares/user/notice/addNoticeToUser.ts
@@ -1,6 +1,7 @@
 import { NextFunction, Request, Response } from "express";
-import { Types } from "mongoose";
 import Profile, { INotice } from "../../../models/ProfileSchema";
+
+import { Types } from "mongoose";
 import { validateFields } from "../../utils/validateFields";
 
 const addNoticeToUser = (
diff --git a/src/middlewares/user/notice/deleteNotice.ts b/src/middlewares/user/notice/deleteNotice.ts
index 3a2e3163..a820add2 100644
--- a/src/middlewares/user/notice/deleteNotice.ts
+++ b/src/middlewares/user/notice/deleteNotice.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../../models/ProfileSchema";
 
 const deleteNotice = () => async (
diff --git a/src/middlewares/user/notice/getUserNoticeNum.ts b/src/middlewares/user/notice/getUserNoticeNum.ts
index 7209076b..51616818 100644
--- a/src/middlewares/user/notice/getUserNoticeNum.ts
+++ b/src/middlewares/user/notice/getUserNoticeNum.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../../models/ProfileSchema";
 
 const getUserNoticeNum = () => async (
diff --git a/src/middlewares/user/notice/getUserNotices.ts b/src/middlewares/user/notice/getUserNotices.ts
index a3b6d457..5907fe27 100644
--- a/src/middlewares/user/notice/getUserNotices.ts
+++ b/src/middlewares/user/notice/getUserNotices.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../../models/ProfileSchema";
 
 const getUserNotices = () => async (
diff --git a/src/middlewares/user/notice/markNoticeAsSeen.ts b/src/middlewares/user/notice/markNoticeAsSeen.ts
index bd6c1f8c..fd322d07 100644
--- a/src/middlewares/user/notice/markNoticeAsSeen.ts
+++ b/src/middlewares/user/notice/markNoticeAsSeen.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../../models/ProfileSchema";
 
 const markNoticeAsSeen = () => async (
diff --git a/src/middlewares/user/registerOwnUser.ts b/src/middlewares/user/registerOwnUser.ts
index 16cabc35..0cb88f89 100644
--- a/src/middlewares/user/registerOwnUser.ts
+++ b/src/middlewares/user/registerOwnUser.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../models/ProfileSchema";
 import { validateFields } from "../utils/validateFields";
 
diff --git a/src/middlewares/user/rejectPicture.ts b/src/middlewares/user/rejectPicture.ts
index b788dff9..22202962 100644
--- a/src/middlewares/user/rejectPicture.ts
+++ b/src/middlewares/user/rejectPicture.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../models/ProfileSchema";
 
 /**
diff --git a/src/middlewares/user/warning/addWarning.ts b/src/middlewares/user/warning/addWarning.ts
index 0cfdd33d..a9b98589 100644
--- a/src/middlewares/user/warning/addWarning.ts
+++ b/src/middlewares/user/warning/addWarning.ts
@@ -1,6 +1,7 @@
 import { NextFunction, Request, Response } from "express";
-import { Types } from "mongoose";
 import Profile, { IWarning } from "../../../models/ProfileSchema";
+
+import { Types } from "mongoose";
 import { validateFields } from "../../utils/validateFields";
 
 const addWarning = (
diff --git a/src/middlewares/user/warning/deleteWarning.ts b/src/middlewares/user/warning/deleteWarning.ts
index e51b071c..49d613be 100644
--- a/src/middlewares/user/warning/deleteWarning.ts
+++ b/src/middlewares/user/warning/deleteWarning.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../../models/ProfileSchema";
 
 const deleteWarning = () => async (
diff --git a/src/middlewares/user/warning/getUserWarningsList.ts b/src/middlewares/user/warning/getUserWarningsList.ts
index 8ad40428..80945dc6 100644
--- a/src/middlewares/user/warning/getUserWarningsList.ts
+++ b/src/middlewares/user/warning/getUserWarningsList.ts
@@ -1,4 +1,5 @@
 import { NextFunction, Request, Response } from "express";
+
 import Profile from "../../../models/ProfileSchema";
 
 const getUserWarnings = () => async (
diff --git a/src/middlewares/utils/validateFields.ts b/src/middlewares/utils/validateFields.ts
index 0b0d9214..97700272 100644
--- a/src/middlewares/utils/validateFields.ts
+++ b/src/middlewares/utils/validateFields.ts
@@ -1,5 +1,5 @@
-import { Request } from "express";
 import { ErrorHandler } from "./ErrorHandler";
+import { Request } from "express";
 
 interface IValidateFields {
   fields: {
diff --git a/src/models/CounterSchema.ts b/src/models/CounterSchema.ts
index 0a2d4d7a..40a88964 100644
--- a/src/models/CounterSchema.ts
+++ b/src/models/CounterSchema.ts
@@ -1,4 +1,4 @@
-import { Document, model, Schema } from "mongoose";
+import { Document, Schema, model } from "mongoose";
 
 export interface ICounter extends Document {
   _id: string;
diff --git a/src/models/FileSchema.ts b/src/models/FileSchema.ts
index 020c7b14..268514c6 100644
--- a/src/models/FileSchema.ts
+++ b/src/models/FileSchema.ts
@@ -1,4 +1,4 @@
-import { Document, model, Schema } from "mongoose";
+import { Document, Schema, model } from "mongoose";
 
 export interface IFile extends Document {
   path: string;
diff --git a/src/models/NewsSchema.ts b/src/models/NewsSchema.ts
index adec5e6f..72d32c23 100644
--- a/src/models/NewsSchema.ts
+++ b/src/models/NewsSchema.ts
@@ -1,4 +1,4 @@
-import { Document, model, Schema } from "mongoose";
+import { Document, Schema, model } from "mongoose";
 
 export interface INews extends Document {
   title: string;
diff --git a/src/models/ProfileSchema.ts b/src/models/ProfileSchema.ts
index 8aa926f3..011a4a4d 100644
--- a/src/models/ProfileSchema.ts
+++ b/src/models/ProfileSchema.ts
@@ -1,4 +1,4 @@
-import { Document, model, Schema } from "mongoose";
+import { Document, Schema, model } from "mongoose";
 
 export enum Role {
   Admin = "ADMIN",
diff --git a/src/models/TermSchema.ts b/src/models/TermSchema.ts
index 3b1367cb..a71858c1 100644
--- a/src/models/TermSchema.ts
+++ b/src/models/TermSchema.ts
@@ -1,4 +1,4 @@
-import { Document, model, Schema } from "mongoose";
+import { Document, Schema, model } from "mongoose";
 
 export enum MemberState {
   Accepted = "ACCEPTED",
diff --git a/src/models/user.interface.ts b/src/models/user.interface.ts
index 51a8e7b1..2981e326 100644
--- a/src/models/user.interface.ts
+++ b/src/models/user.interface.ts
@@ -1,5 +1,5 @@
-import { Token } from "simple-oauth2";
 import { Role } from "./ProfileSchema";
+import { Token } from "simple-oauth2";
 
 export interface User {
   email: string;
diff --git a/src/routes/files.ts b/src/routes/files.ts
index f548cc2b..e9d0591a 100644
--- a/src/routes/files.ts
+++ b/src/routes/files.ts
@@ -1,19 +1,19 @@
 import { Application } from "express";
-import multer from "multer";
-import isAdmin from "../middlewares/auth/isAdmin";
-import isRegistered from "../middlewares/auth/isRegistered";
-import example from "../middlewares/example";
 import createFile from "../middlewares/files/createFile";
+import createdResponse from "../middlewares/utils/createdResponse";
+import example from "../middlewares/example";
+import getFieldValue from "../middlewares/utils/getFieldValue";
+import getTerm from "../middlewares/term/getTerm";
+import getUser from "../middlewares/user/getUser";
 import { imageFilter } from "../middlewares/files/imageFilter";
 import { imageStorage } from "../middlewares/files/imageStorage";
+import isAdmin from "../middlewares/auth/isAdmin";
+import isRegistered from "../middlewares/auth/isRegistered";
+import multer from "multer";
 import sendFile from "../middlewares/files/sendFile";
+import setOwnUserId from "../middlewares/user/setOwnUserId";
 import updateProfilePicture from "../middlewares/files/updateProfilePicture";
 import updateTermCardBg from "../middlewares/files/updateTermCardBg";
-import getTerm from "../middlewares/term/getTerm";
-import getUser from "../middlewares/user/getUser";
-import setOwnUserId from "../middlewares/user/setOwnUserId";
-import createdResponse from "../middlewares/utils/createdResponse";
-import getFieldValue from "../middlewares/utils/getFieldValue";
 
 const profilePictureUpload = multer({
   storage: imageStorage("uploads/profile_pictures/"),
@@ -25,19 +25,62 @@ const CardImageUpload = multer({
   fileFilter: imageFilter,
 });
 
-// GetOwnPicture
-// GetOwnAcceptedPicture
-// GetUserPicture (userId)
-// GetUserAcceptedPicture (userId)
-// UploadOwnPicture
-// Get Staff Member Picture (userId)
-// Get User Accepted Picture (id)
-// Get Card SVG (userId, termId)
-// UpdateTermCardImage (termId)
-// Get Term Card Image (termId)
-// Future: OwnTermCardPreview(termId)
+// TODO in Future: OwnTermCardPreview(termId)
 
 const filesRoute = (prefix: string, app: Application): void => {
+  /**
+   * Get Own New Profile picture
+   * Role: Normal
+   */
+  app.get(
+    `${prefix}/me/picture/new`,
+    isRegistered(),
+    setOwnUserId(),
+    getUser("_id newPicture"),
+    getFieldValue("profile", "newPicture"),
+    sendFile()
+  );
+  /**
+   * Get Own Accepted Profile picture
+   * Role: Normal
+   */
+  app.get(`${prefix}/me/picture/accepted`, example());
+  /**
+   * Get a Users New Profile picture
+   * Role: Admin
+   */
+  app.get(`${prefix}/user/:userId/picture/new`, example());
+  /**
+   * Get a Users Accepted Profile picture
+   * Role: Admin
+   */
+  app.get(`${prefix}/user/:userId/picture/accepted`, example());
+  /**
+   * Upload Own New Profile picture
+   * Role: Normal
+   */
+  app.post(`${prefix}/me/picture/new`, example());
+  /**
+   * Get Staff members picture
+   * Role: Normal
+   */
+  app.get(`${prefix}/staff/:userId/picture`, example());
+  /**
+   * Get Card SVG of User
+   * Role: Admin
+   */
+  app.get(`${prefix}/term/:termId/user/:userId/card`, example());
+  /**
+   * Get Term Card Image
+   * Role: Admin
+   */
+  app.get(`${prefix}/term/:termId/card`, example());
+  /**
+   * Upload Term Card Image
+   * Role: Admin
+   */
+  app.post(`${prefix}/term/:termId/card`, example());
+
   // Get a users profile picture
   app.get(
     `${prefix}/user/:userId/picture`,
diff --git a/src/routes/news.ts b/src/routes/news.ts
index 2ff0944c..77fb7aa8 100644
--- a/src/routes/news.ts
+++ b/src/routes/news.ts
@@ -1,15 +1,15 @@
 import { Application } from "express";
-import isAdmin from "../middlewares/auth/isAdmin";
-import isRegistered from "../middlewares/auth/isRegistered";
 import addNews from "../middlewares/news/addNews";
+import createdResponse from "../middlewares/utils/createdResponse";
 import deleteNews from "../middlewares/news/deleteNews";
 import getNewsList from "../middlewares/news/getNewsList";
 import getOneNews from "../middlewares/news/getOneNews";
+import isAdmin from "../middlewares/auth/isAdmin";
+import isRegistered from "../middlewares/auth/isRegistered";
+import noContentResponse from "../middlewares/utils/noContentResponse";
 import responseNews from "../middlewares/news/responseNews";
 import responseOneNews from "../middlewares/news/responseOneNews";
 import updateNews from "../middlewares/news/updateNews";
-import createdResponse from "../middlewares/utils/createdResponse";
-import noContentResponse from "../middlewares/utils/noContentResponse";
 
 const newsRoute = (prefix: string, app: Application): void => {
   /**
diff --git a/src/routes/setErrorHandler.ts b/src/routes/setErrorHandler.ts
index e3c43f96..00f4f365 100644
--- a/src/routes/setErrorHandler.ts
+++ b/src/routes/setErrorHandler.ts
@@ -1,7 +1,8 @@
 import { Application, NextFunction, Request, Response } from "express";
+import { ErrorHandler, handleError } from "../middlewares/utils/ErrorHandler";
+
 import { Error as MongooseError } from "mongoose";
 import multer from "multer";
-import { ErrorHandler, handleError } from "../middlewares/utils/ErrorHandler";
 
 const setErrorHandler = (app: Application): void => {
   app.use((err: any, req: Request, res: Response, next: NextFunction) => {
diff --git a/src/routes/setRouters.ts b/src/routes/setRouters.ts
index 50d46c61..e7032938 100644
--- a/src/routes/setRouters.ts
+++ b/src/routes/setRouters.ts
@@ -6,12 +6,12 @@ import setErrorHandler from "./setErrorHandler";
 import termsRoute from "./terms";
 import userMembershipRoute from "./users/membership";
 import userNotificeRoute from "./users/notice";
-import usersRoute from "./users/user";
 import userWarningsRoute from "./users/warning";
+import usersRoute from "./users/user";
 
 const prefix = "/api/v1";
 
-export const setRouters = (app: Application): void => {
+const setRouters = (app: Application): void => {
   authRoute(prefix, app);
 
   filesRoute(`${prefix}/files`, app);
@@ -27,3 +27,5 @@ export const setRouters = (app: Application): void => {
 
   setErrorHandler(app);
 };
+
+export default setRouters;
diff --git a/src/routes/terms.ts b/src/routes/terms.ts
index 3c3d4385..8a22bf5a 100644
--- a/src/routes/terms.ts
+++ b/src/routes/terms.ts
@@ -1,25 +1,25 @@
 import { Application } from "express";
-import isAdmin from "../middlewares/auth/isAdmin";
-import isRegistered from "../middlewares/auth/isRegistered";
-import deleteFile from "../middlewares/files/deleteFile";
 import addMember from "../middlewares/term/addMember";
 import addTerm from "../middlewares/term/addTerm";
+import createdEmptyResponse from "../middlewares/utils/createdEmptyResponse";
+import createdResponse from "../middlewares/utils/createdResponse";
+import deleteFile from "../middlewares/files/deleteFile";
 import deleteTerm from "../middlewares/term/deleteTerm";
+import getFieldValue from "../middlewares/utils/getFieldValue";
 import getTerm from "../middlewares/term/getTerm";
 import getTermMembers from "../middlewares/term/getTermMembers";
 import getTermsList from "../middlewares/term/getTermsList";
+import getUser from "../middlewares/user/getUser";
+import isAdmin from "../middlewares/auth/isAdmin";
 import isNotMember from "../middlewares/term/isNotMember";
+import isRegistered from "../middlewares/auth/isRegistered";
+import noContentResponse from "../middlewares/utils/noContentResponse";
 import responseMembersList from "../middlewares/term/responseMembersList";
 import responseTerm from "../middlewares/term/responseTerm";
 import responseTermsList from "../middlewares/term/responseTermsList";
+import setOwnUserId from "../middlewares/user/setOwnUserId";
 import updateTerm from "../middlewares/term/updateTerm";
 import updateTermMember from "../middlewares/term/updateTermMember";
-import getUser from "../middlewares/user/getUser";
-import setOwnUserId from "../middlewares/user/setOwnUserId";
-import createdEmptyResponse from "../middlewares/utils/createdEmptyResponse";
-import createdResponse from "../middlewares/utils/createdResponse";
-import getFieldValue from "../middlewares/utils/getFieldValue";
-import noContentResponse from "../middlewares/utils/noContentResponse";
 
 const termsRoute = (prefix: string, app: Application): void => {
   /**
diff --git a/src/routes/users/membership.ts b/src/routes/users/membership.ts
index df9242fd..0a57b9d1 100644
--- a/src/routes/users/membership.ts
+++ b/src/routes/users/membership.ts
@@ -1,7 +1,7 @@
 import { Application } from "express";
+import getUserTermMemberships from "../../middlewares/term/getUserTermMemberships";
 import isAdmin from "../../middlewares/auth/isAdmin";
 import isRegistered from "../../middlewares/auth/isRegistered";
-import getUserTermMemberships from "../../middlewares/term/getUserTermMemberships";
 import responseTermsList from "../../middlewares/term/responseTermsList";
 import setOwnUserId from "../../middlewares/user/setOwnUserId";
 
diff --git a/src/routes/users/notice.ts b/src/routes/users/notice.ts
index 607a7770..a3401a4b 100644
--- a/src/routes/users/notice.ts
+++ b/src/routes/users/notice.ts
@@ -1,15 +1,15 @@
 import { Application } from "express";
-import isRegistered from "../../middlewares/auth/isRegistered";
-import example from "../../middlewares/example";
 import addNoticeToUser from "../../middlewares/user/notice/addNoticeToUser";
 import deleteNotice from "../../middlewares/user/notice/deleteNotice";
+import example from "../../middlewares/example";
 import getUserNoticeNum from "../../middlewares/user/notice/getUserNoticeNum";
 import getUserNotices from "../../middlewares/user/notice/getUserNotices";
+import isRegistered from "../../middlewares/auth/isRegistered";
 import markNoticeAsSeen from "../../middlewares/user/notice/markNoticeAsSeen";
+import noContentResponse from "../../middlewares/utils/noContentResponse";
 import responseNoticesList from "../../middlewares/user/notice/responseNoticesList";
 import responseNoticesNum from "../../middlewares/user/notice/responseNoticesNum";
 import setOwnUserId from "../../middlewares/user/setOwnUserId";
-import noContentResponse from "../../middlewares/utils/noContentResponse";
 
 const userNotificeRoute = (prefix: string, app: Application): void => {
   /**
diff --git a/src/routes/users/user.ts b/src/routes/users/user.ts
index 402a84a9..b54277fd 100644
--- a/src/routes/users/user.ts
+++ b/src/routes/users/user.ts
@@ -1,24 +1,24 @@
 import { Application } from "express";
-import isAdmin from "../../middlewares/auth/isAdmin";
-import isLoggedIn from "../../middlewares/auth/isLoggedIn";
-import isNotRegistered from "../../middlewares/auth/isNotRegistered";
-import isRegistered from "../../middlewares/auth/isRegistered";
-import deleteFile from "../../middlewares/files/deleteFile";
-import getUserTermMemberships from "../../middlewares/term/getUserTermMemberships";
-import responseTermsList from "../../middlewares/term/responseTermsList";
 import acceptPicture from "../../middlewares/user/acceptPicture";
+import createdResponse from "../../middlewares/utils/createdResponse";
+import deleteFile from "../../middlewares/files/deleteFile";
 import deleteUser from "../../middlewares/user/deleteUser";
+import getFieldValue from "../../middlewares/utils/getFieldValue";
 import getUser from "../../middlewares/user/getUser";
+import getUserTermMemberships from "../../middlewares/term/getUserTermMemberships";
 import getUsersList from "../../middlewares/user/getUsersList";
+import isAdmin from "../../middlewares/auth/isAdmin";
+import isLoggedIn from "../../middlewares/auth/isLoggedIn";
+import isNotRegistered from "../../middlewares/auth/isNotRegistered";
+import isRegistered from "../../middlewares/auth/isRegistered";
+import noContentResponse from "../../middlewares/utils/noContentResponse";
 import registerOwnUser from "../../middlewares/user/registerOwnUser";
 import rejectPicture from "../../middlewares/user/rejectPicture";
+import responseTermsList from "../../middlewares/term/responseTermsList";
 import responseUser from "../../middlewares/user/responseUser";
 import responseUsersList from "../../middlewares/user/responseUsersList";
 import setOwnUserId from "../../middlewares/user/setOwnUserId";
 import updateUser from "../../middlewares/user/updateUser";
-import createdResponse from "../../middlewares/utils/createdResponse";
-import getFieldValue from "../../middlewares/utils/getFieldValue";
-import noContentResponse from "../../middlewares/utils/noContentResponse";
 
 const usersRoute = (prefix: string, app: Application): void => {
   /**
diff --git a/src/routes/users/warning.ts b/src/routes/users/warning.ts
index 934d315a..3f4cb21c 100644
--- a/src/routes/users/warning.ts
+++ b/src/routes/users/warning.ts
@@ -1,13 +1,13 @@
 import { Application } from "express";
-import isAdmin from "../../middlewares/auth/isAdmin";
-import isRegistered from "../../middlewares/auth/isRegistered";
-import setOwnUserId from "../../middlewares/user/setOwnUserId";
 import addWarning from "../../middlewares/user/warning/addWarning";
 import deleteWarning from "../../middlewares/user/warning/deleteWarning";
 import getUserWarningsList from "../../middlewares/user/warning/getUserWarningsList";
+import isAdmin from "../../middlewares/auth/isAdmin";
+import isRegistered from "../../middlewares/auth/isRegistered";
+import noContentResponse from "../../middlewares/utils/noContentResponse";
 import responseWarningsList from "../../middlewares/user/warning/responseWarningsList";
+import setOwnUserId from "../../middlewares/user/setOwnUserId";
 import updateWarning from "../../middlewares/user/warning/updateWarning";
-import noContentResponse from "../../middlewares/utils/noContentResponse";
 
 const userWarningsRoute = (prefix: string, app: Application): void => {
   /**
-- 
GitLab