fix(api): swift sdk has issues with double OpenPanel tags in user-agent, if so remove one
This commit is contained in:
25
apps/api/src/hooks/fix.hook.ts
Normal file
25
apps/api/src/hooks/fix.hook.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import type {
|
||||||
|
FastifyReply,
|
||||||
|
FastifyRequest,
|
||||||
|
HookHandlerDoneFunction,
|
||||||
|
} from 'fastify';
|
||||||
|
|
||||||
|
export function fixHook(
|
||||||
|
request: FastifyRequest,
|
||||||
|
reply: FastifyReply,
|
||||||
|
done: HookHandlerDoneFunction,
|
||||||
|
) {
|
||||||
|
const ua = request.headers['user-agent'];
|
||||||
|
// Swift SDK issue: https://github.com/Openpanel-dev/swift-sdk/commit/d588fa761a36a33f3b78eb79d83bfd524e3c7144
|
||||||
|
if (ua) {
|
||||||
|
const regex = /OpenPanel\/(\d+\.\d+\.\d+)\sOpenPanel\/(\d+\.\d+\.\d+)/;
|
||||||
|
const match = ua.match(regex);
|
||||||
|
if (match) {
|
||||||
|
request.headers['user-agent'] = ua.replace(
|
||||||
|
regex,
|
||||||
|
`OpenPanel/${match[1]}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
done();
|
||||||
|
}
|
||||||
@@ -24,6 +24,7 @@ import {
|
|||||||
healthcheck,
|
healthcheck,
|
||||||
healthcheckQueue,
|
healthcheckQueue,
|
||||||
} from './controllers/healthcheck.controller';
|
} from './controllers/healthcheck.controller';
|
||||||
|
import { fixHook } from './hooks/fix.hook';
|
||||||
import { ipHook } from './hooks/ip.hook';
|
import { ipHook } from './hooks/ip.hook';
|
||||||
import { requestIdHook } from './hooks/request-id.hook';
|
import { requestIdHook } from './hooks/request-id.hook';
|
||||||
import { requestLoggingHook } from './hooks/request-logging.hook';
|
import { requestLoggingHook } from './hooks/request-logging.hook';
|
||||||
@@ -93,6 +94,7 @@ const startServer = async () => {
|
|||||||
|
|
||||||
fastify.addHook('preHandler', ipHook);
|
fastify.addHook('preHandler', ipHook);
|
||||||
fastify.addHook('preHandler', timestampHook);
|
fastify.addHook('preHandler', timestampHook);
|
||||||
|
fastify.addHook('preHandler', fixHook);
|
||||||
fastify.addHook('onRequest', requestIdHook);
|
fastify.addHook('onRequest', requestIdHook);
|
||||||
fastify.addHook('onResponse', requestLoggingHook);
|
fastify.addHook('onResponse', requestLoggingHook);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user