From e31a95f6c2f38ab84b9e5b3aed823ab30eac900a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincze=20J=C3=B3zsef?= Date: Tue, 21 May 2024 15:37:48 +0200 Subject: [PATCH] =?UTF-8?q?apkrepo=20hozz=C3=A1adva?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + app.js | 37 ++++++++++++++++++++++++++++++- deviceLog_2024_05_15.txt | 1 + js/androidApi.js | 48 ++++++++++++++++++++++++++++++++++++++++ package.json | 1 + routes/employee.js | 2 +- 6 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 deviceLog_2024_05_15.txt diff --git a/.gitignore b/.gitignore index 80a28fe..9d0c272 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ build/Release # Dependency directories node_modules/ +.apk_repo/ jspm_packages/ package-lock.json # Snowpack dependency directory (https://snowpack.dev/) diff --git a/app.js b/app.js index 77d9fa8..53eb2bf 100644 --- a/app.js +++ b/app.js @@ -24,6 +24,8 @@ var PdfPrinter=require('pdfmake'); //const util = require('util'); //var currentWorkNumber=0; const { XMLParser, XMLBuilder, XMLValidator} = require("fast-xml-parser/src/fxp"); +var apkUpdater = require('apk-updater'); + const fss = require('fs'); global.currentWorkNumber=0; mongoose.Promise = global.Promise; @@ -263,6 +265,38 @@ function checkUserAdmin2(req,callback) } } } +app.get('/apiGetQRCode/:apiKey',function(req,res){ + apiGetQRCode(req.params.apiKey,function(err,w){ + if (err) + { + res.setHeader('Content-Type', 'application/json'); + res.send(err); + + } + else + { + res.setHeader('Content-Type', 'application/json'); + res.send(w); + } + }) +}) + +app.get('/apiGetWorkState/:apiKey',function(req,res){ + apiGetWorkState(req.params.apiKey,function(err,w){ + if (err) + { + res.setHeader('Content-Type', 'application/json'); + res.send(err); + + } + else + { + res.setHeader('Content-Type', 'application/json'); + res.send(w); + } + }) +}) + app.get('/apiworklist/:apiKey',function(req,res){ apiGetWorkList(req.params.apiKey,function(err,w){ if (err) @@ -1834,7 +1868,7 @@ let bid=require('./routes/bid'); let vehicles=require('./routes/vehicles'); const { date } = require('jszip/lib/defaults'); -const { apiGetWorkList, apiGetEmployeeList, apiGetDailyReport, apiEmployee, apiGetAllReport, apiCheckDevice, apiRegisterDevice,apiRequestAPIkey } = require('./js/androidApi'); +const { apiGetWorkList, apiGetEmployeeList, apiGetDailyReport, apiEmployee, apiGetAllReport, apiCheckDevice, apiRegisterDevice,apiRequestAPIkey, apiGetQRCode,apiGetWorkState } = require('./js/androidApi'); const { string } = require('jszip/lib/support'); const { generateXML } = require('./js/enaploGen'); app.use('/devicesrfid', devices_rfid); @@ -1855,6 +1889,7 @@ app.use('/certificates_tr',certificates_tr); app.use('/certificates_mc',certificates_mc); app.use('/components',components); app.use('/components_base',components_base); +apkUpdater.enable(app, '/anyUpdateServerRoute'); /* app.delete('/devices/:id',utils.ensureAuthenticated,function(req,res){ let query = { _id:req.params.id} diff --git a/deviceLog_2024_05_15.txt b/deviceLog_2024_05_15.txt new file mode 100644 index 0000000..46224f0 --- /dev/null +++ b/deviceLog_2024_05_15.txt @@ -0,0 +1 @@ +{"LOG":{"timeStamp":"2024.05.15 09:05:71","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Vincze József","message":"ÉRKEZÉS","city":"Szentp�terszeg, J�zsef Attila utca, 9","worktime":"","datetime":"9:23"}}}, diff --git a/js/androidApi.js b/js/androidApi.js index 0517673..1f663d1 100644 --- a/js/androidApi.js +++ b/js/androidApi.js @@ -11,6 +11,54 @@ let Work=require('../models/works'); let RfidDevice = require('../models/devices'); const { drawBackground } = require('pdfmake/src/textDecorator'); const passport = require('../config/passport'); + +// Aktuális QR kód lekérése +exports.apiGetQRCode=function(apiKey, callback) +{ + Employee.findOne({'apiKey':apiKey}, function(err,employee) + { + if (err) + { + callback(err,null); + } + else + { + if (employee) + { + var mpe=false; + if (employee.mobilePortalAccessEnabled==true) mpe=true; + callback(null,{'name':employee.name,'id':employee._id, 'qrCode':employee.qrCode}); + } + else + callback(null,null); + } + }); +} + +// Munkaidő Státusz lekérése +exports.apiGetWorkState=async function(apiKey, callback) +{ + //const device=await DeviceRemote.findOne({imei:req.body.clientID1,ccid:req.body.clientID2})//, + const employee= await Employee.findOne({'apiKey':apiKey}); + var state='Ismeretlen'; + if (employee) + { + if (employee.workingtimeId){ // Ha már dolgozott + const wtime=await WorkingTime.findById(employee.workingtimeId) + if (wtime!=null){ + if (wtime.state==='ENDED') state='VÉGZETT'; + if (wtime.state==='STARTED') state='DOLGOZIK'; + + } + callback(null,{'workState':state}); + } + } + else + callback(null,null); + + +} + // Alkalmazotti lista lekérése exports.apiRegisterDevice=function(deviceId,username,password,deviceType,callback){ diff --git a/package.json b/package.json index 65c038a..2957ac6 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dependencies": { "@fullcalendar/core": "^4.4.2", "@fullcalendar/daygrid": "^4.4.2", + "apk-updater": "^0.1.1", "async": "^2.6.3", "axios": "^0.27.2", "bcryptjs": "^2.4.3", diff --git a/routes/employee.js b/routes/employee.js index fa304c9..8734592 100644 --- a/routes/employee.js +++ b/routes/employee.js @@ -511,7 +511,7 @@ transporter = nodemailer.createTransport({ } }); break; - case 'ACCESSQR': // Bejelentezés QR kóddal + moment.locale('HU'); var response = { status : 200,