This commit is contained in:
2022-02-21 13:16:13 -06:00
15 changed files with 153 additions and 148 deletions
+98 -98
View File
@@ -112,9 +112,9 @@
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"node_modules/@types/node": {
"version": "14.18.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.11.tgz",
"integrity": "sha512-zCoCEMA+IPpsRkyCFBqew5vGb7r8RSiB3uwdu/map7uwLAfu1MTazW26/pUDWoNnF88vJz4W3U56i5gtXNqxGg=="
"version": "17.0.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz",
"integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA=="
},
"node_modules/abbrev": {
"version": "1.1.1",
@@ -299,19 +299,19 @@
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
"node_modules/body-parser": {
"version": "1.19.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz",
"integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==",
"version": "1.19.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
"integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
"dependencies": {
"bytes": "3.1.1",
"bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"on-finished": "~2.3.0",
"qs": "6.9.6",
"raw-body": "2.4.2",
"qs": "6.9.7",
"raw-body": "2.4.3",
"type-is": "~1.6.18"
},
"engines": {
@@ -384,9 +384,9 @@
}
},
"node_modules/bytes": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
"integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"engines": {
"node": ">= 0.8"
}
@@ -681,9 +681,9 @@
"integrity": "sha512-dxUINCt28k6WbXGMoB+AaKjGY0Y6GkKwZmT+kvD4nJgVCOKsnIQ3G6n0v2II1lG4NwXQk6EWZ+pPDub9wcqqMg=="
},
"node_modules/cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
"engines": {
"node": ">= 0.6"
}
@@ -776,9 +776,9 @@
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"node_modules/denque": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz",
"integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
"integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==",
"engines": {
"node": ">=0.10"
}
@@ -960,16 +960,16 @@
}
},
"node_modules/express": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
"integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==",
"version": "4.17.3",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
"integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
"dependencies": {
"accepts": "~1.3.7",
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.19.1",
"body-parser": "1.19.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.4.1",
"cookie": "0.4.2",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
@@ -984,7 +984,7 @@
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
"qs": "6.9.6",
"qs": "6.9.7",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.17.2",
@@ -1590,9 +1590,9 @@
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
},
"node_modules/long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz",
"integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w=="
},
"node_modules/lowercase-keys": {
"version": "1.0.1",
@@ -1637,16 +1637,16 @@
}
},
"node_modules/mariadb": {
"version": "2.5.5",
"resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.5.tgz",
"integrity": "sha512-6dklvcKWuuaV1JjAwnE2ezR+jTt7JrZHftgeHHBmjB0wgfaUpdxol1DPWclwMcCrsO9yoM0FuCOiCcCgXc//9Q==",
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.6.tgz",
"integrity": "sha512-zBx7loYY5GzLl8Y6AKxGXfY9DUYIIdGrmEORPOK9FEu0pg5ZLBKCGJuucHwKADxTBxKY7eM4rxndqxRcnMZKIw==",
"dependencies": {
"@types/geojson": "^7946.0.7",
"@types/node": "^14.14.28",
"denque": "^1.5.0",
"@types/geojson": "^7946.0.8",
"@types/node": "^17.0.10",
"denque": "^2.0.1",
"iconv-lite": "^0.6.3",
"long": "^4.0.0",
"moment-timezone": "^0.5.33",
"long": "^5.2.0",
"moment-timezone": "^0.5.34",
"please-upgrade-node": "^3.2.0"
},
"engines": {
@@ -1725,9 +1725,9 @@
}
},
"node_modules/minimatch": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz",
"integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -2113,9 +2113,9 @@
}
},
"node_modules/qs": {
"version": "6.9.6",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
"integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
"version": "6.9.7",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
"engines": {
"node": ">=0.6"
},
@@ -2132,11 +2132,11 @@
}
},
"node_modules/raw-body": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
"integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
"integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
"dependencies": {
"bytes": "3.1.1",
"bytes": "3.1.2",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
@@ -2334,9 +2334,9 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/sequelize": {
"version": "6.16.1",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.1.tgz",
"integrity": "sha512-YFGqrwkmEhSbpZBxay5+PRKMiZNNUJzgIixCyFkLm9+/5Rqq5jBADEjTAC8RYHzwsOGNboYh18imXrYNCjBZCQ==",
"version": "6.16.2",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.2.tgz",
"integrity": "sha512-0fCdO4qrkuMWizq3blDVHPC4NvrDkRnrFucoJKlaukdatrDpluBw2GXQ53rBQeizbHGefdgehhFiyFzyo0COKg==",
"funding": [
{
"type": "opencollective",
@@ -3025,9 +3025,9 @@
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"@types/node": {
"version": "14.18.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.11.tgz",
"integrity": "sha512-zCoCEMA+IPpsRkyCFBqew5vGb7r8RSiB3uwdu/map7uwLAfu1MTazW26/pUDWoNnF88vJz4W3U56i5gtXNqxGg=="
"version": "17.0.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz",
"integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA=="
},
"abbrev": {
"version": "1.1.1",
@@ -3174,19 +3174,19 @@
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
"body-parser": {
"version": "1.19.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz",
"integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==",
"version": "1.19.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
"integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
"requires": {
"bytes": "3.1.1",
"bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"on-finished": "~2.3.0",
"qs": "6.9.6",
"raw-body": "2.4.2",
"qs": "6.9.7",
"raw-body": "2.4.3",
"type-is": "~1.6.18"
}
},
@@ -3244,9 +3244,9 @@
}
},
"bytes": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
"integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg=="
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
"cacheable-request": {
"version": "6.1.0",
@@ -3473,9 +3473,9 @@
"integrity": "sha512-dxUINCt28k6WbXGMoB+AaKjGY0Y6GkKwZmT+kvD4nJgVCOKsnIQ3G6n0v2II1lG4NwXQk6EWZ+pPDub9wcqqMg=="
},
"cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
},
"cookie-signature": {
"version": "1.0.6",
@@ -3547,9 +3547,9 @@
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"denque": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz",
"integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw=="
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
"integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
},
"depd": {
"version": "1.1.2",
@@ -3689,16 +3689,16 @@
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"express": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
"integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==",
"version": "4.17.3",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
"integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
"requires": {
"accepts": "~1.3.7",
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.19.1",
"body-parser": "1.19.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.4.1",
"cookie": "0.4.2",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
@@ -3713,7 +3713,7 @@
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
"qs": "6.9.6",
"qs": "6.9.7",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.17.2",
@@ -4190,9 +4190,9 @@
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
},
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz",
"integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w=="
},
"lowercase-keys": {
"version": "1.0.1",
@@ -4224,16 +4224,16 @@
}
},
"mariadb": {
"version": "2.5.5",
"resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.5.tgz",
"integrity": "sha512-6dklvcKWuuaV1JjAwnE2ezR+jTt7JrZHftgeHHBmjB0wgfaUpdxol1DPWclwMcCrsO9yoM0FuCOiCcCgXc//9Q==",
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.6.tgz",
"integrity": "sha512-zBx7loYY5GzLl8Y6AKxGXfY9DUYIIdGrmEORPOK9FEu0pg5ZLBKCGJuucHwKADxTBxKY7eM4rxndqxRcnMZKIw==",
"requires": {
"@types/geojson": "^7946.0.7",
"@types/node": "^14.14.28",
"denque": "^1.5.0",
"@types/geojson": "^7946.0.8",
"@types/node": "^17.0.10",
"denque": "^2.0.1",
"iconv-lite": "^0.6.3",
"long": "^4.0.0",
"moment-timezone": "^0.5.33",
"long": "^5.2.0",
"moment-timezone": "^0.5.34",
"please-upgrade-node": "^3.2.0"
},
"dependencies": {
@@ -4287,9 +4287,9 @@
"dev": true
},
"minimatch": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz",
"integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -4579,9 +4579,9 @@
}
},
"qs": {
"version": "6.9.6",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
"integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ=="
"version": "6.9.7",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
},
"range-parser": {
"version": "1.2.1",
@@ -4589,11 +4589,11 @@
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
"integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
"integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
"requires": {
"bytes": "3.1.1",
"bytes": "3.1.2",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
@@ -4747,9 +4747,9 @@
}
},
"sequelize": {
"version": "6.16.1",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.1.tgz",
"integrity": "sha512-YFGqrwkmEhSbpZBxay5+PRKMiZNNUJzgIixCyFkLm9+/5Rqq5jBADEjTAC8RYHzwsOGNboYh18imXrYNCjBZCQ==",
"version": "6.16.2",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.2.tgz",
"integrity": "sha512-0fCdO4qrkuMWizq3blDVHPC4NvrDkRnrFucoJKlaukdatrDpluBw2GXQ53rBQeizbHGefdgehhFiyFzyo0COKg==",
"requires": {
"@types/debug": "^4.1.7",
"debug": "^4.3.3",
@@ -18,24 +18,6 @@ const historialMultasUsuario = async (body) => {
{
model: Prestamo,
where: { idUsuario },
// include: [
// {
// model: Equipo,
// include: [
// {
// model: Carrito,
// include: [{ model: Modulo }, { model: TipoCarrito }],
// attributes: ['idCarrito', 'carrito'],
// },
// ],
// attributes: [
// 'idEquipo',
// 'numeroSerie',
// 'numeroInventario',
// 'equipo',
// ],
// },
// ],
attributes: ['idPrestamo'],
},
{
-1
View File
@@ -42,7 +42,6 @@ const multar = async (body) => {
})
.then((res) => {
if (!res) throw new Error('No existe esta infracción.');
// Checar si tiene una multa activa, agragar días a multa
gravedad = res.gravedad;
return Prestamo.findOne({
where: { idPrestamo },
@@ -8,6 +8,7 @@ const Prestamo = require(`${dbPath}/Prestamo`);
const cancelarOperador = async (body) => {
const idPrestamo = validarNumeroEntero(body.idPrestamo, 'id préstamo', true);
const idOperador = validarNumeroEntero(body.idOperador, 'id operador', true);
let idUsuario = null;
return Operador.findOne({ where: { idOperador } })
.then((res) => {
@@ -16,6 +17,7 @@ const cancelarOperador = async (body) => {
})
.then((res) => {
if (!res) throw new Error('Este préstamo no existe.');
idUsuario = res.idUsuario;
if (!res.activo)
throw new Error(
'Este préstamo ya no esta activo, no se puede cancelar.'
@@ -36,7 +38,7 @@ const cancelarOperador = async (body) => {
)
)
.then(() => {
io.getIO().emit('actualizar', { idPrestamo });
io.getIO().emit('actualizar', { idUsuario });
return { message: 'Se canceló el préstamo correctamente.' };
});
};
@@ -43,7 +43,7 @@ const cancelarUsuario = async (body) => {
)
)
.then(() => {
io.getIO().emit('actualizar');
io.getIO().emit('actualizar', { idUsuario });
return { message: 'Se canceló el préstamo correctamente.' };
});
};
+11
View File
@@ -0,0 +1,11 @@
const dbPath = '../../db/tablas';
const Prestamo = require(`${dbPath}/Prestamo`);
const diezMinutos = async (body) => {
return Prestamo.findAll({
where: { activo: true, idOperadorEntrega: null },
attributes: ['idPrestamo', 'activo', 'horaMaxRecoger', 'idOperadorEntrega'],
});
};
module.exports = diezMinutos;
+5 -3
View File
@@ -17,11 +17,12 @@ const entregar = async (body) => {
'id operador entrega',
true
);
let idEquipo;
let update = {
idOperadorEntrega,
horaInicio: ahora.format(),
};
let idEquipo = null;
let idUsuario = null;
return Operador.findOne({ where: { idOperador: idOperadorEntrega } })
.then((res) => {
@@ -34,6 +35,7 @@ const entregar = async (body) => {
.then(async (res) => {
if (!res) throw new Error('No existe este préstamo.');
idEquipo = res.idEquipo;
idUsuario = res.idUsuario;
if (!res.activo) throw new Error('Este préstamo ya no esta activo.');
if (res.Equipo.idStatus === 2)
throw new Error('Ya se entrego el equipo al usuario.');
@@ -43,7 +45,7 @@ const entregar = async (body) => {
Prestamo.update({ activo: false }, { where: { idPrestamo } })
)
.then(() => {
io.getIO().emit('actualizar');
io.getIO().emit('actualizar', { idUsuario });
throw new Error(
'Ya pasó el tiempo límite para recoger el equipo de cómputo.'
);
@@ -68,7 +70,7 @@ const entregar = async (body) => {
})
)
.then((res) => {
io.getIO().emit('actualizar');
io.getIO().emit('actualizar', { idUsuario });
return res;
});
};
+2 -2
View File
@@ -30,7 +30,7 @@ const pedir = async (body) => {
let whereEquipo = { idStatus: 4 };
let idEquipo;
if (ahora.weekday === 6 || ahora.weekday === 7)
if (ahora.day() === 6 || ahora.day() === 0)
throw new Error(
'No se puede pedir un equipo de cómputo los días sabados y domingos.'
);
@@ -111,7 +111,7 @@ const pedir = async (body) => {
})
)
.then((res) => {
io.getIO().emit('actualizar', { idPrestamo: res.idPrestamo });
io.getIO().emit('actualizar', { idUsuario });
return {
message:
'Haz solicitado un equipo de cómputo correctamente. Presentate al módulo señalado y muestra tu QR.',
+4 -5
View File
@@ -19,6 +19,7 @@ const regresar = async (body) => {
);
const update = { idOperadorRegreso };
let diferencia = null;
let idUsuario = null;
return Operador.findOne({ where: { idOperador: idOperadorRegreso } })
.then((res) => {
@@ -30,6 +31,7 @@ const regresar = async (body) => {
})
.then(async (res) => {
if (!res) throw new Error('No existe este préstamo.');
idUsuario = res.idUsuario;
if (!res.activo && res.idOperadorRegreso)
throw new Error('Este préstamo ya no esta activo.');
if (res.Equipo.idStatus === 1)
@@ -46,10 +48,7 @@ const regresar = async (body) => {
descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`,
fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(),
}).then(() =>
Usuario.update(
{ multa: true },
{ where: { idUsuario: res.idUsuario } }
)
Usuario.update({ multa: true }, { where: { idUsuario } })
);
}
return Equipo.update(
@@ -59,7 +58,7 @@ const regresar = async (body) => {
})
.then(() => Prestamo.update(update, { where: { idPrestamo } }))
.then(() => {
io.getIO().emit('actualizar');
io.getIO().emit('actualizar', { idUsuario });
return {
message: 'Se ha regresado correctamente el equipo de cómputo.',
};
@@ -26,6 +26,7 @@ const regresarNumeroInventario = async (body) => {
const update = { idOperadorRegreso };
let diferencia = null;
let idPrestamo = null;
let idUsuario = null;
return Operador.findOne({ where: { idOperador: idOperadorRegreso } })
.then((res) => {
@@ -53,6 +54,7 @@ const regresarNumeroInventario = async (body) => {
if (res.Equipo.idStatus === 1)
throw new Error('Aún no se ha entregado el equipo al usuario.');
idPrestamo = res.idPrestamo;
idUsuario = res.idUsuario;
if (!res.regresoInmediato) {
update.horaEntrega = ahora.format();
update.activo = false;
@@ -65,10 +67,7 @@ const regresarNumeroInventario = async (body) => {
descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`,
fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(),
}).then(() =>
Usuario.update(
{ multa: true },
{ where: { idUsuario: res.idUsuario } }
)
Usuario.update({ multa: true }, { where: { idUsuario } })
);
}
return Equipo.update(
@@ -78,7 +77,7 @@ const regresarNumeroInventario = async (body) => {
})
.then(() => Prestamo.update(update, { where: { idPrestamo } }))
.then(() => {
io.getIO().emit('actualizar');
io.getIO().emit('actualizar', { idUsuario });
return {
message: 'Se ha regresado correctamente el equipo de cómputo.',
};
@@ -12,6 +12,7 @@ const regresoInmediato = async (body) => {
const ahoraAux = moment();
const idPrestamo = validarNumeroEntero(body.idPrestamo, 'id préstamo', true);
let diferencia = null;
let idUsuario = null;
return Prestamo.findOne({
where: { idPrestamo },
@@ -19,6 +20,7 @@ const regresoInmediato = async (body) => {
})
.then(async (res) => {
if (!res) throw new Error('No existe este préstamo.');
idUsuario = res.idUsuario;
if (!res.activo) throw new Error('Este préstamo ya no esta activo.');
if (res.Equipo.idStatus === 1)
throw new Error('Aún no se ha entregado el equipo al usuario.');
@@ -31,10 +33,7 @@ const regresoInmediato = async (body) => {
descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`,
fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(),
}).then(() =>
Usuario.update(
{ multa: true },
{ where: { idUsuario: res.idUsuario } }
)
Usuario.update({ multa: true }, { where: { idUsuario } })
);
return Equipo.update(
{ idStatus: 3 },
@@ -48,7 +47,7 @@ const regresoInmediato = async (body) => {
)
)
.then(() => {
io.getIO().emit('actualizar');
io.getIO().emit('actualizar', { idUsuario });
return {
message: 'Se ha regresado correctamente el equipo de cómputo.',
};
@@ -18,6 +18,7 @@ const regresoInmediatoNumeroInventario = async (body) => {
);
let diferencia = null;
let idPrestamo = null;
let idUsuario = null;
return Prestamo.findOne({
where: { activo: true },
@@ -28,6 +29,7 @@ const regresoInmediatoNumeroInventario = async (body) => {
throw new Error(
'No existe un préstamo activo con este número de inventario.'
);
idUsuario = res.idUsuario;
if (!res.activo) throw new Error('Este préstamo ya no esta activo.');
if (res.Equipo.idStatus === 1)
throw new Error('Aún no se ha entregado el equipo al usuario.');
@@ -41,10 +43,7 @@ const regresoInmediatoNumeroInventario = async (body) => {
descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`,
fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(),
}).then(() =>
Usuario.update(
{ multa: true },
{ where: { idUsuario: res.idUsuario } }
)
Usuario.update({ multa: true }, { where: { idUsuario } })
);
return Equipo.update(
{ idStatus: 3 },
@@ -58,7 +57,7 @@ const regresoInmediatoNumeroInventario = async (body) => {
)
)
.then(() => {
io.getIO().emit('actualizar');
io.getIO().emit('actualizar', { idUsuario });
return {
message: 'Se ha regresado correctamente el equipo de cómputo.',
};
+3 -3
View File
@@ -34,8 +34,8 @@ const reporte = async (body) => {
return Prestamo.findAll({
where: {
[Op.and]: [
{ createdAt: { [Op.gte]: inicio.format() } },
{ createdAt: { [Op.lte]: fin.format() } },
{ createdAt: { [Op.gte]: inicio.add(-1, 'd').format() } },
{ createdAt: { [Op.lte]: fin.add(1, 'd').format() } },
],
},
include: [
@@ -127,7 +127,7 @@ const reporte = async (body) => {
await helper.eliminarArchivo(path).catch((err) => {});
return helper.crearArchivo(path, convertArrayToCSV(data));
})
.then((res) => path);
.then(() => path);
};
module.exports = reporte;
+3 -1
View File
@@ -15,6 +15,7 @@ const status = async (body) => {
const idPrestamo = validarNumeroEntero(body.idPrestamo, 'id préstamo', true);
let message = '';
let atraso = false;
let idUsuario = null;
return Prestamo.findOne({
where: { idPrestamo },
@@ -22,6 +23,7 @@ const status = async (body) => {
})
.then(async (res) => {
if (!res) throw new Error('No existe este préstamo.');
idUsuario = res.idUsuario;
if (!res.activo) {
if (!res.horaEntrega) message = 'Este préstamo fue cancelado.';
else message = 'Este préstamo no es encuentra activo.';
@@ -43,7 +45,7 @@ const status = async (body) => {
);
message =
'Ya paso el tiempo limite para recoger el dispositivo. Se ha cancelado tu prestamo.';
io.getIO().emit('actualizar');
io.getIO().emit('actualizar', { idUsuario });
} else message = 'Aún no se entrega el equipo al usuario.';
return Prestamo.findOne({
where: { idPrestamo },
+11
View File
@@ -6,6 +6,7 @@ const controllerPath = '../controller/Prestamo';
const activos = require(`${controllerPath}/activos`);
const cancelarOperador = require(`${controllerPath}/cancelarOperador`);
const cancelarUsuario = require(`${controllerPath}/cancelarUsuario`);
const diezMinutos = require(`${controllerPath}/diezMinutos`);
const historial = require(`${controllerPath}/historial`);
const historialEquipo = require(`${controllerPath}/historialEquipo`);
const historialUsuario = require(`${controllerPath}/historialUsuario`);
@@ -119,6 +120,16 @@ app.get(`${route}/activos`, verificaToken, (req, res) => {
});
});
app.get(`${route}/diez_minutos`, verificaToken, (req, res) => {
return diezMinutos(req.query)
.then((data) => {
res.status(200).json(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
});
app.get(`${route}/historial`, verificaToken, (req, res) => {
return historial(req.query)
.then((data) => {