Add Telegram bot login sessions
All checks were successful
Build and deploy Backend / build (push) Successful in 49s
All checks were successful
Build and deploy Backend / build (push) Successful in 49s
This commit is contained in:
@@ -4,6 +4,7 @@ import mercurius from 'mercurius';
|
||||
import { config } from './config.js';
|
||||
import { prisma } from './prisma.js';
|
||||
import { resolvers, schema } from './graphql/schema.js';
|
||||
import { handleTelegramBotWebhook } from './auth/telegram-bot-login.js';
|
||||
|
||||
const app = Fastify({ logger: true });
|
||||
|
||||
@@ -14,15 +15,24 @@ app.register(mercurius, {
|
||||
context: async (request) => {
|
||||
const initDataHeader = request.headers['x-telegram-init-data'];
|
||||
const loginDataHeader = request.headers['x-telegram-login-data'];
|
||||
const sessionTokenHeader = request.headers['x-mapflow-session-token'];
|
||||
return {
|
||||
telegramInitData: Array.isArray(initDataHeader) ? initDataHeader[0] : initDataHeader,
|
||||
telegramLoginData: Array.isArray(loginDataHeader) ? loginDataHeader[0] : loginDataHeader,
|
||||
mapflowSessionToken: Array.isArray(sessionTokenHeader) ? sessionTokenHeader[0] : sessionTokenHeader,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
app.get('/health', async () => ({ ok: true }));
|
||||
|
||||
app.post('/telegram/webhook', async (request, reply) => {
|
||||
const secretHeader = request.headers['x-telegram-bot-api-secret-token'];
|
||||
const secretToken = Array.isArray(secretHeader) ? secretHeader[0] : secretHeader;
|
||||
await handleTelegramBotWebhook(request.body as never, secretToken);
|
||||
return reply.send({ ok: true });
|
||||
});
|
||||
|
||||
app.addHook('onClose', async () => {
|
||||
await prisma.$disconnect();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user