From 0cbf2fbd44f0c51d7ab4a921427faec4d4c0244e Mon Sep 17 00:00:00 2001 From: Nevo David Date: Sat, 19 Oct 2024 23:37:54 +0700 Subject: [PATCH 01/73] feat: public api --- .../src/services/auth/auth.middleware.ts | 4 +++ .../organizations/organization.repository.ts | 13 +++++++ .../organizations/organization.service.ts | 4 +++ .../src/database/prisma/schema.prisma | 35 ++++++++++--------- 4 files changed, 39 insertions(+), 17 deletions(-) diff --git a/apps/backend/src/services/auth/auth.middleware.ts b/apps/backend/src/services/auth/auth.middleware.ts index a10a7e12..e4457cb5 100644 --- a/apps/backend/src/services/auth/auth.middleware.ts +++ b/apps/backend/src/services/auth/auth.middleware.ts @@ -81,6 +81,10 @@ export class AuthMiddleware implements NestMiddleware { throw new HttpForbiddenException(); } + if (!setOrg.apiKey) { + await this._organizationService.updateApiKey(setOrg.id); + } + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error req.user = user; diff --git a/libraries/nestjs-libraries/src/database/prisma/organizations/organization.repository.ts b/libraries/nestjs-libraries/src/database/prisma/organizations/organization.repository.ts index 85084600..12c3c50a 100644 --- a/libraries/nestjs-libraries/src/database/prisma/organizations/organization.repository.ts +++ b/libraries/nestjs-libraries/src/database/prisma/organizations/organization.repository.ts @@ -3,6 +3,7 @@ import { Role, SubscriptionTier } from '@prisma/client'; import { Injectable } from '@nestjs/common'; import { AuthService } from '@gitroom/helpers/auth/auth.service'; import { CreateOrgUserDto } from '@gitroom/nestjs-libraries/dtos/auth/create.org.user.dto'; +import { makeId } from '@gitroom/nestjs-libraries/services/make.is'; @Injectable() export class OrganizationRepository { @@ -83,6 +84,17 @@ export class OrganizationRepository { }); } + updateApiKey(orgId: string) { + return this._organization.model.organization.update({ + where: { + id: orgId, + }, + data: { + apiKey: AuthService.fixedEncryption(makeId(20)), + }, + }); + } + async getOrgsByUserId(userId: string) { return this._organization.model.organization.findMany({ where: { @@ -183,6 +195,7 @@ export class OrganizationRepository { return this._organization.model.organization.create({ data: { name: body.company, + apiKey: AuthService.fixedEncryption(makeId(20)), users: { create: { role: Role.SUPERADMIN, diff --git a/libraries/nestjs-libraries/src/database/prisma/organizations/organization.service.ts b/libraries/nestjs-libraries/src/database/prisma/organizations/organization.service.ts index db239ac3..ef2ab22d 100644 --- a/libraries/nestjs-libraries/src/database/prisma/organizations/organization.service.ts +++ b/libraries/nestjs-libraries/src/database/prisma/organizations/organization.service.ts @@ -41,6 +41,10 @@ export class OrganizationService { return this._organizationRepository.getOrgsByUserId(userId); } + updateApiKey(orgId: string) { + return this._organizationRepository.updateApiKey(orgId); + } + getTeam(orgId: string) { return this._organizationRepository.getTeam(orgId); } diff --git a/libraries/nestjs-libraries/src/database/prisma/schema.prisma b/libraries/nestjs-libraries/src/database/prisma/schema.prisma index a2858330..82484055 100644 --- a/libraries/nestjs-libraries/src/database/prisma/schema.prisma +++ b/libraries/nestjs-libraries/src/database/prisma/schema.prisma @@ -11,24 +11,25 @@ datasource db { } model Organization { - id String @id @default(uuid()) - name String - description String? - users UserOrganization[] - media Media[] - paymentId String? - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - github GitHub[] - subscription Subscription? - Integration Integration[] - post Post[] @relation("organization") - submittedPost Post[] @relation("submittedForOrg") - Comments Comments[] - notifications Notifications[] + id String @id @default(uuid()) + name String + description String? + apiKey String? + users UserOrganization[] + media Media[] + paymentId String? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + github GitHub[] + subscription Subscription? + Integration Integration[] + post Post[] @relation("organization") + submittedPost Post[] @relation("submittedForOrg") + Comments Comments[] + notifications Notifications[] buyerOrganization MessagesGroup[] - usedCodes UsedCodes[] - credits Credits[] + usedCodes UsedCodes[] + credits Credits[] } model User { From 87892ed815200b9db7bbb0218a46364d55b71c7e Mon Sep 17 00:00:00 2001 From: Nevo David Date: Sat, 14 Dec 2024 12:12:51 +0700 Subject: [PATCH 02/73] feat: fix onboarding --- .../launches/add.provider.component.tsx | 5 +- .../launches/launches.component.tsx | 2 + .../onboarding/connect.channels.tsx | 130 ++++++++++++++++-- 3 files changed, 120 insertions(+), 17 deletions(-) diff --git a/apps/frontend/src/components/launches/add.provider.component.tsx b/apps/frontend/src/components/launches/add.provider.component.tsx index dc5e9049..f7e58044 100644 --- a/apps/frontend/src/components/launches/add.provider.component.tsx +++ b/apps/frontend/src/components/launches/add.provider.component.tsx @@ -191,10 +191,11 @@ export const CustomVariables: FC<{ validation: string; type: 'text' | 'password'; }>; + close?: () => void; identifier: string; gotoUrl(url: string): void; }> = (props) => { - const { gotoUrl, identifier, variables } = props; + const { close, gotoUrl, identifier, variables } = props; const modals = useModals(); const schema = useMemo(() => { return object({ @@ -241,7 +242,7 @@ export const CustomVariables: FC<{
+ + +
+ + + + ))} + + +
+
+

Add a comment

+
+
+