Skip to content

Commit 686529e

Browse files
committed
FEATURE: forward LK stuff
1 parent a1eb147 commit 686529e

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

app.js

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ function validateHmac(body, requestHmac, referer = null) {
1919
var hmac = crypto.createHmac('sha256', hmacKey);
2020
hmac.update(body);
2121
const calculatedHmac = hmac.digest('base64');
22-
console.log('Request HMAC, calculated HMAC:', requestHmac, calculatedHmac)
22+
if (requestHmac !== calculatedHmac) {
23+
console.log('HMAC mismatch, requestHmac, calculatedHmac:', requestHmac, calculatedHmac);
24+
}
2325
return requestHmac === calculatedHmac;
2426
}
2527

@@ -32,9 +34,24 @@ const handleHook = (req, res, eventType, skipHmac = false, json = false) => {
3234
if (referer) {
3335
dataArray.Referer = referer;
3436
}
37+
38+
try {
39+
if (dataArray.Data) {
40+
const parsedData = JSON.parse(dataArray.Data);
41+
if (parsedData.userid && parsedData.contextid && dataArray.Amount) {
42+
const url = config.kabinetHostname + '/local/cohortautoenrol/approve.php?contextid=' + parsedData.contextid + '&userid=' + parsedData.userid + '&key=' + config.autoenrolKey + '&amount=' + dataArray.Amount;
43+
getContent(url)
44+
.then(result => console.info(result))
45+
.catch(error => console.error('Problem registring payment in LK:', url, error.message, dataArray.Data))
46+
}
47+
}
48+
} catch (e) {
49+
console.error('Problem registring payment in LK:', dataArray.Data);
50+
}
51+
3552
return publishEvent(eventType, dataArray);
3653
} else {
37-
console.log('HMAC failed for request:', req.url, data);
54+
console.error('HMAC failed for request:', req.url, data);
3855
throw new Error('HMAC not valid');
3956
}
4057
})
@@ -195,5 +212,5 @@ const server = http.createServer((req, res) => {
195212
});
196213

197214
server.listen(config.port, config.hostname, () => {
198-
console.log(`Server running at http://${config.hostname}:${config.port}/`);
215+
console.info(`Server running at http://${config.hostname}:${config.port}/`);
199216
});

config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
const hostname = '0.0.0.0';
55
const port = process.env.PORT || 3000;
66
const eventStoreHostname = process.env.ES_HOST || '127.0.0.1';
7+
const kabinetHostname = process.env.KABINET_HOST || 'https://kabinet.sfi.ru';
78
// legacy, to be removed
89
const hmacKey = process.env.HMAC_KEY;
910
const hmacKeys = {
@@ -16,4 +17,6 @@ const eventStorePass = process.env.ES_PASS || 'changeit';
1617
const stream = process.env.ES_STREAM || 'data';
1718
const apiAuth = process.env.SFI_API_AUTH || 'api:changeit';
1819

19-
export default {hostname, port, eventStoreHostname, hmacKey, hmacKeys, eventStorePass, apiAuth, stream};
20+
const autoenrolKey = process.env.AUTOENROL_KEY || 'changeit';
21+
22+
export default {hostname, port, eventStoreHostname, kabinetHostname, hmacKey, hmacKeys, eventStorePass, apiAuth, stream, autoenrolKey};

0 commit comments

Comments
 (0)