Skip to content

Commit e6a179f

Browse files
committed
refactor(utm): move UTM parameter validation and sanitization to a dedicated module
1 parent 31ff97d commit e6a179f

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

src/models/usersFactory.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Collection, Db } from 'mongodb';
44
import DataLoaders from '../dataLoaders';
55
import { UserDBScheme } from '@hawk.so/types';
66
import { Analytics, AnalyticsEventTypes } from '../utils/analytics';
7+
import { sanitizeUtmParams, validateUtmParams } from '../utils/utm/utm';
78

89
/**
910
* Users factory to work with User Model
@@ -78,9 +79,9 @@ export default class UsersFactory extends AbstractModelFactory<UserDBScheme, Use
7879
notifications: UserModel.generateDefaultNotificationsSettings(email),
7980
};
8081

81-
// Add UTM data if provided
82-
if (utm && Object.keys(utm).length > 0) {
83-
userData.utm = utm;
82+
if (validateUtmParams(utm)) {
83+
const sanitizedUtm = sanitizeUtmParams(utm);
84+
userData.utm = sanitizedUtm;
8485
}
8586

8687
const userId = (await this.collection.insertOne(userData)).insertedId;

src/resolvers/user.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { dateFromObjectId } from '../utils/dates';
1111
import { UserDBScheme } from '@hawk.so/types';
1212
import * as telegram from '../utils/telegram';
1313
import { MongoError } from 'mongodb';
14-
import { validateUtmParams, sanitizeUtmParams } from '../utils/analytics';
14+
import { validateUtmParams, sanitizeUtmParams } from '../utils/utm/utm';
1515

1616
/**
1717
* See all types and fields here {@see ../typeDefs/user.graphql}

src/utils/analytics/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
export { Analytics } from './amplitude';
22
export { AnalyticsEventTypes } from './events';
3-
export { validateUtmParams, sanitizeUtmParams } from './utm';

0 commit comments

Comments
 (0)