diff --git a/front/src/modules/ui/components/buttons/__stories__/Button.stories.tsx b/front/src/modules/ui/components/buttons/__stories__/Button.stories.tsx
index 18aec7712..add0b93c3 100644
--- a/front/src/modules/ui/components/buttons/__stories__/Button.stories.tsx
+++ b/front/src/modules/ui/components/buttons/__stories__/Button.stories.tsx
@@ -189,16 +189,6 @@ MediumSize.parameters = {
// Small size
export const SmallSize: Story = {
render: getRenderWrapperForComponent(),
- play: async ({ canvasElement }) => {
- const canvas = within(canvasElement);
-
- expect(clickJestFn).toHaveBeenCalledTimes(0);
-
- const button = canvas.getByTestId('primary-button-default');
- await userEvent.click(button);
-
- expect(clickJestFn).toHaveBeenCalledTimes(1);
- },
};
SmallSize.parameters = {
pseudo: {
diff --git a/front/src/modules/ui/components/buttons/__stories__/MainButton.stories.tsx b/front/src/modules/ui/components/buttons/__stories__/MainButton.stories.tsx
index c9d164401..0b3182037 100644
--- a/front/src/modules/ui/components/buttons/__stories__/MainButton.stories.tsx
+++ b/front/src/modules/ui/components/buttons/__stories__/MainButton.stories.tsx
@@ -65,15 +65,6 @@ export const DefaultSecondary: Story = {
variant="secondary"
/>,
),
- play: async ({ canvasElement }) => {
- const canvas = within(canvasElement);
-
- expect(clickJestFn).toHaveBeenCalledTimes(0);
- const button = canvas.getByRole('button');
- await userEvent.click(button);
-
- expect(clickJestFn).toHaveBeenCalledTimes(1);
- },
};
export const WithIconSecondary: Story = {
diff --git a/server/package.json b/server/package.json
index b1c8487ba..db44a550f 100644
--- a/server/package.json
+++ b/server/package.json
@@ -31,7 +31,6 @@
"@casl/ability": "^6.5.0",
"@casl/prisma": "^1.4.0",
"@nestjs/apollo": "^11.0.5",
- "@nestjs/axios": "^3.0.0",
"@nestjs/common": "^9.0.0",
"@nestjs/config": "^2.3.2",
"@nestjs/core": "^9.0.0",
diff --git a/server/src/app.module.ts b/server/src/app.module.ts
index f87099d86..8ef5273c3 100644
--- a/server/src/app.module.ts
+++ b/server/src/app.module.ts
@@ -10,7 +10,6 @@ import { GraphQLError } from 'graphql';
import { PrismaModule } from './database/prisma.module';
import { HealthModule } from './health/health.module';
import { AbilityModule } from './ability/ability.module';
-import { EventModule } from './core/analytics/event.module';
import GraphQLJSON from 'graphql-type-json';
@Module({
@@ -34,7 +33,6 @@ import GraphQLJSON from 'graphql-type-json';
HealthModule,
AbilityModule,
CoreModule,
- EventModule,
],
providers: [AppService],
})
diff --git a/server/src/core/analytics/event.entity.ts b/server/src/core/analytics/analytics.entity.ts
similarity index 88%
rename from server/src/core/analytics/event.entity.ts
rename to server/src/core/analytics/analytics.entity.ts
index 2bffd9f57..fcccbb7bf 100644
--- a/server/src/core/analytics/event.entity.ts
+++ b/server/src/core/analytics/analytics.entity.ts
@@ -1,7 +1,7 @@
import { ObjectType, Field } from '@nestjs/graphql';
@ObjectType()
-export class Event {
+export class Analytics {
@Field(() => Boolean, {
description: 'Boolean that confirms query was dispatched',
})
diff --git a/server/src/core/analytics/analytics.module.ts b/server/src/core/analytics/analytics.module.ts
new file mode 100644
index 000000000..85f100ec2
--- /dev/null
+++ b/server/src/core/analytics/analytics.module.ts
@@ -0,0 +1,8 @@
+import { Module } from '@nestjs/common';
+import { AnalyticsService } from './analytics.service';
+import { AnalyticsResolver } from './analytics.resolver';
+
+@Module({
+ providers: [AnalyticsResolver, AnalyticsService],
+})
+export class AnalyticsModule {}
diff --git a/server/src/core/analytics/analytics.resolver.spec.ts b/server/src/core/analytics/analytics.resolver.spec.ts
new file mode 100644
index 000000000..5bf52c768
--- /dev/null
+++ b/server/src/core/analytics/analytics.resolver.spec.ts
@@ -0,0 +1,19 @@
+import { Test, TestingModule } from '@nestjs/testing';
+import { AnalyticsResolver } from './analytics.resolver';
+import { AnalyticsService } from './analytics.service';
+
+describe('AnalyticsResolver', () => {
+ let resolver: AnalyticsResolver;
+
+ beforeEach(async () => {
+ const module: TestingModule = await Test.createTestingModule({
+ providers: [AnalyticsResolver, AnalyticsService],
+ }).compile();
+
+ resolver = module.get(AnalyticsResolver);
+ });
+
+ it('should be defined', () => {
+ expect(resolver).toBeDefined();
+ });
+});
diff --git a/server/src/core/analytics/event.resolver.ts b/server/src/core/analytics/analytics.resolver.ts
similarity index 53%
rename from server/src/core/analytics/event.resolver.ts
rename to server/src/core/analytics/analytics.resolver.ts
index c660d56e4..2504c17dc 100644
--- a/server/src/core/analytics/event.resolver.ts
+++ b/server/src/core/analytics/analytics.resolver.ts
@@ -1,7 +1,7 @@
import { Resolver, Mutation, Args } from '@nestjs/graphql';
-import { EventService } from './event.service';
-import { Event } from './event.entity';
-import { CreateEventInput } from './dto/create-event.input';
+import { AnalyticsService } from './analytics.service';
+import { Analytics } from './analytics.entity';
+import { CreateAnalyticsInput } from './dto/create-analytics.input';
import { OptionalJwtAuthGuard } from 'src/guards/optional-jwt.auth.guard';
import { UseGuards } from '@nestjs/common';
import { AuthWorkspace } from 'src/decorators/auth-workspace.decorator';
@@ -9,16 +9,16 @@ import { User, Workspace } from '@prisma/client';
import { AuthUser } from 'src/decorators/auth-user.decorator';
@UseGuards(OptionalJwtAuthGuard)
-@Resolver(() => Event)
-export class EventResolver {
- constructor(private readonly eventService: EventService) {}
+@Resolver(() => Analytics)
+export class AnalyticsResolver {
+ constructor(private readonly analyticsService: AnalyticsService) {}
- @Mutation(() => Event)
+ @Mutation(() => Analytics)
createEvent(
- @Args() createEventInput: CreateEventInput,
+ @Args() createEventInput: CreateAnalyticsInput,
@AuthWorkspace() workspace: Workspace | undefined,
@AuthUser() user: User | undefined,
) {
- return this.eventService.create(createEventInput, user, workspace);
+ return this.analyticsService.create(createEventInput, user, workspace);
}
}
diff --git a/server/src/core/analytics/analytics.service.spec.ts b/server/src/core/analytics/analytics.service.spec.ts
new file mode 100644
index 000000000..9abc31062
--- /dev/null
+++ b/server/src/core/analytics/analytics.service.spec.ts
@@ -0,0 +1,18 @@
+import { Test, TestingModule } from '@nestjs/testing';
+import { AnalyticsService } from './analytics.service';
+
+describe('AnalyticsService', () => {
+ let service: AnalyticsService;
+
+ beforeEach(async () => {
+ const module: TestingModule = await Test.createTestingModule({
+ providers: [AnalyticsService],
+ }).compile();
+
+ service = module.get(AnalyticsService);
+ });
+
+ it('should be defined', () => {
+ expect(service).toBeDefined();
+ });
+});
diff --git a/server/src/core/analytics/event.service.ts b/server/src/core/analytics/analytics.service.ts
similarity index 59%
rename from server/src/core/analytics/event.service.ts
rename to server/src/core/analytics/analytics.service.ts
index 6192114d9..932666a4e 100644
--- a/server/src/core/analytics/event.service.ts
+++ b/server/src/core/analytics/analytics.service.ts
@@ -1,15 +1,21 @@
import { Injectable } from '@nestjs/common';
-import { CreateEventInput } from './dto/create-event.input';
-import { HttpService } from '@nestjs/axios';
-import { anonymize } from 'src/utils/anonymize';
import { User, Workspace } from '@prisma/client';
+import axios, { AxiosInstance } from 'axios';
+import { CreateAnalyticsInput } from './dto/create-analytics.input';
+import { anonymize } from 'src/utils/anonymize';
@Injectable()
-export class EventService {
- constructor(private readonly httpService: HttpService) {}
+export class AnalyticsService {
+ private readonly httpService: AxiosInstance;
- create(
- createEventInput: CreateEventInput,
+ constructor() {
+ this.httpService = axios.create({
+ baseURL: 'https://t.twenty.com/api/v1/s2s',
+ });
+ }
+
+ async create(
+ createEventInput: CreateAnalyticsInput,
user: User | undefined,
workspace: Workspace | undefined,
) {
@@ -27,11 +33,9 @@ export class EventService {
},
};
- this.httpService
- .post('https://t.twenty.com/api/v1/s2s/event?noToken', data)
- .subscribe({
- error: () => null,
- });
+ try {
+ await this.httpService.post('/event?noToken', data);
+ } catch {}
return { success: true };
}
diff --git a/server/src/core/analytics/dto/create-event.input.ts b/server/src/core/analytics/dto/create-analytics.input.ts
similarity index 91%
rename from server/src/core/analytics/dto/create-event.input.ts
rename to server/src/core/analytics/dto/create-analytics.input.ts
index 1b84544d5..3a16041cf 100644
--- a/server/src/core/analytics/dto/create-event.input.ts
+++ b/server/src/core/analytics/dto/create-analytics.input.ts
@@ -3,7 +3,7 @@ import GraphQLJSON from 'graphql-type-json';
import { IsNotEmpty, IsString, IsObject } from 'class-validator';
@ArgsType()
-export class CreateEventInput {
+export class CreateAnalyticsInput {
@Field({ description: 'Type of the event' })
@IsNotEmpty()
@IsString()
diff --git a/server/src/core/analytics/event.module.ts b/server/src/core/analytics/event.module.ts
deleted file mode 100644
index d7e437da2..000000000
--- a/server/src/core/analytics/event.module.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Module } from '@nestjs/common';
-import { EventService } from './event.service';
-import { EventResolver } from './event.resolver';
-import { HttpModule } from '@nestjs/axios';
-
-@Module({
- providers: [EventResolver, EventService],
- imports: [HttpModule],
-})
-export class EventModule {}
diff --git a/server/src/core/analytics/event.resolver.spec.ts b/server/src/core/analytics/event.resolver.spec.ts
deleted file mode 100644
index 2ee38601c..000000000
--- a/server/src/core/analytics/event.resolver.spec.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { EventResolver } from './event.resolver';
-import { EventService } from './event.service';
-import { HttpModule } from '@nestjs/axios';
-
-describe('EventResolver', () => {
- let resolver: EventResolver;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- imports: [HttpModule],
- providers: [EventResolver, EventService],
- }).compile();
-
- resolver = module.get(EventResolver);
- });
-
- it('should be defined', () => {
- expect(resolver).toBeDefined();
- });
-});
diff --git a/server/src/core/analytics/event.service.spec.ts b/server/src/core/analytics/event.service.spec.ts
deleted file mode 100644
index 448203e7f..000000000
--- a/server/src/core/analytics/event.service.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { EventService } from './event.service';
-import { HttpModule } from '@nestjs/axios';
-
-describe('EventService', () => {
- let service: EventService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- imports: [HttpModule],
- providers: [EventService],
- }).compile();
-
- service = module.get(EventService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/server/src/core/core.module.ts b/server/src/core/core.module.ts
index d494efeb2..e33b0d833 100644
--- a/server/src/core/core.module.ts
+++ b/server/src/core/core.module.ts
@@ -6,7 +6,7 @@ import { PersonModule } from './person/person.module';
import { PipelineModule } from './pipeline/pipeline.module';
import { AuthModule } from './auth/auth.module';
import { WorkspaceModule } from './workspace/workspace.module';
-import { EventModule } from './analytics/event.module';
+import { AnalyticsModule } from './analytics/analytics.module';
@Module({
imports: [
@@ -17,7 +17,7 @@ import { EventModule } from './analytics/event.module';
PersonModule,
PipelineModule,
WorkspaceModule,
- EventModule,
+ AnalyticsModule,
],
exports: [
AuthModule,
@@ -27,7 +27,7 @@ import { EventModule } from './analytics/event.module';
PersonModule,
PipelineModule,
WorkspaceModule,
- EventModule,
+ AnalyticsModule,
],
})
export class CoreModule {}
diff --git a/server/yarn.lock b/server/yarn.lock
index a31b3461f..1df8e9c5e 100644
--- a/server/yarn.lock
+++ b/server/yarn.lock
@@ -1055,11 +1055,6 @@
lodash.omit "4.5.0"
tslib "2.5.2"
-"@nestjs/axios@^3.0.0":
- version "3.0.0"
- resolved "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.0.tgz"
- integrity sha512-ULdH03jDWkS5dy9X69XbUVbhC+0pVnrRcj7bIK/ytTZ76w7CgvTZDJqsIyisg3kNOiljRW/4NIjSf3j6YGvl+g==
-
"@nestjs/cli@^9.0.0":
version "9.5.0"
resolved "https://registry.npmjs.org/@nestjs/cli/-/cli-9.5.0.tgz"