Skip to content

Instantly share code, notes, and snippets.

@sboli
Created September 10, 2024 13:42
Show Gist options
  • Save sboli/7d2c46468fbb197da32d020bf628c574 to your computer and use it in GitHub Desktop.
Save sboli/7d2c46468fbb197da32d020bf628c574 to your computer and use it in GitHub Desktop.
Sk hit
@Injectable()
export class SkalinTrackingService {
private collectClient: AxiosInstance;
constructor(
@InjectRepository(Manager)
private readonly managerRepository: Repository<Manager>,
) {
this.collectClient = Axios.create({
baseURL: 'https://collect.skalin.io',
headers: {
'Cache-Control': 'no-cache',
},
validateStatus: (code) => code < 500,
timeout: 10000,
});
setTimeout(() => {
this.registerFeatureUsage(SkalinFeatureDefs.Messages.Replied, 553, 4408);
}, 3000);
}
async registerFeatureUsage(
feature: SkalinFeature,
venueId: number,
managerId?: number,
) {
const manager = await this.managerRepository.findOneBy({ managerId });
if (!manager) {
return;
}
const payload = {
rec: 1,
action: 'ev',
client_id: process.env.SKALIN_ACCOUNT_ID,
customer_id: '' + venueId,
visitor_id: '' + managerId,
identity: { email: manager.managerEmail },
event: { name: feature, event_name: 'feature' },
};
const res = await this.collectClient.post('/hit', null, {
params: payload,
});
if (res.status > 201) {
console.log('Skalin hit error: ', res.status, res.data);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment