Pārlūkot izejas kodu

refactor: Updates backend module file structure

Owen Diffey 1 gadu atpakaļ
vecāks
revīzija
9220eaf873
36 mainītis faili ar 35 papildinājumiem un 32 dzēšanām
  1. 1 1
      backend/src/JobContext.ts
  2. 1 1
      backend/src/modules/APIModule.ts
  3. 8 6
      backend/src/modules/DataModule.ts
  4. 0 0
      backend/src/modules/DataModule/models/Migration.ts
  5. 1 1
      backend/src/modules/DataModule/models/migrations/1620330161000-news-markdown.ts
  6. 0 0
      backend/src/modules/DataModule/models/permissions/isDj.ts
  7. 0 0
      backend/src/modules/DataModule/models/permissions/isLoggedIn.ts
  8. 0 0
      backend/src/modules/DataModule/models/permissions/isOwner.ts
  9. 1 1
      backend/src/modules/DataModule/models/permissions/isPrivate.ts
  10. 1 1
      backend/src/modules/DataModule/models/permissions/isPublic.ts
  11. 1 1
      backend/src/modules/DataModule/models/permissions/isUnlisted.ts
  12. 0 0
      backend/src/modules/DataModule/models/plugins/documentVersion.ts
  13. 0 0
      backend/src/modules/DataModule/models/plugins/getData.ts
  14. 0 0
      backend/src/modules/DataModule/models/schemas/abc/schema.ts
  15. 0 0
      backend/src/modules/DataModule/models/schemas/news/NewsStatus.ts
  16. 0 0
      backend/src/modules/DataModule/models/schemas/news/config.ts
  17. 0 0
      backend/src/modules/DataModule/models/schemas/news/getData.ts
  18. 1 1
      backend/src/modules/DataModule/models/schemas/news/schema.ts
  19. 0 0
      backend/src/modules/DataModule/models/schemas/sessions/schema.ts
  20. 0 0
      backend/src/modules/DataModule/models/schemas/stations/StationAutofillMode.ts
  21. 0 0
      backend/src/modules/DataModule/models/schemas/stations/StationPrivacy.ts
  22. 0 0
      backend/src/modules/DataModule/models/schemas/stations/StationRequestsAccess.ts
  23. 0 0
      backend/src/modules/DataModule/models/schemas/stations/StationTheme.ts
  24. 0 0
      backend/src/modules/DataModule/models/schemas/stations/StationType.ts
  25. 5 5
      backend/src/modules/DataModule/models/schemas/stations/config.ts
  26. 0 0
      backend/src/modules/DataModule/models/schemas/stations/getData.ts
  27. 1 1
      backend/src/modules/DataModule/models/schemas/stations/schema.ts
  28. 0 0
      backend/src/modules/DataModule/models/schemas/users/UserAvatarColor.ts
  29. 0 0
      backend/src/modules/DataModule/models/schemas/users/UserAvatarType.ts
  30. 0 0
      backend/src/modules/DataModule/models/schemas/users/UserRole.ts
  31. 0 0
      backend/src/modules/DataModule/models/schemas/users/config.ts
  32. 0 0
      backend/src/modules/DataModule/models/schemas/users/schema.ts
  33. 1 1
      backend/src/types/JobOptions.ts
  34. 5 5
      backend/src/types/Models.ts
  35. 6 6
      backend/src/types/Schemas.ts
  36. 2 1
      backend/tsconfig.json

+ 1 - 1
backend/src/JobContext.ts

@@ -1,5 +1,5 @@
 import { Types } from "mongoose";
-import { SessionSchema } from "@/models/schemas/sessions/schema";
+import { SessionSchema } from "@models/schemas/sessions/schema";
 import BaseModule from "@/BaseModule";
 import Job from "@/Job";
 import { Log } from "@/LogBook";

+ 1 - 1
backend/src/modules/APIModule.ts

