aboutsummaryrefslogtreecommitdiff
path: root/api/routes/receiveZChain/index.js
blob: a955b79f1cd93866e3e7f3667a1b28cbf2fef990 (plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
 * After NS validation went through we examine the return code
 * of the application that run the test.
 *
 * Returns:
 *     - error on failure
 *     - on success we process with addNSEntriesToFile()
 *
 */
function continuethingsNS(validitycode,sh,res,gotit){
    if (validitycode === 0){
        var entry = {
            zchain: sh,
            latest: JSON.parse(gotit).Path.replace('/ipfs/','')
        };
        addNSEntriesToFile(entry,res);
    } else {
        res.send({error:"Invalid data"});
    }
}
/*
 * Accepts a zchain
 *
 * Checks:
 *     1. Exists,
 *     2. Length is 62 bytes,
 *     3. Matches regular expression /k51qzi5uqu5d[A-Za-z0-9]{50}/
 *
 * Returns:
 *     - error on failure
 *     - on success the string is processed for further validation to the
 *     function getNSvalidity()
 *
 */
const getNSvalidity = require('../../validators/ZchainValidator')

module.exports = (req, res) => {
    if ( (req.body.zchain) && req.body.zchain.length === 62 ){//&& req.body.block_signature.length === 46){
        regex= /k51qzi5uqu5d[A-Za-z0-9]{50}/
        if (regex.test(req.body.zchain)){ // && regex.test(req.body.block_signature)){
            getNSvalidity(req.body.zchain,res);
        } else {
            res.send({error:"Invalid data"});
        }
    } else {
        res.send({error:"Invalid data"});
    }
}