-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
85 lines (67 loc) · 2.27 KB
/
index.js
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
const dataHandler = require('fastify')({ logger: true });
const helper = require('./helper');
dataHandler.get('/', async (request, reply) => {
return { hello: 'world' }
})
//capitalize first character of a string
function sentanceCase(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
//generate integer in a range
function intInRange(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
function randomDate(start) {
end = new Date();
return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
}
function generateCVR(n){
var add = 1, max = 12 - add;
if(n > max){
return generateCVR(max) + generateCVR(n-max);
}
max = Math.pow(10,n+add);
var min = max/10;
var number = Math.floor(Math.random() * (max - min +1)) + min
return (""+ number).substring(add);
}
const start = async () => {
try {
await dataHandler.listen(3000)
} catch (err) {
dataHandler.log.error(err)
process.exit(1)
}
}
//generates random names can be configured in helper.js
dataHandler.get('/email', async (request, reply) => {
var name1 = helper.firstName;
var name2 = helper.lastName;
var domains = helper.domains;
var firstName = (name1[intInRange(0, name1.length + 1)]);
var lastName = (name2[intInRange(0, name2.length + 1)]);
var domain = (domains[intInRange(0, domains.length)]);
var randomNumber = intInRange(400,99999);
var email = firstName + '.' + lastName+randomNumber+'@'+domain;
return (JSON.stringify({email : email}));
})
//generates random names can be configured in helper.js
dataHandler.get('/user', async (request, reply) => {
var name1 = helper.firstName;
var name2 = helper.lastName;
var firstName = sentanceCase(name1[intInRange(0, name1.length + 1)])
var lastName = sentanceCase(name2[intInRange(0, name2.length + 1)]);
var name = firstName + ' ' + lastName;
return (JSON.stringify({user : {fullName:name,firstName:firstName,lastName:lastName}}));
})
//generate random date
dataHandler.get('/date', async (request, reply) => {
rDate = randomDate(new Date(((request.query.from == undefined) ? 2000 : parseInt(request.query.from)), 0, 1));
return (JSON.stringify({date : {rDate}}));
})
module.exports = {
start,
dataHandler,
sentanceCase,
intInRange
}