From 07299cbc623d86809c2139051536e429a82ad3ad Mon Sep 17 00:00:00 2001 From: kicap1992 Date: Mon, 30 May 2022 10:55:41 +0800 Subject: [PATCH] added tambah pengiriman barang & socket io for later notification --- package-lock.json | 288 +++++++++++++++++++++++++++++++ package.json | 2 + server/google/googleapi.js | 1 + server/index.js | 54 ++++-- server/models/pengirim_model.js | 54 ++++++ server/models/users_model.js | 10 +- server/routes/pengirim_router.js | 84 ++++++++- yarn.lock | 126 +++++++++++++- 8 files changed, 597 insertions(+), 22 deletions(-) create mode 100644 server/models/pengirim_model.js diff --git a/package-lock.json b/package-lock.json index 5b986be..46aa68e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,8 @@ "nodemon": "^2.0.15", "react": "18.0.0", "react-dom": "18.0.0", + "socket.io": "^4.5.1", + "socket.io-client": "^4.5.1", "typescript": "^4.6.3" }, "devDependencies": { @@ -334,6 +336,11 @@ "node": ">=6" } }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, "node_modules/@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", @@ -345,6 +352,21 @@ "node": ">=6" } }, + "node_modules/@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -738,6 +760,14 @@ } ] }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, "node_modules/bignumber.js": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", @@ -1062,6 +1092,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1387,6 +1422,46 @@ "once": "^1.4.0" } }, + "node_modules/engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz", + "integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/es-abstract": { "version": "1.19.4", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.4.tgz", @@ -4437,6 +4512,66 @@ "npm": ">= 3.0.0" } }, + "node_modules/socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "node_modules/socket.io-client": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz", + "integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.2.1", + "socket.io-parser": "~4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.0.tgz", + "integrity": "sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/socks": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", @@ -4998,6 +5133,26 @@ "typedarray-to-buffer": "^3.1.5" } }, + "node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", @@ -5006,6 +5161,14 @@ "node": ">=8" } }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -5189,6 +5352,11 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", @@ -5197,6 +5365,21 @@ "defer-to-connect": "^1.0.1" } }, + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -5462,6 +5645,11 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, "bignumber.js": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", @@ -5688,6 +5876,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -5936,6 +6129,40 @@ "once": "^1.4.0" } }, + "engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + } + }, + "engine.io-client": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz", + "integrity": "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==" + }, "es-abstract": { "version": "1.19.4", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.4.tgz", @@ -8197,6 +8424,56 @@ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, + "socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + } + }, + "socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, + "socket.io-client": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz", + "integrity": "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.2.1", + "socket.io-parser": "~4.2.0" + }, + "dependencies": { + "socket.io-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.0.tgz", + "integrity": "sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + } + } + } + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, "socks": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", @@ -8604,11 +8881,22 @@ "typedarray-to-buffer": "^3.1.5" } }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "requires": {} + }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" }, + "xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" + }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", diff --git a/package.json b/package.json index d37119e..1afa4a3 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,8 @@ "nodemon": "^2.0.15", "react": "18.0.0", "react-dom": "18.0.0", + "socket.io": "^4.5.1", + "socket.io-client": "^4.5.1", "typescript": "^4.6.3" }, "devDependencies": { diff --git a/server/google/googleapi.js b/server/google/googleapi.js index abbb68f..4646174 100644 --- a/server/google/googleapi.js +++ b/server/google/googleapi.js @@ -57,6 +57,7 @@ module.exports = { console.log(message) return response.data.id; } catch (error) { + console.log(error) console.log('ini error') return error; } diff --git a/server/index.js b/server/index.js index bf3c368..1d33ac2 100644 --- a/server/index.js +++ b/server/index.js @@ -49,20 +49,26 @@ app.prepare().then(() => { server.use('/api/peta', peta_router); // connect to mongodb - mongoose.connect(process.env.DB_CONNECTION, { useNewUrlParser: true, useUnifiedTopology: true, family: 4}) + mongoose.connect(process.env.DB_CONNECTION, { useNewUrlParser: true, useUnifiedTopology: true, family: 4 }) let db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); - db.once('open', function() { + db.once('open', function () { console.log('connected to mongodb'); }) - + + + const io = require("socket.io-client"); + const socket = io("http://localhost:3001/"); server.get('/api', (req, res) => { console.log("ada org request"); - return res.status(200).send({ status : true, message : 'connected to api'}) + socket.emit('coba2', { + data: 'coba2' + }) + return res.status(200).send({ status: true, message: 'connected to api' }) }); - server.use('/api',(req, res, next) => { + server.use('/api', (req, res, next) => { res.status(404).send('404 not found'); }); @@ -76,16 +82,38 @@ app.prepare().then(() => { // // console.log(`ini dia ${process.env.DB_CONNECTION}`) // console.log(`> Ready on http://localhost:${port}`) // }) - http.createServer(server).listen(port, (err) => { - if (err) throw err - - // console.log(`ini dia ${process.env.DB_CONNECTION}`) - console.log(`> Ready on http://localhost:${port}`) - }) + const _server = http.createServer(server); + const _server_https = https.createServer(options, server); - https.createServer (options, server).listen(3003, (err) => { + const { Server } = require("socket.io"); + const io1 = new Server(_server); + const io2 = new Server(_server_https); + + io1.on('connection', (socket) => { + console.log('socket connected'); + socket.on('coba2', (_) => { + console.log(_.toString() +" ini di dia"); + io1.emit('coba1', { + data: 'coba2' + }) + + }); + }) + + // io2.on('connection', (socket) => { + // console.log('socket connected'); + // }) + + _server.listen(port, (err) => { if (err) throw err - + + // console.log(`ini dia ${process.env.DB_CONNECTION}`) + console.log(`> Ready on http://localhost:${port}`) + }) + + _server_https.listen(3003, (err) => { + if (err) throw err + // console.log(`ini dia ${process.env.DB_CONNECTION}`) console.log(`> Ready on https://localhost:${3003}`) }) diff --git a/server/models/pengirim_model.js b/server/models/pengirim_model.js new file mode 100644 index 0000000..ffed5ab --- /dev/null +++ b/server/models/pengirim_model.js @@ -0,0 +1,54 @@ +const mongoose = require('mongoose'); + +const pengirimanBarangSchema = new mongoose.Schema({ + nama_penerima: { + type: String, + required: true, + }, + no_telpon_penerima: { + type: String, + required: true, + }, + alamat_penerima: { + type: String, + required: true, + }, + kordinat_pengiriman: { + lat :{ + type: String, + required: true, + }, + lng :{ + type: String, + required: true, + } + }, + kelurahan_desa: { + type: String, + required: true, + }, + foto_pengiriman: { + type: String + }, + kurir: { + type: mongoose.Schema.Types.ObjectId, + ref: 'tb_kurir' + }, + pengirim : { + type: mongoose.Schema.Types.ObjectId, + ref: 'tb_pengirim' + }, + created_at: { + type: Date, + default: Date.now + }, + updated_at: { + type: Date, + default: Date.now + } + +}) + +const pengirimanBarangModel = mongoose.model('tb_pengiriman_barang', pengirimanBarangSchema , 'tb_pengiriman_barang'); + +module.exports = {pengirimanBarangModel}; \ No newline at end of file diff --git a/server/models/users_model.js b/server/models/users_model.js index 0878666..6533839 100644 --- a/server/models/users_model.js +++ b/server/models/users_model.js @@ -38,7 +38,11 @@ const pengirimSchema = new mongoose.Schema({ updated_at: { type: Date, default: Date.now - } + }, + pengiriman_barang : [{ + type: mongoose.Schema.Types.ObjectId, + ref: 'tb_pengiriman_barang' + }] }); const kurirSchema = new mongoose.Schema({ @@ -103,6 +107,10 @@ const kurirSchema = new mongoose.Schema({ pengaturan_pengiriman: [{ type: mongoose.Schema.Types.ObjectId, ref: 'tb_pengaturan_pengiriman' + }], + pengiriman_barang: [{ + type: mongoose.Schema.Types.ObjectId, + ref: 'tb_pengiriman_barang' }] }); diff --git a/server/routes/pengirim_router.js b/server/routes/pengirim_router.js index ddb8be8..b8eb6df 100644 --- a/server/routes/pengirim_router.js +++ b/server/routes/pengirim_router.js @@ -6,6 +6,8 @@ const { pengirimModel, kurirModel, loginUserModel } = require('../models/users_m const { pengaturanPengirimanModel } = require('../models/kurir_model'); +const {pengirimanBarangModel} = require('../models/pengirim_model'); + let googlenya = require('../google/googleapi.js'); const pengirim_folder_id = process.env.PENGIRIM_FOLDER_ID; @@ -13,6 +15,7 @@ const kurir_folder_id = process.env.KURIR_FOLDER_ID; const ktp_kurir_folder_id = process.env.KTP_KURIR_FOLDER_ID; const ktp_holding_kurir_folder_id = process.env.KTP_HOLDING_KURIR_FOLDER_ID; const kenderaan_kurir_folder_id = process.env.KENDERAAN_KURIR_FOLDER_ID; +const foto_barangan_pengiriman_folder_id = process.env.FOTO_BARANG_PENGIRIMAN_ID; async function cek_user_pengirim(req, res, next) { if (req.query.username == null && req.query.password == null && req.query.id == null) return res.status(401).send({ message: 'Not Authorized' }); @@ -42,7 +45,7 @@ router.get('/kurir', async (req, res) => { try { const data = await kurirModel.find({ status: 'Aktif' - }).select('-email -created_at -updated_at -__v -ktp_url -_id -alamat').populate( + }).select('-email -created_at -updated_at -__v -ktp_url -alamat').populate( { path: 'pengaturan_pengiriman', } @@ -62,7 +65,7 @@ router.get('/kurir/nama', cek_user_pengirim, async (req, res) => { $regex: nama, $options: 'i' } - }).select('-email -created_at -updated_at -__v -ktp_url -_id -alamat').populate( + }).select('-email -created_at -updated_at -__v -ktp_url -alamat').populate( { path: 'pengaturan_pengiriman', @@ -102,7 +105,7 @@ router.get('/kurir/filter/', cek_user_pengirim, async (req, res) => { } : {} ).populate({ path: 'kurir', - select: '-email -created_at -updated_at -__v -ktp_url -_id -alamat', + select: '-email -created_at -updated_at -__v -ktp_url -alamat', match: { nama: { $regex: nama, @@ -116,4 +119,79 @@ router.get('/kurir/filter/', cek_user_pengirim, async (req, res) => { }) +// create '/pengiriman_barang' post route +router.post('/pengiriman_barang', async (req, res) => { + const id = req.query.id; + const id_kurir = req.body.id_kurir; + const nama_penerima = req.body.nama_penerima; + const no_telpon_penerima = req.body.no_telpon_penerima; + const alamat_penerima = req.body.alamat_penerima; + const lat_lokasi_pengiriman = req.body.lat_lokasi_pengiriman; + const long_lokasi_pengiriman = req.body.long_lokasi_pengiriman; + const kelurahan_desa = req.body.kelurahan_desa; + const foto_pengiriman = req.files.foto_pengiriman; + + + const data = await pengirimanBarangModel.create({ + nama_penerima: nama_penerima, + no_telpon_penerima: no_telpon_penerima, + alamat_penerima : alamat_penerima, + kordinat_pengiriman: { + lat: lat_lokasi_pengiriman, + lng: long_lokasi_pengiriman + }, + kelurahan_desa: kelurahan_desa, + // foto_pengiriman: "ini url foto", + kurir : id_kurir, + pengirim : id, + }); + // console.log(data._id , "ini data pengiriman barang") + + await pengirimModel.findByIdAndUpdate(id, { + $push: { + pengiriman_barang: data._id + } + }) + + await kurirModel.findByIdAndUpdate(id_kurir, { + $push: { + pengiriman_barang: data._id + } + }) + res.status(200).send({ message: 'connected to pengiriman_barang' }) + + let id_photo = googlenya.uploadFile(data._id+".jpg", foto_pengiriman.path,foto_barangan_pengiriman_folder_id,"ini photo barang kiriman"); + + const photo_url = `https://drive.google.com/uc?export=view&id=${await id_photo}` + + await pengirimanBarangModel.findByIdAndUpdate(data._id, { + foto_pengiriman: photo_url + }) + + + // const idnya= "62940077b44339ec97fe519e" + // const id_pengirim = '6260ba6b7b7d7a951d03d285' + // const id_kurir = '629110cc793e75c08f7e2168' + + // // delete from pengirimModel in pengiriman_barang where idnya , where id = id_pengirim + // await pengirimModel.findByIdAndUpdate(id_pengirim, { + // $pull: { + // pengiriman_barang: idnya + // } + // }) + + // // delete from kurirModel in pengiriman_barang where idnya , where id = id_kurir + // await kurirModel.findByIdAndUpdate(id_kurir, { + // $pull: { + // pengiriman_barang: idnya + // } + // }) + + + + // console.log(id , id_kurir, nama_penerima, no_telpon_penerima, alamat_penerima, lat_lokasi_pengiriman, long_lokasi_pengiriman, kelurahan_desa, foto_pengiriman , "ini data yang dikirim"); + + +}) + module.exports = router; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c4b45f8..e52d4a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -94,6 +94,11 @@ "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" "version" "0.14.0" +"@socket.io/component-emitter@~3.1.0": + "integrity" "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + "resolved" "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz" + "version" "3.1.0" + "@szmarczak/http-timer@^1.1.2": "integrity" "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==" "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" @@ -101,12 +106,27 @@ dependencies: "defer-to-connect" "^1.0.1" +"@types/component-emitter@^1.2.10": + "integrity" "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + "resolved" "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz" + "version" "1.2.11" + +"@types/cookie@^0.4.1": + "integrity" "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + "resolved" "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz" + "version" "0.4.1" + +"@types/cors@^2.8.12": + "integrity" "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + "resolved" "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz" + "version" "2.8.12" + "@types/json5@^0.0.29": "integrity" "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" "resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" "version" "0.0.29" -"@types/node@*": +"@types/node@*", "@types/node@>=10.0.0": "integrity" "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" "resolved" "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz" "version" "17.0.23" @@ -180,7 +200,7 @@ dependencies: "event-target-shim" "^5.0.0" -"accepts@~1.3.8": +"accepts@~1.3.4", "accepts@~1.3.8": "integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" "version" "1.3.8" @@ -331,6 +351,11 @@ "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" "version" "1.5.1" +"base64id@~2.0.0", "base64id@2.0.0": + "integrity" "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + "resolved" "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" + "version" "2.0.0" + "bignumber.js@^9.0.0": "integrity" "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" "resolved" "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" @@ -504,6 +529,11 @@ "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" "version" "1.1.4" +"component-emitter@~1.3.0": + "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + "version" "1.3.0" + "concat-map@0.0.1": "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" @@ -549,7 +579,7 @@ "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" "version" "1.0.6" -"cookie@0.4.2": +"cookie@~0.4.1", "cookie@0.4.2": "integrity" "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" "version" "0.4.2" @@ -559,7 +589,7 @@ "resolved" "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz" "version" "3.21.1" -"cors@^2.8.5": +"cors@^2.8.5", "cors@~2.8.5": "integrity" "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==" "resolved" "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" "version" "2.8.5" @@ -605,7 +635,7 @@ dependencies: "ms" "^2.1.1" -"debug@^4.1.1", "debug@^4.3.2", "debug@4", "debug@4.x": +"debug@^4.1.1", "debug@^4.3.2", "debug@~4.3.1", "debug@~4.3.2", "debug@4", "debug@4.x": "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" "version" "4.3.4" @@ -735,6 +765,38 @@ dependencies: "once" "^1.4.0" +"engine.io-client@~6.2.1": + "integrity" "sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==" + "resolved" "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.2.tgz" + "version" "6.2.2" + dependencies: + "@socket.io/component-emitter" "~3.1.0" + "debug" "~4.3.1" + "engine.io-parser" "~5.0.3" + "ws" "~8.2.3" + "xmlhttprequest-ssl" "~2.0.0" + +"engine.io-parser@~5.0.3": + "integrity" "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==" + "resolved" "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz" + "version" "5.0.4" + +"engine.io@~6.2.0": + "integrity" "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==" + "resolved" "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz" + "version" "6.2.0" + dependencies: + "@types/cookie" "^0.4.1" + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" + "accepts" "~1.3.4" + "base64id" "2.0.0" + "cookie" "~0.4.1" + "cors" "~2.8.5" + "debug" "~4.3.1" + "engine.io-parser" "~5.0.3" + "ws" "~8.2.3" + "es-abstract@^1.19.1", "es-abstract@^1.19.2": "integrity" "sha512-flV8e5g9/xulChMG48Fygk1ptpo4lQRJ0eJYtxJFgi7pklLx7EFcOJ34jnvr8pbWlaFN/AT1cZpe0hiFel9Hqg==" "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.4.tgz" @@ -2595,6 +2657,50 @@ "resolved" "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" "version" "4.2.0" +"socket.io-adapter@~2.4.0": + "integrity" "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + "resolved" "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz" + "version" "2.4.0" + +"socket.io-client@^4.5.1": + "integrity" "sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==" + "resolved" "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.1.tgz" + "version" "4.5.1" + dependencies: + "@socket.io/component-emitter" "~3.1.0" + "debug" "~4.3.2" + "engine.io-client" "~6.2.1" + "socket.io-parser" "~4.2.0" + +"socket.io-parser@~4.0.4": + "integrity" "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==" + "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "@types/component-emitter" "^1.2.10" + "component-emitter" "~1.3.0" + "debug" "~4.3.1" + +"socket.io-parser@~4.2.0": + "integrity" "sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng==" + "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "@socket.io/component-emitter" "~3.1.0" + "debug" "~4.3.1" + +"socket.io@^4.5.1": + "integrity" "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==" + "resolved" "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz" + "version" "4.5.1" + dependencies: + "accepts" "~1.3.4" + "base64id" "~2.0.0" + "debug" "~4.3.2" + "engine.io" "~6.2.0" + "socket.io-adapter" "~2.4.0" + "socket.io-parser" "~4.0.4" + "socks@^2.6.1": "integrity" "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==" "resolved" "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz" @@ -2983,11 +3089,21 @@ "signal-exit" "^3.0.2" "typedarray-to-buffer" "^3.1.5" +"ws@~8.2.3": + "integrity" "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==" + "resolved" "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz" + "version" "8.2.3" + "xdg-basedir@^4.0.0": "integrity" "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" "resolved" "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" "version" "4.0.0" +"xmlhttprequest-ssl@~2.0.0": + "integrity" "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" + "resolved" "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz" + "version" "2.0.0" + "yallist@^4.0.0": "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"