MASSIVE commit

- moved to typescript

- axios rate limitmodule is busted, removed for now, do something else for that

- sequelize-typescript

- dotenv, not dotenv-flow

- removed playlist details route

types for API

ton of minor fixes and improvements
This commit is contained in:
2025-03-11 15:24:45 -07:00
parent bcc39d5f38
commit a74ffc453e
68 changed files with 2795 additions and 1569 deletions

View File

@@ -1,29 +0,0 @@
import { Router } from "express";
const router = Router();
import { login, callback, refresh, logout } from "../controllers/auth.js";
import { isAuthenticated } from "../middleware/authCheck.js";
import { validate } from "../validators/index.js";
router.get(
"/login",
login
);
router.get(
"/callback",
callback
);
router.get(
"/refresh",
isAuthenticated,
refresh
);
router.get(
"/logout",
logout
);
export default router;

16
routes/auth.ts Normal file
View File

@@ -0,0 +1,16 @@
import { Router } from "express";
const authRouter: Router = Router();
import { login, callback, refresh, logout } from "../controllers/auth.ts";
import { isAuthenticated } from "../middleware/authCheck.ts";
import { validate } from "../validators/index.ts";
authRouter.get("/login", login);
authRouter.get("/callback", callback);
authRouter.get("/refresh", isAuthenticated, refresh);
authRouter.get("/logout", logout);
export default authRouter;

View File

@@ -1,47 +0,0 @@
import { Router } from "express";
const router = Router();
import { updateUser, fetchUser, createLink, removeLink, populateSingleLink, pruneSingleLink } from "../controllers/operations.js";
import { createLinkValidator, removeLinkValidator, populateSingleLinkValidator, pruneSingleLinkValidator } from "../validators/operations.js";
import { validate } from "../validators/index.js";
router.put(
"/update",
updateUser
);
router.get(
"/fetch",
fetchUser
);
router.post(
"/link",
createLinkValidator,
validate,
createLink
);
router.delete(
"/link",
removeLinkValidator,
validate,
removeLink
);
router.put(
"/populate/link",
populateSingleLinkValidator,
validate,
populateSingleLink
);
router.put(
"/prune/link",
pruneSingleLinkValidator,
validate,
pruneSingleLink
);
export default router;

43
routes/operations.ts Normal file
View File

@@ -0,0 +1,43 @@
import { Router } from "express";
const opRouter: Router = Router();
import {
updateUser,
fetchUser,
createLink,
removeLink,
populateSingleLink,
pruneSingleLink,
} from "../controllers/operations.ts";
import {
createLinkValidator,
removeLinkValidator,
populateSingleLinkValidator,
pruneSingleLinkValidator,
} from "../validators/operations.ts";
import { validate } from "../validators/index.ts";
opRouter.put("/update", updateUser);
opRouter.get("/fetch", fetchUser);
opRouter.post("/link", createLinkValidator, validate, createLink);
opRouter.delete("/link", removeLinkValidator, validate, removeLink);
opRouter.put(
"/populate/link",
populateSingleLinkValidator,
validate,
populateSingleLink
);
opRouter.put(
"/prune/link",
pruneSingleLinkValidator,
validate,
pruneSingleLink
);
export default opRouter;

View File

@@ -1,21 +0,0 @@
import { Router } from "express";
const router = Router();
import { fetchUserPlaylists, fetchPlaylistDetails } from "../controllers/playlists.js";
import { getPlaylistDetailsValidator } from "../validators/playlists.js";
import { validate } from "../validators/index.js";
router.get(
"/me",
fetchUserPlaylists
);
router.get(
"/details",
getPlaylistDetailsValidator,
validate,
fetchPlaylistDetails
);
export default router;

10
routes/playlists.ts Normal file
View File

@@ -0,0 +1,10 @@
import { Router } from "express";
const router: Router = Router();
import { fetchUserPlaylists } from "../controllers/playlists.ts";
import { validate } from "../validators/index.ts";
router.get("/me", fetchUserPlaylists);
export default router;