| 378 | } |
| 379 | |
| 380 | function createProvider( |
| 381 | record: Prisma.ImportGetPayload<{ include: { project: true } }>, |
| 382 | jobLogger: ILogger |
| 383 | ) { |
| 384 | const config = record.config; |
| 385 | switch (config.provider) { |
| 386 | case 'umami': |
| 387 | return new UmamiProvider(record.projectId, config, jobLogger); |
| 388 | case 'mixpanel': |
| 389 | return new MixpanelProvider(record.projectId, config, jobLogger); |
| 390 | case 'amplitude': |
| 391 | return new AmplitudeProvider(record.projectId, config, jobLogger); |
| 392 | default: |
| 393 | throw new Error(`Unknown provider: ${config.provider}`); |
| 394 | } |
| 395 | } |