pruebas #1
+6
-1
@@ -1,2 +1,7 @@
|
||||
node_modules
|
||||
.env
|
||||
.env
|
||||
routes/imagenesCarrusel
|
||||
routes/imagenLibro
|
||||
routes/pdf
|
||||
|
||||
|
||||
|
||||
Generated
+505
@@ -4,6 +4,11 @@
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"abbrev": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
||||
},
|
||||
"accepts": {
|
||||
"version": "1.3.7",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
|
||||
@@ -27,6 +32,30 @@
|
||||
"printj": "~1.1.0"
|
||||
}
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
||||
},
|
||||
"append-field": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
|
||||
"integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
||||
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
|
||||
},
|
||||
"are-we-there-yet": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
|
||||
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
|
||||
"requires": {
|
||||
"delegates": "^1.0.0",
|
||||
"readable-stream": "^2.0.6"
|
||||
}
|
||||
},
|
||||
"array-flatten": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
||||
@@ -37,6 +66,15 @@
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||
},
|
||||
"bcrypt": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.0.tgz",
|
||||
"integrity": "sha512-jB0yCBl4W/kVHM2whjfyqnxTmOHkCX4kHEa5nYKSoGeYe8YrjTYTc87/6bwt1g8cmV0QrbhKriETg9jWtcREhg==",
|
||||
"requires": {
|
||||
"node-addon-api": "^3.0.0",
|
||||
"node-pre-gyp": "0.15.0"
|
||||
}
|
||||
},
|
||||
"big-integer": {
|
||||
"version": "1.6.48",
|
||||
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
|
||||
@@ -87,6 +125,11 @@
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"buffer-equal-constant-time": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
|
||||
"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
|
||||
@@ -163,6 +206,16 @@
|
||||
"traverse": ">=0.3.0 <0.4"
|
||||
}
|
||||
},
|
||||
"chownr": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
||||
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
|
||||
},
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
|
||||
},
|
||||
"codepage": {
|
||||
"version": "1.14.0",
|
||||
"resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz",
|
||||
@@ -189,6 +242,17 @@
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||
},
|
||||
"concat-stream": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
|
||||
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
|
||||
"requires": {
|
||||
"buffer-from": "^1.0.0",
|
||||
"inherits": "^2.0.3",
|
||||
"readable-stream": "^2.2.2",
|
||||
"typedarray": "^0.0.6"
|
||||
}
|
||||
},
|
||||
"connect-busboy": {
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/connect-busboy/-/connect-busboy-0.0.2.tgz",
|
||||
@@ -197,6 +261,11 @@
|
||||
"busboy": "*"
|
||||
}
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
|
||||
},
|
||||
"content-disposition": {
|
||||
"version": "0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
|
||||
@@ -256,6 +325,16 @@
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"deep-extend": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
||||
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
|
||||
},
|
||||
"delegates": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
|
||||
},
|
||||
"depd": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||
@@ -266,6 +345,11 @@
|
||||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
||||
},
|
||||
"detect-libc": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
|
||||
},
|
||||
"dicer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
|
||||
@@ -295,6 +379,14 @@
|
||||
"readable-stream": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"ecdsa-sig-formatter": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
|
||||
"integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
@@ -362,6 +454,14 @@
|
||||
"vary": "~1.1.2"
|
||||
}
|
||||
},
|
||||
"express-fileupload": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.2.0.tgz",
|
||||
"integrity": "sha512-oe4WpKcSppXnl5peornawWUa6tKmIc1/kJxMNRGJR1A0v4zyLL6VsFR6wZ8P2a4Iq3aGx8xae3Vlr+MOMQhFPw==",
|
||||
"requires": {
|
||||
"busboy": "^0.3.1"
|
||||
}
|
||||
},
|
||||
"finalhandler": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
|
||||
@@ -391,6 +491,14 @@
|
||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
||||
},
|
||||
"fs-minipass": {
|
||||
"version": "1.2.7",
|
||||
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
|
||||
"integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
|
||||
"requires": {
|
||||
"minipass": "^2.6.0"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
@@ -407,6 +515,21 @@
|
||||
"rimraf": "2"
|
||||
}
|
||||
},
|
||||
"gauge": {
|
||||
"version": "2.7.4",
|
||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
|
||||
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
|
||||
"requires": {
|
||||
"aproba": "^1.0.3",
|
||||
"console-control-strings": "^1.0.0",
|
||||
"has-unicode": "^2.0.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"string-width": "^1.0.1",
|
||||
"strip-ansi": "^3.0.1",
|
||||
"wide-align": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
@@ -425,6 +548,11 @@
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
|
||||
"integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
|
||||
},
|
||||
"has-unicode": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
||||
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
|
||||
@@ -445,6 +573,14 @@
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
}
|
||||
},
|
||||
"ignore-walk": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
|
||||
"integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
|
||||
"requires": {
|
||||
"minimatch": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"immediate": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||
@@ -464,16 +600,53 @@
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.8",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
|
||||
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
|
||||
},
|
||||
"ipaddr.js": {
|
||||
"version": "1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
||||
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
||||
},
|
||||
"jsonwebtoken": {
|
||||
"version": "8.5.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
|
||||
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
|
||||
"requires": {
|
||||
"jws": "^3.2.2",
|
||||
"lodash.includes": "^4.3.0",
|
||||
"lodash.isboolean": "^3.0.3",
|
||||
"lodash.isinteger": "^4.0.4",
|
||||
"lodash.isnumber": "^3.0.3",
|
||||
"lodash.isplainobject": "^4.0.6",
|
||||
"lodash.isstring": "^4.0.1",
|
||||
"lodash.once": "^4.0.0",
|
||||
"ms": "^2.1.1",
|
||||
"semver": "^5.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"jszip": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz",
|
||||
@@ -511,6 +684,25 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"jwa": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
|
||||
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
|
||||
"requires": {
|
||||
"buffer-equal-constant-time": "1.0.1",
|
||||
"ecdsa-sig-formatter": "1.0.11",
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"jws": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
|
||||
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
|
||||
"requires": {
|
||||
"jwa": "^1.4.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"libbase64": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz",
|
||||
@@ -551,6 +743,41 @@
|
||||
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
|
||||
"integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc="
|
||||
},
|
||||
"lodash.includes": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
|
||||
"integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
|
||||
},
|
||||
"lodash.isboolean": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
|
||||
"integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
|
||||
},
|
||||
"lodash.isinteger": {
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
|
||||
"integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
|
||||
},
|
||||
"lodash.isnumber": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
|
||||
"integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
|
||||
},
|
||||
"lodash.isplainobject": {
|
||||
"version": "4.0.6",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
|
||||
"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
|
||||
},
|
||||
"lodash.isstring": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
|
||||
"integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
|
||||
},
|
||||
"lodash.once": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
|
||||
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
|
||||
},
|
||||
"mailcomposer": {
|
||||
"version": "3.12.0",
|
||||
"resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-3.12.0.tgz",
|
||||
@@ -623,6 +850,23 @@
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
|
||||
"integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"minizlib": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
|
||||
"integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
|
||||
"requires": {
|
||||
"minipass": "^2.9.0"
|
||||
}
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
||||
@@ -636,6 +880,62 @@
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
},
|
||||
"multer": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz",
|
||||
"integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==",
|
||||
"requires": {
|
||||
"append-field": "^1.0.0",
|
||||
"busboy": "^0.2.11",
|
||||
"concat-stream": "^1.5.2",
|
||||
"mkdirp": "^0.5.1",
|
||||
"object-assign": "^4.1.1",
|
||||
"on-finished": "^2.3.0",
|
||||
"type-is": "^1.6.4",
|
||||
"xtend": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"busboy": {
|
||||
"version": "0.2.14",
|
||||
"resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
|
||||
"integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
|
||||
"requires": {
|
||||
"dicer": "0.2.5",
|
||||
"readable-stream": "1.1.x"
|
||||
}
|
||||
},
|
||||
"dicer": {
|
||||
"version": "0.2.5",
|
||||
"resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
|
||||
"integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
|
||||
"requires": {
|
||||
"readable-stream": "1.1.x",
|
||||
"streamsearch": "0.1.2"
|
||||
}
|
||||
},
|
||||
"isarray": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
||||
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "1.1.14",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
|
||||
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.1",
|
||||
"isarray": "0.0.1",
|
||||
"string_decoder": "~0.10.x"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
"mysql": {
|
||||
"version": "2.18.1",
|
||||
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
|
||||
@@ -647,11 +947,58 @@
|
||||
"sqlstring": "2.3.1"
|
||||
}
|
||||
},
|
||||
"needle": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz",
|
||||
"integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==",
|
||||
"requires": {
|
||||
"debug": "^3.2.6",
|
||||
"iconv-lite": "^0.4.4",
|
||||
"sax": "^1.2.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
||||
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"negotiator": {
|
||||
"version": "0.6.2",
|
||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
|
||||
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
|
||||
},
|
||||
"node-addon-api": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
|
||||
"integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw=="
|
||||
},
|
||||
"node-pre-gyp": {
|
||||
"version": "0.15.0",
|
||||
"resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz",
|
||||
"integrity": "sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==",
|
||||
"requires": {
|
||||
"detect-libc": "^1.0.2",
|
||||
"mkdirp": "^0.5.3",
|
||||
"needle": "^2.5.0",
|
||||
"nopt": "^4.0.1",
|
||||
"npm-packlist": "^1.1.6",
|
||||
"npmlog": "^4.0.2",
|
||||
"rc": "^1.2.7",
|
||||
"rimraf": "^2.6.1",
|
||||
"semver": "^5.3.0",
|
||||
"tar": "^4.4.2"
|
||||
}
|
||||
},
|
||||
"node-xlsx": {
|
||||
"version": "0.15.0",
|
||||
"resolved": "https://registry.npmjs.org/node-xlsx/-/node-xlsx-0.15.0.tgz",
|
||||
@@ -679,6 +1026,54 @@
|
||||
"nodemailer-fetch": "1.6.0"
|
||||
}
|
||||
},
|
||||
"nopt": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
|
||||
"integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
|
||||
"requires": {
|
||||
"abbrev": "1",
|
||||
"osenv": "^0.1.4"
|
||||
}
|
||||
},
|
||||
"npm-bundled": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
|
||||
"integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
|
||||
"requires": {
|
||||
"npm-normalize-package-bin": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"npm-normalize-package-bin": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
|
||||
"integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="
|
||||
},
|
||||
"npm-packlist": {
|
||||
"version": "1.4.8",
|
||||
"resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz",
|
||||
"integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==",
|
||||
"requires": {
|
||||
"ignore-walk": "^3.0.1",
|
||||
"npm-bundled": "^1.0.1",
|
||||
"npm-normalize-package-bin": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"npmlog": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
|
||||
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
|
||||
"requires": {
|
||||
"are-we-there-yet": "~1.1.2",
|
||||
"console-control-strings": "~1.1.0",
|
||||
"gauge": "~2.7.3",
|
||||
"set-blocking": "~2.0.0"
|
||||
}
|
||||
},
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
||||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||
@@ -700,6 +1095,25 @@
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"os-homedir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
|
||||
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
|
||||
},
|
||||
"os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
|
||||
},
|
||||
"osenv": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
|
||||
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
|
||||
"requires": {
|
||||
"os-homedir": "^1.0.0",
|
||||
"os-tmpdir": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"pako": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
||||
@@ -760,6 +1174,17 @@
|
||||
"unpipe": "1.0.0"
|
||||
}
|
||||
},
|
||||
"rc": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
|
||||
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
|
||||
"requires": {
|
||||
"deep-extend": "^0.6.0",
|
||||
"ini": "~1.3.0",
|
||||
"minimist": "^1.2.0",
|
||||
"strip-json-comments": "~2.0.1"
|
||||
}
|
||||
},
|
||||
"read-excel-file": {
|
||||
"version": "4.0.7",
|
||||
"resolved": "https://registry.npmjs.org/read-excel-file/-/read-excel-file-4.0.7.tgz",
|
||||
@@ -803,6 +1228,16 @@
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
|
||||
},
|
||||
"send": {
|
||||
"version": "0.17.1",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
|
||||
@@ -850,6 +1285,11 @@
|
||||
"send": "0.17.1"
|
||||
}
|
||||
},
|
||||
"set-blocking": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
||||
},
|
||||
"setimmediate": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||
@@ -860,6 +1300,11 @@
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
|
||||
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
||||
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
|
||||
},
|
||||
"sqlstring": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
|
||||
@@ -883,6 +1328,16 @@
|
||||
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
|
||||
"integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
"strip-ansi": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
@@ -891,6 +1346,33 @@
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"strip-json-comments": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
||||
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
|
||||
},
|
||||
"tar": {
|
||||
"version": "4.4.13",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
|
||||
"integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
|
||||
"requires": {
|
||||
"chownr": "^1.1.1",
|
||||
"fs-minipass": "^1.2.5",
|
||||
"minipass": "^2.8.6",
|
||||
"minizlib": "^1.2.1",
|
||||
"mkdirp": "^0.5.0",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.3"
|
||||
}
|
||||
},
|
||||
"toidentifier": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
||||
@@ -910,6 +1392,11 @@
|
||||
"mime-types": "~2.1.24"
|
||||
}
|
||||
},
|
||||
"typedarray": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
|
||||
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
|
||||
},
|
||||
"unpipe": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
@@ -946,6 +1433,14 @@
|
||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
||||
},
|
||||
"wide-align": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
||||
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
|
||||
"requires": {
|
||||
"string-width": "^1.0.2 || 2"
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
@@ -974,6 +1469,16 @@
|
||||
"version": "0.0.27",
|
||||
"resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz",
|
||||
"integrity": "sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ=="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
||||
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,10 +13,14 @@
|
||||
"author": "George",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"bcrypt": "^5.0.0",
|
||||
"connect-busboy": "0.0.2",
|
||||
"cors": "^2.8.5",
|
||||
"dotenv": "^8.2.0",
|
||||
"express": "^4.17.1",
|
||||
"express-fileupload": "^1.2.0",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"multer": "^1.4.2",
|
||||
"mysql": "^2.18.1",
|
||||
"node-xlsx": "^0.15.0",
|
||||
"nodemailer": "^6.4.13",
|
||||
|
||||
@@ -0,0 +1,233 @@
|
||||
const connection = require('../conf/connection.js');;
|
||||
const express = require('express');
|
||||
const fileUpload = require('express-fileupload');
|
||||
var path = require('path');
|
||||
const fs = require("fs");
|
||||
var app = express()
|
||||
app.use(fileUpload());
|
||||
|
||||
function query(consulta) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
connection.query(`${consulta}`, (error, results, files) => {
|
||||
if (error) reject(error);
|
||||
resolve(results);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function corregir(cad){
|
||||
var recor = String.fromCharCode(13);
|
||||
cad = cad.split(recor);
|
||||
let nuevocad="";
|
||||
for(let i=0; i<cad.length; i++){
|
||||
if(i!==0 && cad[i]!=="\n" )
|
||||
nuevocad = nuevocad + cad[i];
|
||||
else
|
||||
if(cad[i]!== "\n")
|
||||
nuevocad = cad[i]
|
||||
|
||||
}
|
||||
return nuevocad;
|
||||
}
|
||||
|
||||
app.post('/actualizarLibro', async(req, res) => {
|
||||
let data = req.body;
|
||||
if(req.body.type==='addLibro'){
|
||||
if(req.body.seccion === 'datos'){
|
||||
console.log('entro a datos', req.body);
|
||||
try{
|
||||
let titulo = corregir(data.titulo);
|
||||
let autor = corregir(data.autor);
|
||||
let categoria = data.categoria;
|
||||
let paginas = data.paginas;
|
||||
let isbn = data.isbn;
|
||||
let precio = data.precio;
|
||||
let edicion = corregir(data.edicion);
|
||||
let year = data.year;
|
||||
let descripcion = corregir(data.descripcion);
|
||||
let version = data.version;
|
||||
let sqlInsertString = `INSERT INTO Libro values ( null, '${isbn}' , '${titulo}', '${categoria}', '${autor}', ${paginas}, '${edicion}', '${precio}', '${version}', '${descripcion}', ${year}); `;
|
||||
let idLibro = null;
|
||||
await query(sqlInsertString);
|
||||
let sqlString = `SELECT LAST_INSERT_ID() as idLibro;`;
|
||||
let sqlAnswer = await query(sqlString);
|
||||
idLibro = sqlAnswer[0].idLibro;
|
||||
res.status(200).json({error: false, msj: 'Datos guardados', value: true, idLibro: idLibro});
|
||||
return;
|
||||
}
|
||||
catch (error){
|
||||
console.log(error);
|
||||
res.status(400).json({error: true, mensaje: 'Ocurrio un error al guardar en la BD', descripcion: error, value: false});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (req.body.seccion === 'imagen'){
|
||||
console.log('entro a imagen', req.body);
|
||||
if (req.files === null || req.files.imagen===null)
|
||||
{
|
||||
res.status(400).json({error: true, msj: `No se pudo cargar los archivos de imagen y pdf`, value: false});
|
||||
return;
|
||||
}
|
||||
try{
|
||||
let idLibro = req.body.idLibro;
|
||||
let imagen = req.files.imagen;
|
||||
let stringUpdate = `INSERT INTO Imagen values (null, ${idLibro}, '${imagen.name}' )`;
|
||||
await query(stringUpdate);
|
||||
imagen.mv( path.join('.', `/routes/imagenLibro/${imagen.name}`), function(err) {
|
||||
if (err) return res.status(400).json({ error: true, msj: "Error al guardar la imagen del libro", value: false });
|
||||
});
|
||||
res.status(200).json({error: false, msj: 'Se agrego con exito el libro', value: true});
|
||||
return;
|
||||
}
|
||||
catch (error){
|
||||
console.log(error);
|
||||
res.status(400).json({error: true, mensaje: 'Ocurrio un error al guardar en la BD', descripcion: error, value: false});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(req.body.seccion === 'pdf'){
|
||||
console.log('entro a pdf', req.body);
|
||||
if (req.files === null || req.files.pdf===null)
|
||||
{
|
||||
res.status(400).send(`No se pudo cargar los archivos de imagen y pdf`);
|
||||
return;
|
||||
}
|
||||
try{
|
||||
let idLibro = req.body.idLibro;
|
||||
let pdf = req.files.pdf;
|
||||
stringUpdate = `INSERT INTO Visualizacion values (null, ${idLibro}, '${pdf.name}' );`;
|
||||
await query(stringUpdate);
|
||||
pdf.mv( path.join('.', `/routes/pdf/${pdf.name}`), function(err) {
|
||||
if (err) return res.status(400).json({ error: true, msj: "Error al guardar el pdf del libro", value: false });
|
||||
});
|
||||
res.status(200).json({error: false, msj: 'Se agrego con exito el libro', value: true});
|
||||
return;
|
||||
}
|
||||
catch (error){
|
||||
console.log(error);
|
||||
res.status(400).json({error: true, mensaje: 'Ocurrio un error al guardar en la BD', descripcion: error, value: false});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
res.status(200).json({error: false, msj: 'termino'});
|
||||
return;
|
||||
}
|
||||
else{
|
||||
console.log('entro a actulizar: ');
|
||||
console.log('archivos', req.files);
|
||||
console.log('datos', req.body)
|
||||
|
||||
if(typeof(data.idLibro) === 'undefined'){
|
||||
res.status(400).json({error: true, msj: 'Falta el Id del libro como parametro'});
|
||||
return;
|
||||
}
|
||||
try{
|
||||
let stringUpdate = `Update Libro set `;
|
||||
let con=0;
|
||||
if ( typeof(data.titulo) !== 'undefined'){
|
||||
stringUpdate += `titulo = '${data.titulo}'`;
|
||||
con++;
|
||||
}
|
||||
if ( typeof(data.autor) !== 'undefined'){
|
||||
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
|
||||
stringUpdate += ` autor = '${data.autor}'`;
|
||||
con++;
|
||||
}
|
||||
if ( typeof(data.categoria) !== 'undefined'){
|
||||
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
|
||||
stringUpdate += ` categoria = '${data.categoria}'`;
|
||||
con++;
|
||||
}
|
||||
if ( typeof(data.paginas) !== 'undefined'){
|
||||
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
|
||||
stringUpdate += ` paginas = '${data.paginas}'`;
|
||||
con++;
|
||||
}
|
||||
if ( typeof(data.isbn) !== 'undefined'){
|
||||
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
|
||||
stringUpdate += ` isbn = '${data.isbn}'`;
|
||||
con++;
|
||||
}
|
||||
if ( typeof(data.precio) !== 'undefined'){
|
||||
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
|
||||
stringUpdate += ` precio = '${data.precio}'`;
|
||||
con++;
|
||||
}
|
||||
if ( typeof(data.edicion) !== 'undefined'){
|
||||
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
|
||||
stringUpdate += ` impresion = '${data.edicion}'`;
|
||||
con++;
|
||||
}
|
||||
if ( typeof(data.year) !== 'undefined'){
|
||||
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
|
||||
stringUpdate += ` year = '${data.year}'`;
|
||||
con++;
|
||||
}
|
||||
if ( typeof(data.descripcion) !== 'undefined'){
|
||||
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
|
||||
stringUpdate += ` descripcion = '${data.descripcion}'`;
|
||||
con++;
|
||||
}
|
||||
if ( typeof(data.version) !== 'undefined'){
|
||||
stringUpdate = (con>0) ? `${stringUpdate},`: stringUpdate;
|
||||
stringUpdate += ` version = '${data.version}'`;
|
||||
}
|
||||
|
||||
stringUpdate += ` where idLibro = ${data.idLibro};`;
|
||||
|
||||
try{
|
||||
if(con>0)
|
||||
await query(stringUpdate);
|
||||
}
|
||||
catch (error){
|
||||
console.log(error);
|
||||
res.status(400).json({error: true, msj: 'Error al actualizar en la base de datos '});
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (req.files !== null && req.files.imagen !== undefined) {
|
||||
let imagen = req.files.imagen;
|
||||
console.log(imagen);
|
||||
let stringUpdate =`Update Imagen set ruta = "${imagen.name}" where idLibro = ${data.idLibro};`;
|
||||
console.log(stringUpdate)
|
||||
let answerUpdata = await query(stringUpdate);
|
||||
console.log(answerUpdata);
|
||||
imagen.mv( path.join('.', `/routes/imagenLibro/${imagen.name}`), function(err) {
|
||||
if (err){
|
||||
console.log(err);
|
||||
return res.status(400).json({ error: true, msj: "Error al guardar la imagen del libro" });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (req.files !== null && req.files.pdf !== undefined) {
|
||||
let pdf = req.files.pdf;
|
||||
stringUpdate = `Update Visualizacion set ruta = "${pdf.name}" where idLibro = ${data.idLibro};`;
|
||||
await query(stringUpdate);
|
||||
pdf.mv( path.join('.', `/routes/pdf/${pdf.name}`), function(err) {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
return res.status(400).json({ error: true, msj: "Error al guardar el pdf del libro" });
|
||||
}
|
||||
});
|
||||
}
|
||||
res.status(200).json({error: false, msj: 'Se agrego con exito el libro'});
|
||||
return;
|
||||
}
|
||||
catch(error){
|
||||
console.log(error);
|
||||
res.status(400).json({error: true, msj: 'Sucedio un error al Actualizar el libro', desc: error});
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = app;
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
const express = require('express')
|
||||
var app = express();
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
app.post('/agregarImagenCarrusel', async(req, res) => {
|
||||
console.log(req.body);
|
||||
try{
|
||||
req.pipe(req.busboy);
|
||||
req.busboy.on('file',async function (fieldname, file, filename) {
|
||||
try{
|
||||
let saveTo = path.join('.', `/routes/imagenesCarrusel/${filename}`);
|
||||
file.pipe(fs.createWriteStream(saveTo));
|
||||
}
|
||||
catch(error){
|
||||
console.log(error);res.status(400).json({error: true, msj: `No se pudo guardar la imagen`});
|
||||
return;
|
||||
}
|
||||
});
|
||||
res.status(200).json({error: false, msj: `Se inserto con exito`});
|
||||
return;
|
||||
}
|
||||
catch(error){
|
||||
console.log(`No se pudo guardar la imagen`);
|
||||
res.status(400).json({error: true, msj: `No se pudo cargar el libro`});
|
||||
return;
|
||||
}
|
||||
});
|
||||
module.exports = app
|
||||
@@ -0,0 +1,119 @@
|
||||
|
||||
const connection = require('../conf/connection.js');;
|
||||
const express = require('express');
|
||||
const fileUpload = require('express-fileupload');
|
||||
var path = require('path');
|
||||
const nodemailer = require("nodemailer");
|
||||
const fs = require("fs");
|
||||
const { commit } = require('../conf/connection.js');
|
||||
var app = express()
|
||||
app.use(fileUpload());
|
||||
|
||||
|
||||
function query(consulta) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
connection.query(`${consulta}`, (error, results, files) => {
|
||||
if (error) reject(error);
|
||||
resolve(results);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function corregir(cad){
|
||||
var recor = String.fromCharCode(13);
|
||||
cad = cad.split(recor);
|
||||
let nuevocad="";
|
||||
for(let i=0; i<cad.length; i++){
|
||||
if(i!==0 && cad[i]!=="\n" )
|
||||
nuevocad = nuevocad + cad[i];
|
||||
else
|
||||
if(cad[i]!== "\n")
|
||||
nuevocad = cad[i]
|
||||
|
||||
}
|
||||
return nuevocad;
|
||||
}
|
||||
|
||||
app.post('/agregarLibro', async(req, res) => {
|
||||
console.log('archivos: ',req.files);
|
||||
// console.log(req.body);
|
||||
let data = req.body;
|
||||
|
||||
if (req.files===null)
|
||||
{
|
||||
res.status(400).json({error: true, msj: `No se pudo cargar los archivos de imagen y pdf`});
|
||||
return;
|
||||
}
|
||||
if (req.files.imagen===null)
|
||||
{
|
||||
res.status(400).json({error: true, msj: `No se pudo cargar el archivo de la imagen`});
|
||||
return;
|
||||
}
|
||||
if (req.files.pdf===null)
|
||||
{
|
||||
res.status(400).json({error: true, msj: `No se pudo cargar el archivo del pdf`});
|
||||
return;
|
||||
}
|
||||
try{
|
||||
|
||||
let titulo = corregir(data.titulo);
|
||||
let autor = corregir(data.autor);
|
||||
let categoria = data.categoria;
|
||||
let paginas = data.paginas;
|
||||
let isbn = data.isbn;
|
||||
let precio = data.precio;
|
||||
let edicion = corregir(data.edicion);
|
||||
let year = data.year;
|
||||
let descripcion = corregir(data.descripcion);
|
||||
let version = data.version;
|
||||
let sqlInsertString = `INSERT INTO Libro values ( null, '${isbn}' , '${titulo}', '${categoria}', '${autor}', ${paginas}, '${edicion}', '${precio}', '${version}', '${descripcion}', ${year}); `;
|
||||
let idLibro = null;
|
||||
try{
|
||||
|
||||
await query(sqlInsertString);
|
||||
let sqlString = `SELECT LAST_INSERT_ID() as idLibro;`;
|
||||
let sqlAnswer = await query(sqlString);
|
||||
idLibro = sqlAnswer[0].idLibro;
|
||||
}
|
||||
catch (error){
|
||||
console.log(error);
|
||||
res.status(400).json({error: true, mensaje: 'Ocurrio un error al guardar en la BD', descripcion: error});
|
||||
return;
|
||||
}
|
||||
if (req.files!==null && req.files.imagen !== null) {
|
||||
let imagen = req.files.imagen;
|
||||
console.log(imagen);
|
||||
let stringUpdate = `INSERT INTO Imagen values (null, ${idLibro}, '${imagen.name}' )`;
|
||||
console.log(stringUpdate)
|
||||
await query(stringUpdate);
|
||||
imagen.mv( path.join('.', `/routes/imagenLibro/${imagen.name}`), function(err) {
|
||||
if (err) return res.status(400).json({ error: true, msj: "Error al guardar la imagen del libro" });
|
||||
});
|
||||
}
|
||||
|
||||
if (req.files!==null && req.files.pdf !== null) {
|
||||
let pdf = req.files.pdf;
|
||||
stringUpdate = `INSERT INTO Visualizacion values (null, ${idLibro}, '${pdf.name}' );`;
|
||||
await query(stringUpdate);
|
||||
pdf.mv( path.join('.', `/routes/pdf/${pdf.name}`), function(err) {
|
||||
if (err) return res.status(400).json({ error: true, msj: "Error al guardar el pdf del libro" });
|
||||
});
|
||||
res.status(200).json({error: false, msj: 'Se agrego con exito el libro'});
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (error){
|
||||
console.log(error);
|
||||
res.status(400).json({error: true, msj: `No se pudo agregar el libro`, desc: error});
|
||||
console.log(`Ocurrio un error al insertar en la base de datos msj: ${error}`);
|
||||
return;
|
||||
}
|
||||
res.status(200).json({error: false, msj: 'Se agrego con exito el libro'});
|
||||
return;
|
||||
});
|
||||
|
||||
module.exports = app;
|
||||
|
||||
|
||||
|
||||
@@ -36,8 +36,6 @@ function corregir(cad){
|
||||
|
||||
}
|
||||
return nuevocad;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
const express = require('express');
|
||||
const jtw = require('jsonwebtoken');
|
||||
const { beginTransaction } = require('../conf/connection');
|
||||
|
||||
var app = express()
|
||||
|
||||
|
||||
function verifyToken(req, res, next){
|
||||
console.log(JSON.stringify(req.headers));
|
||||
const bearerHeader = req.headers['authorization'];
|
||||
console.log(bearerHeader);
|
||||
if(typeof bearerHeader !== 'undefined'){
|
||||
const bearerToken = bearerHeader.split(" ")[1];
|
||||
req.token = bearerToken;
|
||||
next();
|
||||
}
|
||||
else{
|
||||
res.sendStatus(403);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
app.post('/checkToken', verifyToken ,(req, res) => {
|
||||
console.log(req.body);
|
||||
jtw.verify(req.body.token, 'key',{expiresIn: '1h'}, (error, authData)=>{
|
||||
if(error){
|
||||
res.sendStatus(403);
|
||||
}
|
||||
else{
|
||||
res.json({
|
||||
mjs: 'token autenticado',
|
||||
datos: authData
|
||||
});
|
||||
return;
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
module.exports = app
|
||||
@@ -0,0 +1,28 @@
|
||||
const express = require('express')
|
||||
var app = express();
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
app.post('/eliminarImagenCarrusel', async(req, res) => {
|
||||
|
||||
let data = req.body;
|
||||
if( typeof( data.nombre ) === 'undefined' ){
|
||||
res.status(400).json({error: true, msj: 'Falta el nombre de la imagen del carrusel'});
|
||||
return;
|
||||
}
|
||||
console.log(` Este es el nombre: ${data.nombre}`);
|
||||
try{
|
||||
|
||||
let ruta = path.join('.', `/routes/imagenesCarrusel/${data.nombre}`);
|
||||
fs.unlinkSync(ruta);
|
||||
res.status(200).json({error: false, msj: 'Imagen Eliminada con exito'});
|
||||
return;
|
||||
}
|
||||
catch(error){
|
||||
console.log(`Este es el error : ${error}`);
|
||||
res.status(400).json({error: true, msj: 'No se pudo eliminar la imagen', desc: error});
|
||||
return;
|
||||
}
|
||||
|
||||
});
|
||||
module.exports = app
|
||||
@@ -0,0 +1,67 @@
|
||||
|
||||
const connection = require('../conf/connection.js');;
|
||||
const express = require('express');
|
||||
const fileUpload = require('express-fileupload');
|
||||
var path = require('path');
|
||||
const nodemailer = require("nodemailer");
|
||||
const fs = require("fs");
|
||||
const { commit } = require('../conf/connection.js');
|
||||
var app = express()
|
||||
app.use(fileUpload());
|
||||
|
||||
|
||||
function query(consulta) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
connection.query(`${consulta}`, (error, results, files) => {
|
||||
if (error) reject(error);
|
||||
resolve(results);
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
app.post('/eliminarLibro', async(req, res) => {
|
||||
|
||||
let data = req.body;
|
||||
|
||||
try{
|
||||
let sqlSelectImage = `SELECT ruta from Imagen where idLibro = ${data.idLibro};`;
|
||||
let imageName = await query(sqlSelectImage);
|
||||
let sqlSelectVizualizacion= `SELECT ruta from Visualizacion where idLibro = ${data.idLibro};`;
|
||||
let vizualizacionName = await query(sqlSelectVizualizacion);
|
||||
|
||||
let sqlDeleteStrign = `DELETE FROM PdfLibro where idLibro=${data.idLibro};`;
|
||||
await query(sqlDeleteStrign);
|
||||
sqlDeleteStrign = `DELETE FROM Imagen where idLibro=${data.idLibro};`;
|
||||
await query(sqlDeleteStrign);
|
||||
sqlDeleteStrign = `DELETE FROM Visualizacion where idLibro=${data.idLibro};`;
|
||||
await query(sqlDeleteStrign);
|
||||
sqlDeleteStrign = `DELETE FROM Libro where idLibro=${data.idLibro};`;
|
||||
await query(sqlDeleteStrign);
|
||||
let rutaVizualizavcion = path.join('.', `/routes/pdf/${vizualizacionName}`);
|
||||
try{
|
||||
vizualizacionName = vizualizacionName[0].ruta;
|
||||
fs.unlinkSync(rutaVizualizavcion);
|
||||
}
|
||||
catch(error){
|
||||
console.log(error);
|
||||
}
|
||||
let rutaImage = path.join('.', `/routes/imagenLibro/${imageName}`);
|
||||
try{
|
||||
imageName = imageName[0].ruta;
|
||||
fs.unlinkSync(rutaImage);
|
||||
}
|
||||
catch(error){
|
||||
console.log(error);
|
||||
}
|
||||
res.status(200).json({error: false, msj: 'Imagen Eliminada con exito'});
|
||||
return;
|
||||
}
|
||||
catch(error){
|
||||
console.log(`Este es el error : ${error}`);
|
||||
res.status(400).json({error: true, msj: 'No se pudo eliminar la libro', desc: error});
|
||||
return;
|
||||
}
|
||||
|
||||
});
|
||||
module.exports = app
|
||||
+3
-6
@@ -19,12 +19,9 @@ function query(consulta) {
|
||||
app.get('/getLibros', async(req, res) => {
|
||||
|
||||
try{
|
||||
let sqlString = `SELECT idLibro, titulo, categoria, autor FROM Libro;`;
|
||||
console.log(` Esta es la cadena : ${sqlString}`);
|
||||
let respuestaSql = await query(sqlString);
|
||||
|
||||
|
||||
|
||||
let sqlString = `SELECT idLibro, titulo, categoria, autor FROM Libro;`;
|
||||
//console.log(` Esta es la cadena : ${sqlString}`);
|
||||
let respuestaSql = await query(sqlString);
|
||||
res.status(200).json({error:false, msj: 'exito', data: respuestaSql})
|
||||
}
|
||||
catch(error){
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
const connection = require('../conf/connection.js');
|
||||
const express = require('express')
|
||||
var app = express();
|
||||
|
||||
|
||||
|
||||
|
||||
function query(consulta) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
connection.query(`${consulta}`, (error, results, files) => {
|
||||
if (error) reject(error);
|
||||
resolve(results);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
app.get('/getTodosLibros', async(req, res) => {
|
||||
|
||||
try{
|
||||
let sqlString = `SELECT * FROM Libro ORDER BY year DESC;`;
|
||||
let respuestaSql = await query(sqlString);
|
||||
res.status(200).json({error:false, msj: 'exito', data: respuestaSql})
|
||||
}
|
||||
catch(error){
|
||||
res.status(400).json({error: true, msj: 'No se pudo obtener los libros similares', desc: error});
|
||||
return;
|
||||
}
|
||||
|
||||
});
|
||||
module.exports = app;
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 153 KiB |
+8
-1
@@ -12,5 +12,12 @@ app.use(require('./getLibros'));
|
||||
app.use(require('./temaLibro'));
|
||||
app.use(require('./getPDF'));
|
||||
app.use(require('./email'));
|
||||
|
||||
app.use(require('./eliminarImagenCarrusel'));
|
||||
app.use(require('./agregarImagenCarrusel'));
|
||||
app.use(require('./actualizarLibro'));
|
||||
app.use(require('./getTodosLibros'));
|
||||
app.use(require('./agregarLibro'));
|
||||
app.use(require('./eliminarLibro'));
|
||||
app.use(require('./checkToken'));
|
||||
app.use(require('./loginAdmin'));
|
||||
module.exports = app;
|
||||
@@ -19,27 +19,22 @@ function query(consulta) {
|
||||
|
||||
|
||||
app.get('/libroImagen', async(req, res) => {
|
||||
console.log(`Entro a imagenes`);
|
||||
|
||||
let data = req.query;
|
||||
if( typeof( data.idLibro ) === 'undefined' ){
|
||||
res.status(400).json({error: true, msj: 'Falta el ID del libro como parametro'});
|
||||
return;
|
||||
}
|
||||
console.log(` Este es el id: ${data.idLibro}`);
|
||||
//console.log(` Este es el id: ${data.idLibro}`);
|
||||
try{
|
||||
let sqlString = `SELECT * from Imagen where idLibro=${data.idLibro}`;
|
||||
console.log(` Esta es la cadena : ${sqlString}`);
|
||||
//console.log(` Esta es la cadena : ${sqlString}`);
|
||||
let respuestaSql = await query(sqlString);
|
||||
if(respuestaSql.length === 0 ){
|
||||
console.log(`No se encontro el libro msj:`);
|
||||
//console.log(`No se encontro el libro msj:`);
|
||||
res.status(400).json({error: true, msj: 'No se encontro el libro solicitado'});
|
||||
return;
|
||||
}
|
||||
respuestaSql = respuestaSql[0];
|
||||
console.log(` esta es la respuesta ${respuestaSql}`);
|
||||
for(let key in respuestaSql)
|
||||
console.log(` __ ${key} : ${respuestaSql[key]}`);
|
||||
let img = fs.readFileSync(path.join('.', `/routes/imagenLibro/${respuestaSql.ruta}`));
|
||||
res.writeHead(200, {'Content-Type': 'image/jpg' });
|
||||
res.end(img, 'binary')
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
const connection = require('../conf/connection.js');
|
||||
const express = require('express');
|
||||
const bcrypt = require('bcrypt');
|
||||
const jtw = require('jsonwebtoken');
|
||||
|
||||
var app = express()
|
||||
|
||||
function query(consulta) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
connection.query(`${consulta}`, (error, results, files) => {
|
||||
if (error) reject(error);
|
||||
resolve(results);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
function depurado(cadena) {
|
||||
if (cadena != null) {
|
||||
cadena = cadena.replace(/'/g, "''");
|
||||
cadena = cadena.replace(/;/g, "m");
|
||||
return cadena;
|
||||
|
||||
} else
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
app.post('/loginAdmin', async(req, res) => {
|
||||
if(typeof req.body.usuario === 'indefined' || typeof req.body.password === 'undefined'){
|
||||
res.status(400).json({ error: false, msj: "Falta usuario o contraseña como parametros" });
|
||||
return;
|
||||
}
|
||||
console.log(req.body);
|
||||
try {
|
||||
let data = req.body;
|
||||
let usuario = depurado(data.usuario);
|
||||
let cad = `select * from Admin where usuario='${usuario}'`;
|
||||
let respuesta = query(cad);
|
||||
let pass = data.password;
|
||||
let n_pasword = await bcrypt.hash(pass, 10);
|
||||
console.log(n_pasword);
|
||||
respuesta.then(async response => {
|
||||
console.log(response, response.length);
|
||||
if (response.length == 0) {
|
||||
res.status(400).json({ error: false, msj: "Usuario o contraseña invalidos" });
|
||||
return;
|
||||
} else {
|
||||
let ban = bcrypt.compareSync(data.password, response[0].password);
|
||||
if (ban == true) {
|
||||
|
||||
const usuario = {
|
||||
idAdmin : response[0].idAdmin,
|
||||
user: response[0].nombre,
|
||||
}
|
||||
jtw.sign({user: usuario}, 'key', (err, token)=>{
|
||||
if(err){
|
||||
res.status(400).json({ error: false, msj: "No se pudo auntentificar" });
|
||||
return;
|
||||
}
|
||||
|
||||
res.status(200).json({ error: false, msj: "bienvenido", token, entro: true });
|
||||
return;
|
||||
})
|
||||
|
||||
} else {
|
||||
res.status(400).json({ error: false, msj: "Usuario o contraseña invalidos" });
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}).catch(err => {
|
||||
res.status(400).json({ error: true, msj: err });
|
||||
return;
|
||||
})
|
||||
|
||||
} catch (err) {
|
||||
console.log("error al autentificar: ", err);
|
||||
res.status(400).json({ error: true, msj: err });
|
||||
return;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
module.exports = app
|
||||
+9
-2
@@ -48,8 +48,8 @@ CREATE TABLE `Compra` (
|
||||
|
||||
CREATE TABLE `Admin` (
|
||||
`idAdmin` integer PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
||||
`usuario` varchar(100),
|
||||
`password` varchar(350)
|
||||
`usuario` varchar(100),
|
||||
`password` varchar(350)
|
||||
);
|
||||
|
||||
ALTER TABLE `Imagen` ADD FOREIGN KEY (`idLibro`) REFERENCES `Libro` (`idLibro`);
|
||||
@@ -61,3 +61,10 @@ ALTER TABLE `Compra` ADD FOREIGN KEY (`idLibro`) REFERENCES `Libro` (`idLibro`);
|
||||
ALTER TABLE `Video` ADD FOREIGN KEY (`idLibro`) REFERENCES `Libro` (`idLibro`);
|
||||
|
||||
ALTER TABLE `PdfLibro` ADD FOREIGN KEY (`idLibro`) REFERENCES `Libro` (`idLibro`);
|
||||
|
||||
|
||||
ALTER TABLE 'Libro' ADD nombre varchar(100);
|
||||
|
||||
-- "password": "p0rtal4dmin2021"
|
||||
INSERT INTO Admin values (null, 'PotalEditAdmin', '$2b$10$0GeS8v9lUwhOHOS/2MoBIuJusNdM1Zi7SD.asnQrsyWA9oOTd9.YK', 'Administrador');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user