diff --git a/server/package-lock.json b/server/package-lock.json index 3f34126..8b94200 100755 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -10,7 +10,7 @@ "license": "ISC", "dependencies": { "@babel/polyfill": "^7.12.1", - "@prisma/client": "^2.15.0", + "@prisma/client": "^3.3.0", "activedirectory2": "^2.1.0", "apollo-server": "^2.19.0", "apollo-server-plugin-response-cache": "^0.5.6", @@ -35,8 +35,8 @@ "@babel/node": "^7.0.0", "@babel/plugin-proposal-object-rest-spread": "^7.0.0", "@babel/preset-env": "^7.0.0", - "@prisma/cli": "^2.15.0", - "nodemon": "^2.0.6" + "nodemon": "^2.0.6", + "prisma": "^3.3.0" } }, "node_modules/@apollo/protobufjs": { @@ -86,8 +86,6 @@ "integrity": "sha512-eRJREyrfAJ2r42Iaxe8h3v6yyj1wu9OyosaUHW6UImjGf9ahGL9nsFNh7OCopvtcPL8WnEo7tp78wrZaZ6vG9g==", "dev": true, "dependencies": { - "@nicolo-ribaudo/chokidar-2": "^2.1.8", - "chokidar": "^3.4.0", "commander": "^4.0.1", "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.1.0", @@ -155,7 +153,6 @@ "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", @@ -1962,7 +1959,6 @@ "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -2282,54 +2278,30 @@ "node": ">=0.10.0" } }, - "node_modules/@prisma/cli": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@prisma/cli/-/cli-2.15.0.tgz", - "integrity": "sha512-sF2mgn5oH5fL9/CKxS0tqojf0rK2BKODlEUqL+2s3YZqvJRSt4iFpiyjgajyd0wyTyv1k9LDHTV0yOD1mXDBsA==", - "devOptional": true, - "hasInstallScript": true, - "dependencies": { - "@prisma/engines": "2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54" - }, - "bin": { - "prisma": "build/index.js", - "prisma2": "build/index.js" - }, - "engines": { - "node": ">=10.4" - } - }, "node_modules/@prisma/client": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-2.15.0.tgz", - "integrity": "sha512-3j4OoLpAGF104KAenUFJM9sU2+4jRP+RlrlYssBHkwBf+/5+2ihSpcmFiWIw1vXNRdmZtivjwhjcVtmjZPJktw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-3.3.0.tgz", + "integrity": "sha512-34tonDW2v74VcG1mx+k/IUGG/eSHKwDiYKfFIZgaPLq/C0h8YQxh7pro272xpOf1pt6duX1Bi90dpGijh1MYgQ==", "hasInstallScript": true, "dependencies": { - "@prisma/engines-version": "2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54" + "@prisma/engines-version": "3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c" }, "engines": { - "node": ">=10.4" + "node": ">=12.6" }, "peerDependencies": { - "@prisma/cli": "*" + "prisma": "*" }, "peerDependenciesMeta": { - "@prisma/cli": { + "prisma": { "optional": true } } }, - "node_modules/@prisma/engines": { - "version": "2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54.tgz", - "integrity": "sha512-AgPxAWtwYhhTNEEsV4lK63HTe9z0GAGL3ofMr2B0TncACmzi9lhdun9TTNie38Oy/3DLfr71TUHKUpV8QjOKUw==", - "devOptional": true, - "hasInstallScript": true - }, "node_modules/@prisma/engines-version": { - "version": "2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54.tgz", - "integrity": "sha512-KDxk7Zsc9tDoShCE7v+O1SnCUTUkMdfezjbuz9CBvdEBGMtYLgyHaZAO8M038uqy8KjgwV9PzyoLqvVfzfsngg==" + "version": "3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c.tgz", + "integrity": "sha512-g21xPYq0zHoJ/xUkNxIf5Hle0oiDyelZHU8gwq7J3RNVrccjbUZ28S99KT4yUabV8SQQRNSnR0QMLGMv9Eqs/A==" }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", @@ -6757,7 +6729,6 @@ "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", @@ -7314,6 +7285,30 @@ "node": ">=4" } }, + "node_modules/prisma": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-3.3.0.tgz", + "integrity": "sha512-E7C9mXRwZVpcnSeJT533qGHUVrYULsE9ihFvAtQMuxhTXkxoRlMLyo/1ZOyeu9GdXP8DJ7ruLOw06kEs/N3dVg==", + "devOptional": true, + "hasInstallScript": true, + "dependencies": { + "@prisma/engines": "3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c" + }, + "bin": { + "prisma": "build/index.js", + "prisma2": "build/index.js" + }, + "engines": { + "node": ">=12.6" + } + }, + "node_modules/prisma/node_modules/@prisma/engines": { + "version": "3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c.tgz", + "integrity": "sha512-T3nEnRWmoneNZJPd9IBR29G8ZDUjNelA8+cG5y8/lh6vySm6ryWSNxj1s377U9YzFYyZmXiA9vK1iyxMoRff/g==", + "devOptional": true, + "hasInstallScript": true + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -10804,33 +10799,18 @@ } } }, - "@prisma/cli": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@prisma/cli/-/cli-2.15.0.tgz", - "integrity": "sha512-sF2mgn5oH5fL9/CKxS0tqojf0rK2BKODlEUqL+2s3YZqvJRSt4iFpiyjgajyd0wyTyv1k9LDHTV0yOD1mXDBsA==", - "devOptional": true, - "requires": { - "@prisma/engines": "2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54" - } - }, "@prisma/client": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-2.15.0.tgz", - "integrity": "sha512-3j4OoLpAGF104KAenUFJM9sU2+4jRP+RlrlYssBHkwBf+/5+2ihSpcmFiWIw1vXNRdmZtivjwhjcVtmjZPJktw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-3.3.0.tgz", + "integrity": "sha512-34tonDW2v74VcG1mx+k/IUGG/eSHKwDiYKfFIZgaPLq/C0h8YQxh7pro272xpOf1pt6duX1Bi90dpGijh1MYgQ==", "requires": { - "@prisma/engines-version": "2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54" + "@prisma/engines-version": "3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c" } }, - "@prisma/engines": { - "version": "2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54.tgz", - "integrity": "sha512-AgPxAWtwYhhTNEEsV4lK63HTe9z0GAGL3ofMr2B0TncACmzi9lhdun9TTNie38Oy/3DLfr71TUHKUpV8QjOKUw==", - "devOptional": true - }, "@prisma/engines-version": { - "version": "2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-2.15.0-25.e51dc3b5a9ee790a07104bec1c9477d51740fe54.tgz", - "integrity": "sha512-KDxk7Zsc9tDoShCE7v+O1SnCUTUkMdfezjbuz9CBvdEBGMtYLgyHaZAO8M038uqy8KjgwV9PzyoLqvVfzfsngg==" + "version": "3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c.tgz", + "integrity": "sha512-g21xPYq0zHoJ/xUkNxIf5Hle0oiDyelZHU8gwq7J3RNVrccjbUZ28S99KT4yUabV8SQQRNSnR0QMLGMv9Eqs/A==" }, "@protobufjs/aspromise": { "version": "1.1.2", @@ -15113,6 +15093,23 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, + "prisma": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-3.3.0.tgz", + "integrity": "sha512-E7C9mXRwZVpcnSeJT533qGHUVrYULsE9ihFvAtQMuxhTXkxoRlMLyo/1ZOyeu9GdXP8DJ7ruLOw06kEs/N3dVg==", + "devOptional": true, + "requires": { + "@prisma/engines": "3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c" + }, + "dependencies": { + "@prisma/engines": { + "version": "3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.3.0-30.33838b0f78f1fe9052cf9a00e9761c9dc097a63c.tgz", + "integrity": "sha512-T3nEnRWmoneNZJPd9IBR29G8ZDUjNelA8+cG5y8/lh6vySm6ryWSNxj1s377U9YzFYyZmXiA9vK1iyxMoRff/g==", + "devOptional": true + } + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", diff --git a/server/package.json b/server/package.json index f6ec0e7..6b23bd1 100755 --- a/server/package.json +++ b/server/package.json @@ -8,8 +8,8 @@ "dev": "nodemon --tls-min-v1.0 --ext js,graphql src/index.js --exec 'babel-node'", "dev:debug": "nodemon --tls-min-v1.0 --ext js,graphql src/index.js --exec 'babel-node --inspect'", "babel-node": "babel-node --presets='@babel/preset-env'", - "prisma:dev": "prisma migrate dev --preview-feature", - "prisma:deploy": "prisma migrate deploy --preview-feature", + "prisma:dev": "prisma migrate dev", + "prisma:deploy": "prisma migrate deploy", "prisma:generate": "prisma generate", "build": "babel src --out-dir dist --copy-files --source-maps" }, @@ -32,12 +32,12 @@ "@babel/node": "^7.0.0", "@babel/plugin-proposal-object-rest-spread": "^7.0.0", "@babel/preset-env": "^7.0.0", - "@prisma/cli": "^2.15.0", - "nodemon": "^2.0.6" + "nodemon": "^2.0.6", + "prisma": "^3.3.0" }, "dependencies": { "@babel/polyfill": "^7.12.1", - "@prisma/client": "^2.15.0", + "@prisma/client": "^3.3.0", "activedirectory2": "^2.1.0", "apollo-server": "^2.19.0", "apollo-server-plugin-response-cache": "^0.5.6", diff --git a/server/src/lib/logger.js b/server/src/lib/logger.js index 6c9293a..b2bac2b 100644 --- a/server/src/lib/logger.js +++ b/server/src/lib/logger.js @@ -27,7 +27,7 @@ async function log({ level, tags = [], message = '', data }, store = true) { level, tags: tags.toString(), message, - data: data ? JSON.decycle(data) : null + data: data ? JSON.decycle(data) : undefined } }) } catch (e) { diff --git a/server/src/lib/wifiDevices.js b/server/src/lib/wifiDevices.js index 1b5c27e..7898940 100644 --- a/server/src/lib/wifiDevices.js +++ b/server/src/lib/wifiDevices.js @@ -54,10 +54,12 @@ async function updateDevicesStatus() { } async function forceUserDisconnect(mac) { - await prisma.$executeRaw( - 'UPDATE "WifiDevice" SET "userId" = null WHERE mac = $1', - mac - ) + await prisma.wifiDevice.update({ + where: { mac }, + data: { + userId: null + } + }) } function mockHostName({ mac, oui }) { @@ -95,7 +97,7 @@ async function updateDB(onlineDevices) { }) .catch(async e => { // If is a binding problem, probably the device has an user outside of AD, so save it anyway... - if (e.code == 'P2016') + if (e.code == 'P2025') try { await forceUserDisconnect(device.mac) await prisma.wifiDevice.upsert({