From e512fab9f9213d06bd2bb826bcba37a37cdac788 Mon Sep 17 00:00:00 2001 From: rykuno Date: Sat, 31 Aug 2024 13:35:16 -0500 Subject: [PATCH] moved dto's out of server folder. --- src/lib/dtos/register-email.dto.ts | 18 ---------- src/lib/dtos/signin-email.dto.ts | 18 ---------- src/lib/dtos/update-email.dto.ts | 18 ---------- src/lib/dtos/verify-email.dto.ts | 18 ---------- .../common/inferfaces/controller.interface.ts | 7 ---- .../api/common/inferfaces/email.interface.ts | 3 -- .../server/api/controllers/iam.controller.ts | 8 ++--- src/lib/server/api/dtos/register-email.dto.ts | 7 ---- src/lib/server/api/dtos/signin-email.dto.ts | 8 ----- src/lib/server/api/dtos/update-email.dto.ts | 6 ---- src/lib/server/api/dtos/verify-email.dto.ts | 6 ---- src/lib/server/api/jobs/auth-cleanup.job.ts | 8 ++--- src/lib/server/api/services/iam.service.ts | 4 +-- src/lib/server/api/services/jobs.service.ts | 3 +- src/routes/(auth)/register/+page.server.ts | 6 ++-- src/routes/(auth)/register/+page.svelte | 36 ++++--------------- 16 files changed, 21 insertions(+), 153 deletions(-) delete mode 100644 src/lib/server/api/common/inferfaces/controller.interface.ts delete mode 100644 src/lib/server/api/dtos/register-email.dto.ts delete mode 100644 src/lib/server/api/dtos/signin-email.dto.ts delete mode 100644 src/lib/server/api/dtos/update-email.dto.ts delete mode 100644 src/lib/server/api/dtos/verify-email.dto.ts diff --git a/src/lib/dtos/register-email.dto.ts b/src/lib/dtos/register-email.dto.ts index d73db49..462c82e 100644 --- a/src/lib/dtos/register-email.dto.ts +++ b/src/lib/dtos/register-email.dto.ts @@ -1,23 +1,5 @@ import { z } from 'zod'; -/* -------------------------------------------------------------------------- */ -/* DTO */ -/* -------------------------------------------------------------------------- */ -/* -------------------------------------------------------------------------- */ -/* ---------------------------------- About --------------------------------- */ -/* -Data Transfer Objects (DTOs) are used to define the shape of data that is passed. -They are used to validate data and ensure that the correct data is being passed -to the correct methods. -*/ -/* ---------------------------------- Notes --------------------------------- */ -/* -DTO's are pretty flexible. You can use them anywhere you want in this application to -validate or shape data. They are especially useful in API routes and services to -ensure that the correct data is being passed around. -*/ -/* -------------------------------------------------------------------------- */ - export const registerEmailDto = z.object({ email: z.string().email() }); diff --git a/src/lib/dtos/signin-email.dto.ts b/src/lib/dtos/signin-email.dto.ts index 630f614..e04a046 100644 --- a/src/lib/dtos/signin-email.dto.ts +++ b/src/lib/dtos/signin-email.dto.ts @@ -1,23 +1,5 @@ import { z } from 'zod'; -/* -------------------------------------------------------------------------- */ -/* DTO */ -/* -------------------------------------------------------------------------- */ -/* -------------------------------------------------------------------------- */ -/* ---------------------------------- About --------------------------------- */ -/* -Data Transfer Objects (DTOs) are used to define the shape of data that is passed. -They are used to validate data and ensure that the correct data is being passed -to the correct methods. -*/ -/* ---------------------------------- Notes --------------------------------- */ -/* -DTO's are pretty flexible. You can use them anywhere you want in this application to -validate or shape data. They are especially useful in API routes and services to -ensure that the correct data is being passed around. -*/ -/* -------------------------------------------------------------------------- */ - export const signInEmailDto = z.object({ email: z.string().email(), token: z.string() diff --git a/src/lib/dtos/update-email.dto.ts b/src/lib/dtos/update-email.dto.ts index 94b9101..4ab90a4 100644 --- a/src/lib/dtos/update-email.dto.ts +++ b/src/lib/dtos/update-email.dto.ts @@ -1,23 +1,5 @@ import { z } from 'zod'; -/* -------------------------------------------------------------------------- */ -/* DTO */ -/* -------------------------------------------------------------------------- */ -/* -------------------------------------------------------------------------- */ -/* ---------------------------------- About --------------------------------- */ -/* -Data Transfer Objects (DTOs) are used to define the shape of data that is passed. -They are used to validate data and ensure that the correct data is being passed -to the correct methods. -*/ -/* ---------------------------------- Notes --------------------------------- */ -/* -DTO's are pretty flexible. You can use them anywhere you want in this application to -validate or shape data. They are especially useful in API routes and services to -ensure that the correct data is being passed around. -*/ -/* -------------------------------------------------------------------------- */ - export const updateEmailDto = z.object({ email: z.string().email() }); diff --git a/src/lib/dtos/verify-email.dto.ts b/src/lib/dtos/verify-email.dto.ts index f46f872..0366a20 100644 --- a/src/lib/dtos/verify-email.dto.ts +++ b/src/lib/dtos/verify-email.dto.ts @@ -1,23 +1,5 @@ import { z } from 'zod'; -/* -------------------------------------------------------------------------- */ -/* DTO */ -/* -------------------------------------------------------------------------- */ -/* -------------------------------------------------------------------------- */ -/* ---------------------------------- About --------------------------------- */ -/* -Data Transfer Objects (DTOs) are used to define the shape of data that is passed. -They are used to validate data and ensure that the correct data is being passed -to the correct methods. -*/ -/* ---------------------------------- Notes --------------------------------- */ -/* -DTO's are pretty flexible. You can use them anywhere you want in this application to -validate or shape data. They are especially useful in API routes and services to -ensure that the correct data is being passed around. -*/ -/* -------------------------------------------------------------------------- */ - export const verifyEmailDto = z.object({ token: z.string() }); diff --git a/src/lib/server/api/common/inferfaces/controller.interface.ts b/src/lib/server/api/common/inferfaces/controller.interface.ts deleted file mode 100644 index 1352a8f..0000000 --- a/src/lib/server/api/common/inferfaces/controller.interface.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Hono } from 'hono'; -import type { BlankSchema } from 'hono/types'; -import type { HonoTypes } from '../types/hono.type'; - -// export interface Controller { -// routes() -// } diff --git a/src/lib/server/api/common/inferfaces/email.interface.ts b/src/lib/server/api/common/inferfaces/email.interface.ts index 876f6e7..520bf17 100644 --- a/src/lib/server/api/common/inferfaces/email.interface.ts +++ b/src/lib/server/api/common/inferfaces/email.interface.ts @@ -1,6 +1,3 @@ - - - export interface Email { subject(): string html(): string; diff --git a/src/lib/server/api/controllers/iam.controller.ts b/src/lib/server/api/controllers/iam.controller.ts index 5df1b94..9fd2b2d 100644 --- a/src/lib/server/api/controllers/iam.controller.ts +++ b/src/lib/server/api/controllers/iam.controller.ts @@ -4,13 +4,13 @@ import { inject, injectable } from 'tsyringe'; import { zValidator } from '@hono/zod-validator'; import { IamService } from '../services/iam.service'; import { LuciaProvider } from '../providers/lucia.provider'; -import { signInEmailDto } from '../../../dtos/signin-email.dto'; -import { updateEmailDto } from '../../../dtos/update-email.dto'; -import { verifyEmailDto } from '../../../dtos/verify-email.dto'; -import { registerEmailDto } from '../../../dtos/register-email.dto'; import { limiter } from '../middlewares/rate-limiter.middlware'; import { requireAuth } from '../middlewares/auth.middleware'; import { Controler } from '../common/classes/controller.class'; +import { registerEmailDto } from '$lib/dtos/register-email.dto'; +import { signInEmailDto } from '$lib/dtos/signin-email.dto'; +import { updateEmailDto } from '$lib/dtos/update-email.dto'; +import { verifyEmailDto } from '$lib/dtos/verify-email.dto'; @injectable() export class IamController extends Controler { diff --git a/src/lib/server/api/dtos/register-email.dto.ts b/src/lib/server/api/dtos/register-email.dto.ts deleted file mode 100644 index 462c82e..0000000 --- a/src/lib/server/api/dtos/register-email.dto.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { z } from 'zod'; - -export const registerEmailDto = z.object({ - email: z.string().email() -}); - -export type RegisterEmailDto = z.infer; diff --git a/src/lib/server/api/dtos/signin-email.dto.ts b/src/lib/server/api/dtos/signin-email.dto.ts deleted file mode 100644 index e04a046..0000000 --- a/src/lib/server/api/dtos/signin-email.dto.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { z } from 'zod'; - -export const signInEmailDto = z.object({ - email: z.string().email(), - token: z.string() -}); - -export type SignInEmailDto = z.infer; diff --git a/src/lib/server/api/dtos/update-email.dto.ts b/src/lib/server/api/dtos/update-email.dto.ts deleted file mode 100644 index 4ab90a4..0000000 --- a/src/lib/server/api/dtos/update-email.dto.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { z } from 'zod'; - -export const updateEmailDto = z.object({ - email: z.string().email() -}); -export type UpdateEmailDto = z.infer; diff --git a/src/lib/server/api/dtos/verify-email.dto.ts b/src/lib/server/api/dtos/verify-email.dto.ts deleted file mode 100644 index 0366a20..0000000 --- a/src/lib/server/api/dtos/verify-email.dto.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { z } from 'zod'; - -export const verifyEmailDto = z.object({ - token: z.string() -}); -export type VerifyEmailDto = z.infer; diff --git a/src/lib/server/api/jobs/auth-cleanup.job.ts b/src/lib/server/api/jobs/auth-cleanup.job.ts index 629cfee..9202eaa 100644 --- a/src/lib/server/api/jobs/auth-cleanup.job.ts +++ b/src/lib/server/api/jobs/auth-cleanup.job.ts @@ -1,15 +1,15 @@ import { inject, injectable } from "tsyringe"; import { JobsService } from "../services/jobs.service"; +// Example on how to create a job that runs once a week at midnight on Sunday + @injectable() export class AuthCleanupJobs { private queue; - constructor( - @inject(JobsService) private jobsService: JobsService, - ) { + constructor(@inject(JobsService) private jobsService: JobsService) { /* ------------------------------ Create Queue ------------------------------ */ - this.queue = this.jobsService.createQueue('test') + this.queue = this.jobsService.createQueue('auth_cleanup') /* ---------------------------- Register Workers ---------------------------- */ this.worker(); diff --git a/src/lib/server/api/services/iam.service.ts b/src/lib/server/api/services/iam.service.ts index 35bce7d..9786f4e 100644 --- a/src/lib/server/api/services/iam.service.ts +++ b/src/lib/server/api/services/iam.service.ts @@ -3,8 +3,8 @@ import { MailerService } from './mailer.service'; import { TokensService } from './tokens.service'; import { LuciaProvider } from '../providers/lucia.provider'; import { UsersRepository } from '../repositories/users.repository'; -import type { SignInEmailDto } from '../dtos/signin-email.dto'; -import type { RegisterEmailDto } from '../dtos/register-email.dto'; +import type { SignInEmailDto } from '../../../dtos/signin-email.dto'; +import type { RegisterEmailDto } from '../../../dtos/register-email.dto'; import { LoginRequestsRepository } from '../repositories/login-requests.repository'; import { LoginVerificationEmail } from '../emails/login-verification.email'; import { DatabaseProvider } from '../providers/database.provider'; diff --git a/src/lib/server/api/services/jobs.service.ts b/src/lib/server/api/services/jobs.service.ts index 15aeaec..3bd5f55 100644 --- a/src/lib/server/api/services/jobs.service.ts +++ b/src/lib/server/api/services/jobs.service.ts @@ -4,8 +4,7 @@ import { RedisProvider } from "../providers/redis.provider"; @injectable() export class JobsService { - constructor(@inject(RedisProvider) private readonly redis: RedisProvider) { - } + constructor(@inject(RedisProvider) private readonly redis: RedisProvider) { } createQueue(name: string) { return new Queue(name, { connection: this.redis }) diff --git a/src/routes/(auth)/register/+page.server.ts b/src/routes/(auth)/register/+page.server.ts index e905a34..a5f00f9 100644 --- a/src/routes/(auth)/register/+page.server.ts +++ b/src/routes/(auth)/register/+page.server.ts @@ -1,9 +1,9 @@ import { fail, redirect } from '@sveltejs/kit'; import { zod } from 'sveltekit-superforms/adapters'; -import { signInEmailDto } from '$lib/dtos/signin-email.dto.js'; -import { setError, superValidate } from 'sveltekit-superforms'; -import { registerEmailDto } from '$lib/dtos/register-email.dto.js'; import { StatusCodes } from '$lib/constants/status-codes'; +import { registerEmailDto } from '$lib/dtos/register-email.dto'; +import { signInEmailDto } from '$lib/dtos/signin-email.dto'; +import { setError, superValidate } from 'sveltekit-superforms'; export const load = async () => { return { diff --git a/src/routes/(auth)/register/+page.svelte b/src/routes/(auth)/register/+page.svelte index 892272b..aaa423e 100644 --- a/src/routes/(auth)/register/+page.svelte +++ b/src/routes/(auth)/register/+page.svelte @@ -1,36 +1,15 @@ - -