diff --git a/sigap-website/src/repositories/authentication.repository.ts b/sigap-website/src/application/repositories/authentication.repository.ts similarity index 100% rename from sigap-website/src/repositories/authentication.repository.ts rename to sigap-website/src/application/repositories/authentication.repository.ts diff --git a/sigap-website/src/repositories/users.repository.ts b/sigap-website/src/application/repositories/users.repository.ts similarity index 98% rename from sigap-website/src/repositories/users.repository.ts rename to sigap-website/src/application/repositories/users.repository.ts index 86408c9..0cc5508 100644 --- a/sigap-website/src/repositories/users.repository.ts +++ b/sigap-website/src/application/repositories/users.repository.ts @@ -2,7 +2,8 @@ import { createAdminClient } from "@/app/_utils/supabase/admin"; import { createClient } from "@/app/_utils/supabase/client"; import { CreateUserParams, InviteUserParams, UpdateUserParams, User, UserResponse } from "@/src/entities/models/users/users.model"; import db from "@/prisma/db"; -import { DatabaseOperationError, NotFoundError, InputParseError, AuthenticationError, UnauthenticatedError, UnauthorizedError } from "@/path/to/custom/errors"; +import { DatabaseOperationError, NotFoundError } from "../entities/errors/common"; +import { AuthenticationError } from "../entities/errors/auth"; export class UsersRepository { private supabaseAdmin = createAdminClient(); diff --git a/sigap-website/src/application/services/crash-reporter.service.interface.ts b/sigap-website/src/application/services/crash-reporter.service.interface.ts new file mode 100644 index 0000000..b94f6b7 --- /dev/null +++ b/sigap-website/src/application/services/crash-reporter.service.interface.ts @@ -0,0 +1,3 @@ +export interface ICrashReporterService { + report(error: any): string; + } \ No newline at end of file diff --git a/sigap-website/src/application/services/instrumentation.service.interface.ts b/sigap-website/src/application/services/instrumentation.service.interface.ts new file mode 100644 index 0000000..9c8ff0f --- /dev/null +++ b/sigap-website/src/application/services/instrumentation.service.interface.ts @@ -0,0 +1,11 @@ +export interface IInstrumentationService { + startSpan( + options: { name: string; op?: string; attributes?: Record }, + callback: () => T + ): T; + instrumentServerAction( + name: string, + options: Record, + callback: () => T + ): Promise; + } \ No newline at end of file diff --git a/sigap-website/src/application/services/transaction-manager.service.interface.ts b/sigap-website/src/application/services/transaction-manager.service.interface.ts new file mode 100644 index 0000000..419cd62 --- /dev/null +++ b/sigap-website/src/application/services/transaction-manager.service.interface.ts @@ -0,0 +1,8 @@ +import type { ITransaction } from '@/src/entities/models/transaction.interface'; + +export interface ITransactionManagerService { + startTransaction( + clb: (tx: ITransaction) => Promise, + parent?: ITransaction + ): Promise; +} \ No newline at end of file diff --git a/sigap-website/src/entities/models/transaction.interface.ts b/sigap-website/src/entities/models/transaction.interface.ts new file mode 100644 index 0000000..982a652 --- /dev/null +++ b/sigap-website/src/entities/models/transaction.interface.ts @@ -0,0 +1,3 @@ +export interface ITransaction { + rollback: () => void; + } \ No newline at end of file