-
Notifications
You must be signed in to change notification settings - Fork 1
/
telco-checker.js
98 lines (90 loc) · 1.42 KB
/
telco-checker.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
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
Available Telco's
*/
let telcos = {
1:'MTN',
2:'GLO',
3:'AIRTEL',
4:'9MOBILE'
}
/*
Telco's Numbers
*/
let numbers = {
'0703':1,
'0706':1,
'0803':1,
'0806':1,
'0810':1,
'0813':1,
'0814':1,
'0816':1,
'0903':1,
'0906':1,
'0705':2,
'0805':2,
'0807':2,
'0811':2,
'0815':2,
'0905':2,
'0701':3,
'0708':3,
'0802':3,
'0808':3,
'0812':3,
'0901':3,
'0902':3,
'0907':3,
'0817':4,
'0818':4,
'0809':4,
'0908':4,
'0909':4,
}
/*
Async function to get digits
*/
function getDigits(digit){
// console.log(digit);
if(digit.length >= 11){
let network = validateNetwork(digit);
// console.log(network);
return network.toLowerCase();
}
}
/*
Function to validate and return the Network Provider
*/
function validateNetwork(value){
let checks = '';
if(value.startsWith('+234')){
checks = value.slice(4,7);
if(value.length > 14){
return "Not Found!!";
}
}else if(value.startsWith('234')){
checks = value.slice(3,6);
if(value.length > 13){
return "Not Found!!";
}
}
else{
checks = value.slice(1,4);
if(value.length > 11){
return "Not Found!!";
}
}
let numKeys = Object.keys(numbers);
let result = '';
numKeys.find((elm)=>{
if(elm.slice(1) == checks){
result += numbers[elm];
}
})
if(result !== ''){
return telcos[result];
}else{
return 'Not Found!!';
}
}
module.exports = getDigits;