Genesis
This commit is contained in:
71
src/endpoints/client.js
Normal file
71
src/endpoints/client.js
Normal file
@@ -0,0 +1,71 @@
|
||||
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.' });
|
||||
}
|
||||
Reference in New Issue
Block a user