Skip to content

Commit 0a86eda

Browse files
add utm_amp parameter
1 parent 3cceea2 commit 0a86eda

File tree

5 files changed

+31
-3
lines changed

5 files changed

+31
-3
lines changed

redisinsight/api/src/modules/ai/query/providers/auth/local.ai-query-auth.provider.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ export class LocalAiQueryAuthProvider extends AiQueryAuthProvider {
1414
super();
1515
}
1616

17-
// TODO: do not forget pass utm parameters here
1817
async getAuthData(sessionMetadata: SessionMetadata): Promise<AiQueryAuthData> {
1918
const session = await this.cloudUserApiService.getUserSession(sessionMetadata);
2019

redisinsight/api/src/modules/cloud/common/models/cloud-request-utm.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,12 @@ export class CloudRequestUtm {
2929
@IsString()
3030
@IsNotEmpty()
3131
campaign?: string;
32+
33+
@ApiPropertyOptional({
34+
type: String,
35+
})
36+
@IsOptional()
37+
@IsString()
38+
@IsNotEmpty()
39+
amp?: string;
3240
}

redisinsight/api/src/modules/cloud/common/providers/cloud.api.provider.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export class CloudApiProvider {
4040
utm_source: utm?.source,
4141
utm_medium: utm?.medium,
4242
utm_campaign: utm?.campaign,
43+
utm_amp: utm?.amp,
4344
};
4445
}
4546

redisinsight/api/src/modules/cloud/user/cloud-user.api.service.spec.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
mockCloudSession,
1212
mockCloudCapiAccount,
1313
mockCloudApiUser,
14-
mockCloudApiCsrfToken,
14+
mockCloudApiCsrfToken, mockServerService,
1515
} from 'src/__mocks__';
1616
import { when, resetAllWhenMocks } from 'jest-when';
1717
import { CloudApiInternalServerErrorException, CloudApiUnauthorizedException } from 'src/modules/cloud/common/exceptions';
@@ -22,6 +22,7 @@ import { CloudSessionService } from 'src/modules/cloud/session/cloud-session.ser
2222
import { CloudAuthService } from 'src/modules/cloud/auth/cloud-auth.service';
2323
import { mockCloudAuthService } from 'src/__mocks__/cloud-auth';
2424
import axios from 'axios';
25+
import { ServerService } from 'src/modules/server/server.service';
2526

2627
const mockedAxios = axios as jest.Mocked<typeof axios>;
2728
jest.mock('axios');
@@ -52,6 +53,10 @@ describe('CloudUserApiService', () => {
5253
provide: CloudAuthService,
5354
useFactory: mockCloudAuthService,
5455
},
56+
{
57+
provide: ServerService,
58+
useFactory: mockServerService,
59+
},
5560
],
5661
}).compile();
5762

redisinsight/api/src/modules/cloud/user/cloud-user.api.service.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { CloudRequestUtm } from 'src/modules/cloud/common/models';
1212
import { CloudAuthService } from 'src/modules/cloud/auth/cloud-auth.service';
1313
import config from 'src/utils/config';
1414
import { CloudSession } from 'src/modules/cloud/session/models/cloud-session';
15+
import { ServerService } from 'src/modules/server/server.service';
1516

1617
const cloudConfig = config.get('cloud');
1718

@@ -24,6 +25,7 @@ export class CloudUserApiService {
2425
private readonly repository: CloudUserRepository,
2526
private readonly sessionService: CloudSessionService,
2627
private readonly api: CloudUserApiProvider,
28+
private readonly serverService: ServerService,
2729
) {}
2830

2931
/**
@@ -99,7 +101,20 @@ export class CloudUserApiService {
99101

100102
if (!session?.apiSessionId) {
101103
this.logger.log('Trying to login user');
102-
const apiSessionId = await this.api.getApiSessionId(session, utm);
104+
105+
const preparedUtm = utm;
106+
107+
if (preparedUtm && !preparedUtm.amp) {
108+
await this.serverService.getInfo()
109+
.then(({ id }) => {
110+
preparedUtm.amp = id;
111+
})
112+
.catch(() => {
113+
this.logger.warn('Unable to get server id for utm parameters');
114+
});
115+
}
116+
117+
const apiSessionId = await this.api.getApiSessionId(session, preparedUtm);
103118

104119
if (!apiSessionId) {
105120
throw new CloudApiUnauthorizedException();

0 commit comments

Comments
 (0)