File size: 1,171 Bytes
579f597
 
68fe061
 
579f597
 
 
 
 
 
 
 
 
 
 
7135436
579f597
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { nanoid } from 'nanoid';

export const errorHandler = (err, req, res, next) => {
    res.status(err?.code || err?.status || 500).json({ ...err, message: err?.message, });
}

export const setJioCopilotSessionCookie = async (req, res, next = () => { }) => {
    let session = req?.cookies?.['__jc_session'];
    if (session && (!session.startsWith('jc-') || session.length !== 33)) {
        session = null;
    }
    if (!session) {
        session = `jc-${nanoid()}-${encodeTimestampToBase36()}`;
        const validity = 7 * 24 * 3600; // 7 days
        const cookieOpts = {
            domain: process.env.SPACE_HOST || `${'local.'}${'copilotz0.de'}`,
            expires: new Date((Date.now() / 1000 + validity) * 1000),
            httpOnly: true,
            secure: false,
            sameSite: 'Lax'
        };
        res.cookie('__jc_session', session, cookieOpts);
    }
    req.jio_copilot_anonymous_session = session;
    // res.end()
    next();
};

export const encodeTimestampToBase36 = (timestamp) => {
    const currentTimestamp = timestamp || Date.now();
    const base36Timestamp = currentTimestamp.toString(36);
    return base36Timestamp;
};