@@ -1,5 +1,5 @@
 import { Types } from "mongoose";
-import { UserRole } from "@/models/schemas/users/UserRole";
+import { UserRole } from "@models/schemas/users/UserRole";
 import JobContext from "@/JobContext";
 import BaseModule from "@/BaseModule";
 import { UniqueMethods } from "@/types/Modules";

+ 8 - 6
backend/src/modules/DataModule.ts

@@ -9,9 +9,9 @@ import { patchHistoryPlugin, patchEventEmitter } from "ts-patch-mongoose";
 import { readdir } from "fs/promises";
 import path from "path";
 import updateVersioningPlugin from "mongoose-update-versioning";
-import documentVersionPlugin from "@/models/plugins/documentVersion";
-import getDataPlugin from "@/models/plugins/getData";
-import Migration from "@/models/Migration";
+import documentVersionPlugin from "@models/plugins/documentVersion";
+import getDataPlugin from "@models/plugins/getData";
+import Migration from "@models/Migration";
 import JobContext from "@/JobContext";
 import BaseModule, { ModuleStatus } from "@/BaseModule";
 import { UniqueMethods } from "@/types/Modules";
@@ -169,7 +169,7 @@ export class DataModule extends BaseModule {
 		if (!this._mongoConnection) throw new Error("Mongo is not available");
 
 		const { schema }: { schema: Schemas[ModelName] } = await import(
-			`../models/schemas/${modelName.toString()}/schema`
+			`./DataModule/models/schemas/${modelName.toString()}/schema`
 		);
 
 		schema.plugin(documentVersionPlugin);
@@ -297,13 +297,15 @@ export class DataModule extends BaseModule {
 		if (!this._mongoConnection) throw new Error("Mongo is not available");
 
 		const migrations = await readdir(
-			path.resolve(__dirname, "../models/migrations/")
+			path.resolve(__dirname, "./DataModule/models/migrations/")
 		);
 
 		return Promise.all(
 			migrations.map(async migrationFile => {
 				const { default: Migrate }: { default: typeof Migration } =
-					await import(`../models/migrations/${migrationFile}`);
+					await import(
+						`./DataModule/models/migrations/${migrationFile}`
+					);
 				return new Migrate(this._mongoConnection as Connection);
 			})
 		);

+ 0 - 0
backend/src/models/Migration.ts → backend/src/modules/DataModule/models/Migration.ts


+ 1 - 1
backend/src/models/migrations/1620330161000-news-markdown.ts → backend/src/modules/DataModule/models/migrations/1620330161000-news-markdown.ts

@@ -1,4 +1,4 @@
-import Migration from "@/models/Migration";
+import Migration from "@models/Migration";
 
 export default class Migration1620330161000 extends Migration {
 	async up() {

+ 0 - 0
backend/src/models/permissions/isDj.ts → backend/src/modules/DataModule/models/permissions/isDj.ts


+ 0 - 0
backend/src/models/permissions/isLoggedIn.ts → backend/src/modules/DataModule/models/permissions/isLoggedIn.ts


+ 0 - 0
backend/src/models/permissions/isOwner.ts → backend/src/modules/DataModule/models/permissions/isOwner.ts


+ 1 - 1
backend/src/models/permissions/isPrivate.ts → backend/src/modules/DataModule/models/permissions/isPrivate.ts

@@ -1,3 +1,3 @@
-import { StationPrivacy } from "@/models/schemas/stations/StationPrivacy";
+import { StationPrivacy } from "@models/schemas/stations/StationPrivacy";
 
 export default model => model && model.privacy === StationPrivacy.PRIVATE;

+ 1 - 1
backend/src/models/permissions/isPublic.ts → backend/src/modules/DataModule/models/permissions/isPublic.ts

@@ -1,3 +1,3 @@
-import { StationPrivacy } from "@/models/schemas/stations/StationPrivacy";
+import { StationPrivacy } from "@models/schemas/stations/StationPrivacy";
 
 export default model => model && model.privacy === StationPrivacy.PUBLIC;

+ 1 - 1
backend/src/models/permissions/isUnlisted.ts → backend/src/modules/DataModule/models/permissions/isUnlisted.ts

@@ -1,3 +1,3 @@
-import { StationPrivacy } from "@/models/schemas/stations/StationPrivacy";
+import { StationPrivacy } from "@models/schemas/stations/StationPrivacy";
 
 export default model => model && model.privacy === StationPrivacy.UNLISTED;

+ 0 - 0
backend/src/models/plugins/documentVersion.ts → backend/src/modules/DataModule/models/plugins/documentVersion.ts


+ 0 - 0
backend/src/models/plugins/getData.ts → backend/src/modules/DataModule/models/plugins/getData.ts


+ 0 - 0
backend/src/models/schemas/abc/schema.ts → backend/src/modules/DataModule/models/schemas/abc/schema.ts


+ 0 - 0
backend/src/models/schemas/news/NewsStatus.ts → backend/src/modules/DataModule/models/schemas/news/NewsStatus.ts


+ 0 - 0
backend/src/models/schemas/news/config.ts → backend/src/modules/DataModule/models/schemas/news/config.ts


+ 0 - 0
backend/src/models/schemas/news/getData.ts → backend/src/modules/DataModule/models/schemas/news/getData.ts


+ 1 - 1
backend/src/models/schemas/news/schema.ts → backend/src/modules/DataModule/models/schemas/news/schema.ts

@@ -6,7 +6,7 @@ import {
 	SchemaTypes,
 	Types
 } from "mongoose";
-import { GetData } from "@/models/plugins/getData";
+import { GetData } from "@models/plugins/getData";
 import { BaseSchema } from "@/types/Schemas";
 import JobContext from "@/JobContext";
 import { NewsStatus } from "./NewsStatus";

+ 0 - 0
backend/src/models/schemas/sessions/schema.ts → backend/src/modules/DataModule/models/schemas/sessions/schema.ts


+ 0 - 0
backend/src/models/schemas/stations/StationAutofillMode.ts → backend/src/modules/DataModule/models/schemas/stations/StationAutofillMode.ts


+ 0 - 0
backend/src/models/schemas/stations/StationPrivacy.ts → backend/src/modules/DataModule/models/schemas/stations/StationPrivacy.ts


+ 0 - 0
backend/src/models/schemas/stations/StationRequestsAccess.ts → backend/src/modules/DataModule/models/schemas/stations/StationRequestsAccess.ts


+ 0 - 0
backend/src/models/schemas/stations/StationTheme.ts → backend/src/modules/DataModule/models/schemas/stations/StationTheme.ts


+ 0 - 0
backend/src/models/schemas/stations/StationType.ts → backend/src/modules/DataModule/models/schemas/stations/StationType.ts


+ 5 - 5
backend/src/models/schemas/stations/config.ts → backend/src/modules/DataModule/models/schemas/stations/config.ts

@@ -1,8 +1,8 @@
-import isDj from "@/models/permissions/isDj";
-import isPublic from "@/models/permissions/isPublic";
-import isUnlisted from "@/models/permissions/isUnlisted";
-import isLoggedIn from "@/models/permissions/isLoggedIn";
-import isOwner from "@/models/permissions/isOwner";
+import isDj from "@models/permissions/isDj";
+import isPublic from "@models/permissions/isPublic";
+import isUnlisted from "@models/permissions/isUnlisted";
+import isLoggedIn from "@models/permissions/isLoggedIn";
+import isOwner from "@models/permissions/isOwner";
 import getData from "./getData";
 
 export default {

+ 0 - 0
backend/src/models/schemas/stations/getData.ts → backend/src/modules/DataModule/models/schemas/stations/getData.ts


+ 1 - 1
backend/src/models/schemas/stations/schema.ts → backend/src/modules/DataModule/models/schemas/stations/schema.ts

@@ -1,5 +1,5 @@
 import { Model, Schema, SchemaTypes, Types } from "mongoose";
-import { GetData } from "@/models/plugins/getData";
+import { GetData } from "@models/plugins/getData";
 import { BaseSchema } from "@/types/Schemas";
 import { StationType } from "./StationType";
 import { StationPrivacy } from "./StationPrivacy";

+ 0 - 0
backend/src/models/schemas/users/UserAvatarColor.ts → backend/src/modules/DataModule/models/schemas/users/UserAvatarColor.ts


+ 0 - 0
backend/src/models/schemas/users/UserAvatarType.ts → backend/src/modules/DataModule/models/schemas/users/UserAvatarType.ts


+ 0 - 0
backend/src/models/schemas/users/UserRole.ts → backend/src/modules/DataModule/models/schemas/users/UserRole.ts


+ 0 - 0
backend/src/models/schemas/users/config.ts → backend/src/modules/DataModule/models/schemas/users/config.ts


+ 0 - 0
backend/src/models/schemas/users/schema.ts → backend/src/modules/DataModule/models/schemas/users/schema.ts


+ 1 - 1
backend/src/types/JobOptions.ts

@@ -1,4 +1,4 @@
-import { SessionSchema } from "@/models/schemas/session";
+import { SessionSchema } from "@models/schemas/session";
 
 export type JobOptions = {
 	priority?: number;

+ 5 - 5
backend/src/types/Models.ts

@@ -1,8 +1,8 @@
-import { AbcModel } from "@/models/schemas/abc/schema";
-import { NewsModel } from "@/models/schemas/news/schema";
-import { SessionModel } from "@/models/schemas/sessions/schema";
-import { StationModel } from "@/models/schemas/stations/schema";
-import { UserModel } from "@/models/schemas/users/schema";
+import { AbcModel } from "@models/schemas/abc/schema";
+import { NewsModel } from "@models/schemas/news/schema";
+import { SessionModel } from "@models/schemas/sessions/schema";
+import { StationModel } from "@models/schemas/stations/schema";
+import { UserModel } from "@models/schemas/users/schema";
 
 export type Models = {
 	abc: AbcModel;

+ 6 - 6
backend/src/types/Schemas.ts

@@ -1,10 +1,10 @@
 import { Types } from "mongoose";
-import { AbcSchemaType } from "@/models/schemas/abc/schema";
-import { NewsSchemaType } from "@/models/schemas/news/schema";
-import { SessionSchemaType } from "@/models/schemas/session/schema";
-import { StationSchemaType } from "@/models/schemas/station/schema";
-import { UserSchemaType } from "@/models/schemas/user/schema";
-import { DocumentVersion } from "@/models/plugins/documentVersion";
+import { AbcSchemaType } from "@models/schemas/abc/schema";
+import { NewsSchemaType } from "@models/schemas/news/schema";
+import { SessionSchemaType } from "@models/schemas/session/schema";
+import { StationSchemaType } from "@models/schemas/station/schema";
+import { UserSchemaType } from "@models/schemas/user/schema";
+import { DocumentVersion } from "@models/plugins/documentVersion";
 
 // eslint-disable-next-line
 export interface BaseSchema extends DocumentVersion, TimestampsSchema {

+ 2 - 1
backend/tsconfig.json

@@ -31,7 +31,8 @@
     "baseUrl": "./",                                  /* Specify the base directory to resolve non-relative module names. */
     "paths": {
       /* Specify a set of entries that re-map imports to additional lookup locations. */
-      "@/*": ["src/*"]
+      "@/*": ["src/*"],
+      "@models/*": ["src/modules/DataModule/models/*"]
     },
     // "rootDirs": [],                                   /* Allow multiple folders to be treated as one when resolving modules. */
     // "typeRoots": [],                                  /* Specify multiple folders that act like './node_modules/@types'. */