Skip to content

Commit 86fb87c

Browse files
authored
Merge pull request #83 from vbetsch/develop
Sprint 4 - Relate vaults to users
2 parents 905795d + 48a6f24 commit 86fb87c

File tree

51 files changed

+338
-205
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+338
-205
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/*
2+
Warnings:
3+
4+
- Added the required column `userId` to the `Vault` table without a default value. This is not possible if the table is not empty.
5+
6+
*/
7+
-- AlterTable
8+
ALTER TABLE "Vault" ADD COLUMN "userId" TEXT NOT NULL;
9+
10+
-- CreateIndex
11+
CREATE INDEX "Vault_userId_idx" ON "Vault"("userId");
12+
13+
-- AddForeignKey
14+
ALTER TABLE "Vault" ADD CONSTRAINT "Vault_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;

prisma/schema.prisma

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,31 @@ datasource db {
88
url = env("DATABASE_URL")
99
}
1010

11+
// --- Business ---
12+
13+
model Vault {
14+
uuid String @id @default(uuid())
15+
label String @db.VarChar(255)
16+
secret String
17+
createdAt DateTime @default(now())
18+
userId String
19+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
20+
21+
@@index([userId])
22+
}
23+
1124
// --- Next Auth ---
1225

1326
model User {
14-
id String @id @default(cuid())
15-
name String?
16-
email String @unique
17-
password String
18-
accounts Account[]
19-
sessions Session[]
27+
id String @id @default(cuid())
28+
name String?
29+
email String @unique
30+
password String
31+
accounts Account[]
32+
sessions Session[]
33+
34+
// Business
35+
vaults Vault[]
2036
}
2137

2238
model Account {
@@ -47,16 +63,7 @@ model VerificationToken {
4763
identifier String
4864
token String @unique
4965
expires DateTime
50-
@@map("verification_tokens")
51-
@@unique([identifier, token])
52-
}
53-
5466
55-
// --- Business ---
56-
57-
model Vault {
58-
uuid String @id @default(uuid())
59-
label String @db.VarChar(255)
60-
secret String
61-
createdAt DateTime @default(now())
67+
@@unique([identifier, token])
68+
@@map("verification_tokens")
6269
}

src/app/api/auth/register/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import type { HttpResponseDto } from '@shared/dto/output/responses/abstract/http
44
import type { RegisterDataDto } from '@shared/dto/output/data/register.data.dto';
55
import type { RegisterPayloadDto } from '@shared/dto/input/payloads/register.payload.dto';
66
import { container } from 'tsyringe';
7-
import { handleApiRequest } from '@api/helpers/api/handle-api-request';
7+
import { handleApiRequest } from '@api/app/helpers/handle-api-request';
88
import { StatusCodes } from 'http-status-codes';
99
import type { UserModelDto } from '@shared/dto/models/user.model.dto';
10-
import { RegisterUseCase } from '@api/usecases/auth/register.usecase';
10+
import { RegisterUseCase } from '@api/domain/usecases/auth/register.usecase';
1111

1212
/**
1313
* @swagger

src/app/api/vaults/[id]/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import 'reflect-metadata';
22
import type { NextRequest, NextResponse } from 'next/server';
33
import { container } from 'tsyringe';
4-
import { handleApiRequest } from '@api/helpers/api/handle-api-request';
4+
import { handleApiRequest } from '@api/app/helpers/handle-api-request';
55
import { StatusCodes } from 'http-status-codes';
6-
import { DeleteVaultUseCase } from '@api/usecases/vaults/delete-vault.usecase';
6+
import { DeleteVaultUseCase } from '@api/domain/usecases/vaults/delete-vault.usecase';
77
import type { CreateVaultParams } from '@shared/dto/input/params/create-vault.params';
88
import type { HttpOptions } from '@shared/dto/input/options/abstract/http-options';
99

src/app/api/vaults/route.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import 'reflect-metadata';
22
import type { NextRequest, NextResponse } from 'next/server';
33
import { container } from 'tsyringe';
4-
import { handleApiRequest } from '@api/helpers/api/handle-api-request';
4+
import { handleApiRequest } from '@api/app/helpers/handle-api-request';
55
import type { VaultModelDto } from '@shared/dto/models/vault.model.dto';
6-
import { CreateVaultUseCase } from '@api/usecases/vaults/create-vault.usecase';
7-
import { GetMyVaultsUseCase } from '@api/usecases/vaults/get-my-vaults.usecase';
6+
import { CreateVaultUseCase } from '@api/domain/usecases/vaults/create-vault.usecase';
7+
import { GetMyVaultsUseCase } from '@api/domain/usecases/vaults/get-my-vaults.usecase';
88
import { StatusCodes } from 'http-status-codes';
99
import type { CreateVaultDataDto } from '@shared/dto/output/data/create-vault.data.dto';
1010
import type { GetMyVaultsDataDto } from '@shared/dto/output/data/get-my-vaults.data.dto';

src/lib/auth.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import CredentialsProvider from 'next-auth/providers/credentials';
44
import { PrismaAdapter } from '@next-auth/prisma-adapter';
55
import prisma from '@lib/prisma';
66
import { RoutesEnum } from '@ui/router/routes.enum';
7-
import { SignInUseCase } from '@api/usecases/auth/signin.usecase';
7+
import { SignInUseCase } from '@api/domain/usecases/auth/signin.usecase';
88
import { container } from 'tsyringe';
99
import type { UserModelDto } from '@shared/dto/models/user.model.dto';
1010
import type { SignInPayloadDto } from '@shared/dto/input/payloads/sign-in.payload.dto';

src/modules/api/adapters/abstract/adapter.interface.ts renamed to src/modules/api/app/adapters/abstract/adapter.interface.ts

File renamed without changes.

src/modules/api/adapters/user.adapter.ts renamed to src/modules/api/app/adapters/user.adapter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { injectable } from 'tsyringe';
2-
import { IAdapter } from '@api/adapters/abstract/adapter.interface';
2+
import { IAdapter } from '@api/app/adapters/abstract/adapter.interface';
33
import { User } from '@prisma/generated';
44
import { UserModelDto } from '@shared/dto/models/user.model.dto';
55

src/modules/api/adapters/vault.adapter.ts renamed to src/modules/api/app/adapters/vault.adapter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { injectable } from 'tsyringe';
22
import { VaultModelDto } from '@shared/dto/models/vault.model.dto';
33
import { Vault } from '@prisma/generated';
4-
import { IAdapter } from '@api/adapters/abstract/adapter.interface';
4+
import { IAdapter } from '@api/app/adapters/abstract/adapter.interface';
55

66
@injectable()
77
export class VaultAdapter implements IAdapter<Vault, VaultModelDto> {
File renamed without changes.

0 commit comments

Comments
 (0)