-
Notifications
You must be signed in to change notification settings - Fork 0
/
solution.js
156 lines (135 loc) · 5.55 KB
/
solution.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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/*
finger print solution library
by andy
*/
const url = require('url');
const path = require('path');
var HTMLParser = require('node-html-parser');
const axios = require('axios');
var SOLUTION = function (SETTING) {
this.IP = SETTING.hasOwnProperty("ip") ? SETTING.ip : "";
this.URL = 'http://'+this.IP;
this.KEY = SETTING.hasOwnProperty("key") ? SETTING.key : "";
this.FN = 0;
this.NEW_LINE = "\r\n";
this.HTTP_REQUEST = async (soap_request, start_point) => {
start_point = start_point || "/iWsService";
var config = {
headers: {'Content-Type': 'text/xml'}
};
try {
let resp= await axios.post(this.URL+start_point, soap_request, config);
return resp.data;
} catch (e){
return "";
}
}
this.CONNECT_TO = async() => {
try{
let resp = await axios.get(this.URL);
console.log(resp)
let headers = resp.headers;
if(headers.hasOwnProperty("server")){
return resp.headers.server;
} else {
return "ok";
}
} catch (e) {
return "";
}
}
this.GET_SIDIK_JARI = async (PIN) => {
PIN = PIN || "All";
let soap_request=`<GetUserTemplate><ArgComKey xsi:type="xsd:integer">${this.KEY}</ArgComKey><Arg><PIN xsi:type="xsd:integer">${PIN}</PIN></Arg></GetUserTemplate>`;
let data = await this.HTTP_REQUEST(soap_request);
return this.DATA_ARRAY(data);
}
this.RESTART = async()=> {
let soap_request=`<Restart><ArgComKey Xsi:type="xsd:integer">${this.KEY}</ArgComKey></Restart>`;
let data = await this.HTTP_REQUEST(soap_request);
console.log(data);
return this.PARSE_DATA(data, "Result");
}
this.GET_USER_INFO = async(PIN) => {
PIN = PIN || "All";
let soap_request=`<GetUserInfo><ArgComKey xsi:type="xsd:integer">${this.KEY}</ArgComKey><Arg><PIN xsi:type="xsd:integer">${PIN}</PIN></Arg></GetUserInfo>`;
let data = await this.HTTP_REQUEST(soap_request);
return this.DATA_ARRAY(data);
}
this.GET_LOG = async(PIN) => {
PIN = PIN || "All";
let soap_request=`<GetAttLog><ArgComKey xsi:type="xsd:integer">${this.KEY}</ArgComKey><Arg><PIN xsi:type="xsd:integer">${PIN}</PIN></Arg></GetAttLog>`;
let data = await this.HTTP_REQUEST(soap_request);
return this.DATA_ARRAY(data);
}
this.DELETE_LOG = async(PIN) => {
PIN = PIN || "All";
let soap_request=`<ClearData><ArgComKey xsi:type="xsd:integer">${this.KEY}</ArgComKey><Arg><Value xsi:type="xsd:integer">${PIN}</Value></Arg></ClearData>`;
let data = await this.HTTP_REQUEST(soap_request);
return this.DATA_ARRAY(data);
}
this.GET_MACHINE = async(NAME) => {
NAME = NAME || "Platform";
let soap_request=`<GetDeviceStrInfo><ArgComKey xsi:type="xsd:integer">${this.KEY}</ArgComKey></GetDeviceStrInfo>`;
let data = await this.HTTP_REQUEST(soap_request);
console.log(data)
return data;
}
this.GET_SYNC_TIME = async() => {
var date = new Date();
var DATE = date.toISOString().split('T')[0];
var TIME = date.toTimeString().split(' ')[0];
let soap_request=`<SetDate><ArgComKey xsi:type="xsd:integer">${this.KEY}</ArgComKey><Arg><Date xsi:type="xsd:string">${DATE}</Date><Time xsi:type=\"xsd:string\">${TIME}</Time></Arg></SetDate>`;
let data = await this.HTTP_REQUEST(soap_request);
return this.PARSE_DATA(data, "Information");
}
this.PARSE_DATA = (str, tag) => {
var root = HTMLParser.parse(str);
var texts = [].map.call( root.querySelectorAll(tag), function(v){
return v.textContent || v.innerText || "";
});
return texts;
}
this.DATA_ARRAY = (str) => {
let stores = [];
try {
let PIN = this.PARSE_DATA(str,"PIN");
let Name = this.PARSE_DATA(str,"Name");
let Password = this.PARSE_DATA(str,"Password");
let Group = this.PARSE_DATA(str,"Group");
let Privilege = this.PARSE_DATA(str,"Privilege");
let Card = this.PARSE_DATA(str,"Card");
let FingerID = this.PARSE_DATA(str,"FingerID");
let Valid = this.PARSE_DATA(str,"Valid");
let Template = this.PARSE_DATA(str,"Template");
let DateTime = this.PARSE_DATA(str,"DateTime");
let Verified = this.PARSE_DATA(str,"Verified");
let Status = this.PARSE_DATA(str,"Status");
let WorkCode = this.PARSE_DATA(str,"WorkCode");
if(PIN.length > 0){
for(var i=0;i<PIN.length;i++){
let obj = {
PIN : PIN[i] || 0,
Name : Name[i] || "",
Password : Password[i] || "",
Group : Group[i] || "",
Privilege : Privilege[i] || "",
Card : Card[i] || "",
FingerID : FingerID[i] || 0,
Valid : Valid[i] || 0,
Template : Template[i] || "",
DateTime : DateTime[i] || "",
Verified : Verified[i] || "",
Status : Status[i] || 0,
WorkCode : WorkCode[i] || 0
}
stores.push(obj)
}
}
} catch(e) {
console.log(e)
}
return stores;
}
}
module.exports = SOLUTION;