72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
import { sendJson, serverTimestamp } from '../http.js';
|
|
|
|
export const method = 'GET';
|
|
export const path = '/v1/client';
|
|
|
|
function buildClientStep1(config) {
|
|
const {
|
|
authToken,
|
|
certificateFingerprint,
|
|
certificateSerialNumber,
|
|
mandantId,
|
|
serverFingerprint,
|
|
} = config;
|
|
|
|
return {
|
|
authCode: null,
|
|
authToken,
|
|
certificateFingerprint,
|
|
certificateSerialNumber,
|
|
mandantId,
|
|
mandantName: null,
|
|
mandantDatabase: null,
|
|
serverFingerprint,
|
|
name: null,
|
|
serverTimestamp: serverTimestamp(),
|
|
};
|
|
}
|
|
|
|
function buildClientStep2(authCode, config) {
|
|
const {
|
|
authToken,
|
|
certificateFingerprint,
|
|
certificateSerialNumber,
|
|
mandantId,
|
|
mandantName,
|
|
mandantDatabase,
|
|
} = config;
|
|
|
|
return {
|
|
authCode,
|
|
authToken,
|
|
certificateFingerprint,
|
|
certificateSerialNumber,
|
|
mandantId,
|
|
mandantName,
|
|
mandantDatabase,
|
|
serverFingerprint: null,
|
|
name: null,
|
|
serverTimestamp: serverTimestamp(),
|
|
};
|
|
}
|
|
|
|
export function handle(req, res, { url, pairingStore, config }) {
|
|
const authCode = url.searchParams.get('authCode') || '';
|
|
const name = url.searchParams.get('name') || 'JTL-POS';
|
|
|
|
if (authCode.length <= 4 && authCode.length > 0) {
|
|
return sendJson(res, 200, buildClientStep1(config));
|
|
}
|
|
|
|
if (authCode.length === 6) {
|
|
if (pairingStore.hasPairingCode(authCode)) {
|
|
pairingStore.revokePairingCode(authCode);
|
|
pairingStore.registerDevice(config.authToken, name);
|
|
return sendJson(res, 200, buildClientStep2(authCode, config));
|
|
}
|
|
return sendJson(res, 400, { Message: 'Der Authentifizierungscode ist falsch.' });
|
|
}
|
|
|
|
return sendJson(res, 400, { Message: 'Keinen passenden Authentifizierungscode gefunden.' });
|
|
}
|