Compare commits

9 Commits

Author SHA1 Message Date
Marcorv6 ea09b22128 investigador routes, nuevo controller 2021-05-02 22:51:04 -05:00
Marcorv6 e01001a4a9 login listo, data fake 2021-04-30 22:35:45 -05:00
Marcorv6 c1631712cb bcrypt 2021-04-27 17:23:10 -05:00
Marcorv6 471f0ba8be login 2021-04-27 17:14:42 -05:00
Marcorv6 e6f149aaf9 controller folder 2021-04-22 19:38:11 -05:00
Marcorv6 56f55fc51e snakecase 2021-04-22 17:52:13 -05:00
Marcorv6 92645c72ec config base 2021-04-22 17:42:16 -05:00
Marcorv6 4642f49c65 test base config 2021-04-22 01:43:08 -05:00
Marcorv6 b231fae0e2 tablas 2021-04-21 00:54:45 -05:00
26 changed files with 1006 additions and 72 deletions
+378 -19
View File
@@ -1,9 +1,43 @@
{
"name": "api",
"name": "directorio_back",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@mapbox/node-pre-gyp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.4.tgz",
"integrity": "sha512-M669Qo4nRT7iDmQEjQYC7RU8Z6dpz9UmSbkJ1OFEja3uevCdLKh7IZZki7L1TZj02kRyl82snXFY8QqkyfowrQ==",
"requires": {
"detect-libc": "^1.0.3",
"https-proxy-agent": "^5.0.0",
"make-dir": "^3.1.0",
"node-fetch": "^2.6.1",
"nopt": "^5.0.0",
"npmlog": "^4.1.2",
"rimraf": "^3.0.2",
"semver": "^7.3.4",
"tar": "^6.1.0"
},
"dependencies": {
"nopt": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
"integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
"requires": {
"abbrev": "1"
}
},
"semver": {
"version": "7.3.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
"integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
"requires": {
"lru-cache": "^6.0.0"
}
}
}
},
"@sindresorhus/is": {
"version": "0.14.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
@@ -32,8 +66,7 @@
"abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"accepts": {
"version": "1.3.7",
@@ -44,6 +77,29 @@
"negotiator": "0.6.2"
}
},
"agent-base": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"requires": {
"debug": "4"
},
"dependencies": {
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"ansi-align": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
@@ -96,6 +152,20 @@
"picomatch": "^2.0.4"
}
},
"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",
@@ -104,8 +174,16 @@
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"bcrypt": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz",
"integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==",
"requires": {
"@mapbox/node-pre-gyp": "^1.0.0",
"node-addon-api": "^3.1.0"
}
},
"binary-extensions": {
"version": "2.2.0",
@@ -150,7 +228,6 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -256,6 +333,11 @@
"readdirp": "~3.5.0"
}
},
"chownr": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
},
"ci-info": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
@@ -277,6 +359,11 @@
"mimic-response": "^1.0.0"
}
},
"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="
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -300,8 +387,7 @@
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"configstore": {
"version": "5.0.1",
@@ -317,6 +403,11 @@
"xdg-basedir": "^4.0.0"
}
},
"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",
@@ -340,6 +431,11 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
@@ -384,6 +480,11 @@
"integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
"dev": true
},
"delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"denque": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
@@ -399,6 +500,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="
},
"dot-prop": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
@@ -543,6 +649,19 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"fs-minipass": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
"integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"requires": {
"minipass": "^3.0.0"
}
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@@ -550,6 +669,54 @@
"dev": true,
"optional": true
},
"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"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"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"
}
},
"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"
}
},
"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"
}
}
}
},
"get-stream": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -559,6 +726,19 @@
"pump": "^3.0.0"
}
},
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
@@ -608,6 +788,11 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"has-yarn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
@@ -632,6 +817,30 @@
"toidentifier": "1.0.0"
}
},
"https-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
"requires": {
"agent-base": "6",
"debug": "4"
},
"dependencies": {
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -663,6 +872,15 @@
"resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz",
"integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY="
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
@@ -706,8 +924,7 @@
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"dev": true
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"is-glob": {
"version": "4.0.1",
@@ -764,6 +981,11 @@
"integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
"dev": true
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"json-buffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
@@ -894,7 +1116,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"requires": {
"semver": "^6.0.0"
},
@@ -902,8 +1123,7 @@
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
}
}
},
@@ -974,7 +1194,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -985,6 +1204,28 @@
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
},
"minipass": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
"integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
"requires": {
"yallist": "^4.0.0"
}
},
"minizlib": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
"integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"requires": {
"minipass": "^3.0.0",
"yallist": "^4.0.0"
}
},
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
},
"moment": {
"version": "2.29.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
@@ -1008,6 +1249,16 @@
"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-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
},
"nodemon": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz",
@@ -1064,6 +1315,22 @@
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
"dev": true
},
"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",
@@ -1081,7 +1348,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
"wrappy": "1"
}
@@ -1117,6 +1383,11 @@
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
@@ -1142,6 +1413,11 @@
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
"dev": true
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"proxy-addr": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
@@ -1209,6 +1485,20 @@
"strip-json-comments": "~2.0.1"
}
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"readdirp": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
@@ -1253,6 +1543,14 @@
"any-promise": "^1.3.0"
}
},
"rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"requires": {
"glob": "^7.1.3"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -1381,6 +1679,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="
},
"setprototypeof": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
@@ -1389,8 +1692,7 @@
"signal-exit": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
"dev": true
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
},
"statuses": {
"version": "1.5.0",
@@ -1437,6 +1739,14 @@
}
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
@@ -1461,6 +1771,19 @@
"has-flag": "^3.0.0"
}
},
"tar": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
"integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
"requires": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
"minipass": "^3.0.0",
"minizlib": "^2.1.1",
"mkdirp": "^1.0.3",
"yallist": "^4.0.0"
}
},
"term-size": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
@@ -1578,6 +1901,11 @@
"prepend-http": "^2.0.0"
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
@@ -1598,6 +1926,38 @@
"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"
},
"dependencies": {
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
},
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"requires": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
}
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"requires": {
"ansi-regex": "^3.0.0"
}
}
}
},
"widest-line": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
@@ -1618,8 +1978,7 @@
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write-file-atomic": {
"version": "3.0.3",
+1
View File
@@ -17,6 +17,7 @@
"author": "",
"license": "ISC",
"dependencies": {
"bcrypt": "^5.0.1",
"body-parser": "^1.19.0",
"colors": "^1.4.0",
"cors": "^2.8.5",
View File
View File
+29
View File
@@ -0,0 +1,29 @@
const { comparar } = require('../../helper/encriptar');
const validar = require('../../helper/validar');
const { crearToken } = require('../../middleware/autentificacion');
const Usuario = require('../../db/tablas/Usuario');
const login = async (body) => {
const usuario = validar.validar(body.usuario, 'El usuario', 60);
const password = validar.validarAlfanumerico(
body.password,
'La contraseña',
20
);
return Usuario.findOne({
where: { usuario }
}).then((res) => {
if (!res) throw new Error('No existe este usuario.');
if (comparar(password, res.password)) {
delete res.dataValues.password;
return {
Usuario: res,
token: crearToken(res.idUsuario),
};
}
throw new Error('La contraseña es incorrecta');
});
};
module.exports = login;
View File
+34
View File
@@ -0,0 +1,34 @@
require('../config/config');
const colors = require('colors');
// const Adscripcion = require('./tablas/Adscripcion');
// const Categoria = require('./tablas/Categoria');
// const Contacto = require('./tablas/Contacto');
// const DatosAcademicos = require('./tablas/DatosAcademicos');
// const Edificio = require('./tablas/Edificio');
// const Investigador = require('./tablas/Investigador');
// const TipoContacto = require('./tablas/TipoContacto');
// const TipoDatosAcademicos = require('./tablas/TipoDatosAcademicos');
const {encriptar} = require('../helper/encriptar');
const Usuario = require('./tablas/Usuario');
const dataFake = async () => {
let usuario = ["Marco", "Lemu", "Josuhe"];
for(let i=0; i < usuario.length; i++){
await Usuario.create({
usuario: usuario[i],
password: encriptar("123")
})
}
}
const exe = async () => {
await dataFake();
console.log(
'\nSe ha instalado exitosamente la data fake.\n'.underline.bold.green
);
process.exit();
};
exe();
+239 -5
View File
@@ -1,32 +1,266 @@
require('../config/config');
const colors = require('colors');
const Adscripcion = require('./tablas/Adscripcion');
const Categoria = require('./tablas/Categoria');
const Contacto = require('./tablas/Contacto');
const DatosAcademicos = require('./tablas/DatosAcademicos');
const Edificio = require('./tablas/Edificio');
const Investigador = require('./tablas/Investigador');
const TipoContacto = require('./tablas/TipoContacto');
const TipoDatosAcademicos = require('./tablas/TipoDatosAcademicos');
// const encriptar = require('../helper/encriptar');
const TipoUsuario = require('./tablas/TipoUsuario');
const Usuario = require('./tablas/Usuario');
const drop = async () => {
console.log('\nPaso 1) Desinstalando la db.'.bold.blue);
await DatosAcademicos.drop();
console.log('La tabla DatosAcademicos se desinstalo correctamente.'.magenta);
await Contacto.drop();
console.log('La tabla Contacto se desinstalo correctamente.'.magenta);
await Investigador.drop();
console.log('La tabla Investigador se desinstalo correctamente.'.magenta);
await Usuario.drop();
console.log('La tabla Usuario se desinstalo correctamente.'.magenta);
await TipoUsuario.drop();
console.log('La tabla TipoUsuario se desinstalo correctamente.'.magenta);
await TipoDatosAcademicos.drop();
console.log('La tabla TipoDatosAcademicos se desinstalo correctamente.'.magenta);
await TipoContacto.drop();
console.log('La tabla TipoContacto se desinstalo correctamente.'.magenta);
await Categoria.drop();
console.log('La tabla Categoria se desinstalo correctamente.'.magenta);
await Edificio.drop();
console.log('La tabla Edificio se desinstalo correctamente.'.magenta);
await Adscripcion.drop();
console.log('La tabla Adscripcion se desinstalo correctamente.'.magenta);
};
const sync = async () => {
console.log('\nPaso 2) Instalando la db.'.bold.blue);
await TipoUsuario.sync();
console.log('La tabla TipoUsuario se instalo correctamente.'.magenta);
await Categoria.sync();
console.log('La tabla Categoria se instalo correctamente.'.magenta);
await Edificio.sync();
console.log('La tabla Edificio se instalo correctamente.'.magenta);
await Adscripcion.sync();
console.log('La tabla Adscripcion se instalo correctamente.'.magenta);
await TipoContacto.sync();
console.log('La tabla TipoContacto se instalo correctamente.'.magenta);
await TipoDatosAcademicos.sync();
console.log('La tabla TipoDatosAcademicos se instalo correctamente.'.magenta);
await Usuario.sync();
console.log('La tabla Usuario se instalo correctamente.'.magenta);
await Investigador.sync();
console.log('La tabla Investigador se instalo correctamente.'.magenta);
await Contacto.sync();
console.log('La tabla Contacto se instalo correctamente.'.magenta);
await DatosAcademicos.sync();
console.log('La tabla DatosAcademicos se instalo correctamente.'.magenta);
};
const dataTipoDatosAcademicos = async () => {
const data = ['Carrera', 'Maestria', 'Doctorado', 'LineaInv', 'Proyecto'];
console.log('\nPaso 3)Insertando data TipoDatosAcademicos.'.bold.blue);
for (let i = 0; i < data.length; i++) {
await TipoDatosAcademicos.create({
TipoDatosAcademicos: data[i],
});
console.log(`Se agrego el TipoDatosAcademicos ${data[i]}.`.magenta);
}
};
const dataCategoria = async () => {
const data = [
'Investigador de Carrera Asociado Ordinario Nivel "C" de Tiempo Completo Interino',
'Investigador de Carrera Titular Ordinario Nivel "A" de Tiempo Completo Definitivo',
'Investigador de Carrera Titular Ordinario Nivel "B" de Tiempo Completo Definitivo',
'Profesor de Carrera Asociado Ordinario Nivel "A" de Medio Tiempo Interino',
'Profesor de Carrera Asociado Ordinario Nivel "A" de Tiempo Completo Interino',
'Profesor de Carrera Asociado Ordinario Nivel "B" de Medio Tiempo Definitivo',
'Profesor de Carrera Asociado Ordinario Nivel "B" de Tiempo Completo Definitivo',
'Profesor de Carrera Asociado Ordinario Nivel "B" de Tiempo Completo Interino',
'Profesor de Carrera Asociado Ordinario Nivel "B" Medio Tiempo Interino No Definitivo',
'Profesor de Carrera Asociado Ordinario Nivel "B" Tiempo Completo Interino No Definitivo',
'Profesor de Carrera Asociado Ordinario Nivel "C" de Medio Tiempo Definitivo',
'Profesor de Carrera Asociado Ordinario Nivel "C" de Medio Tiempo Interino',
'Profesor de Carrera Asociado Ordinario Nivel "C" de Tiempo Completo Definitivo',
'Profesor de Carrera Asociado Ordinario Nivel "C" de Tiempo Completo Interino',
'Profesor de Carrera Asociado Ordinario Nivel "C" de Tiempo Completo No Definitivo',
'Profesor de Carrera Asociado Ordinario Nivel "C" Tiempo Completo Interino No Definitivo',
'Profesor de Carrera Titular Ordinario Nivel "A" de Medio Tiempo Definitivo',
'Profesor de Carrera Titular Ordinario Nivel "A" de Tiempo Completo Definitivo',
'Profesor de Carrera Titular Ordinario Nivel "A" de Tiempo Completo Interino',
'Profesor de Carrera Titular Ordinario Nivel "A" Medio Tiempo Interino',
'Profesor de Carrera Titular Ordinario Nivel "B" de Tiempo Completo Definitivo',
'Profesor de Carrera Titular Ordinario Nivel "B" de Tiempo Completo No Definitivo',
'Profesor de Carrera Titular Ordinario Nivel "C" de Medio Tiempo Definitivo',
'Profesor de Carrera Titular Ordinario Nivel "C" de Tiempo Completo Definitivo',
'Profesor de Carrera Titular Ordinario Nivel "C" de Tiempo Completo No Definitivo',
'Técnico Académico Asociado "C" tiempo completo NO Definitivo',
'Técnico Académico Asociado Ordinario Nivel "A" de Medio Tiempo Definitivo',
'Técnico Académico Asociado Ordinario Nivel "A" de Tiempo Completo Definitivo',
'Técnico Académico Asociado Ordinario Nivel "A" de Tiempo Completo Interino',
'Técnico Académico Asociado Ordinario Nivel "B" de Tiempo Completo Definitivo',
'Técnico Académico Asociado Ordinario Nivel "B" de Tiempo Completo Interino',
'Técnico Académico Asociado Ordinario Nivel "C" de Medio Tiempo No Definitivo',
'Técnico Académico Asociado Ordinario Nivel "C" de Tiempo Completo Definitivo',
'Técnico Académico Auxiliar Ordinario Nivel "A" de Medio Tiempo Interino',
'Técnico Académico Auxiliar Ordinario Nivel "B" de Medio Tiempo Definitivo',
'Técnico Académico Auxiliar Ordinario Nivel "B" de Tiempo Completo Interino',
'Técnico Académico Auxiliar Ordinario Nivel "C" Tiempo Completo Interino No Definitivo',
'Técnico Académico Titular Ordinario Nivel "A" de Tiempo Completo Definitivo',
'Técnico Académico Titular Ordinario Nivel "B" de Tiempo Completo Definitivo',
'Técnico Académico Titular Ordinario Nivel "C" de Tiempo Completo Definitivo',
]
console.log('\nPaso 4) Insertando data Categoria.'.bold.blue);
for (let i = 0; i < data.length; i++) {
await Categoria.create({
Categoria: data[i],
});
console.log(`Se agrego la Categoria ${data[i]}.`.magenta);
}
}
const dataEdificio = async () => {
const data = [
'No asignado',
'Campus Juriquilla',
'Centro Cultural Acatlán',
'Centro de Desarrollo Tecnológico',
'Centro de Difusión Cultural',
'Centro de Enseñanza de Idiomas',
'Centro de Información y Documentación',
'Centro Tecnológico para la Educación a Distancia',
'COESI',
'Diseño y Edificación',
'Edificio A-1',
'Edificio A-10',
'Edificio A-11',
'Edificio A-12',
'Edificio A-13',
'Edificio A-14',
'Edificio A-15',
'Edificio A-2',
'Edificio A-3',
'Edificio A-4',
'Edificio A-5',
'Edificio A-6',
'Edificio A-7',
'Edificio A-8',
'Edificio A-9',
'Edificio de Apoyo a la Docencia',
'Edificio de Comunicacion y Disenio',
'Edificio de Extensión Cultural',
'Edificio de Gobierno',
'Edificio de Posgrado',
'Edificio de Servicios Generales',
'Edificio de Talleres de Comunicación y Diseño',
'Edificio del Programa de Investigación',
'Gabinete y Tipografía',
'Laboratorios de Ingeniería Civil',
'Posgrado Laboratorios',
'Seminarios',
'Servicios Académicos',
'Talleres y Laboratorios',
'Unidad de Administración Escolar',
'Unidad de Investigación Multidisciplinaria',
'Unidad de Seminarios, planta alta',
'Unidad de Seminarios, planta baja',
]
console.log('\nPaso 5) Insertando data Edificio.'.bold.blue);
for (let i = 0; i < data.length; i++) {
await Edificio.create({
Edificio: data[i],
});
console.log(`Se agrego el Edificio ${data[i]}.`.magenta);
}
}
const dataAdscripcion = async () => {
const data = [
'Departamento de Español para Extranjeros y Lenguas no Indoeuropeas',
'Departamento de Extensión Cultural',
'Departamento de Francés',
'Departamento de Inglés',
'Departamento de Italiano',
'Departamento de Servicio Social y Bolsa de Trabajo',
'División del Sistema Universidad Abierta y Educación a Distancia',
'Especialización en Costos en la Construcción',
'Especialización en Finanzas Públicas',
'Especialización en Geotecnia',
'Especialización en Sistemas de Calidad',
'Maestría en Docencia para la Educación Media Superior',
'Maestría en Estudios México-Estados Unidos',
'Posgrado en Derecho',
'Posgrado en Economía',
'Programa de Actuaría',
'Programa de Arquitectura',
'Programa de Derecho',
'Programa de Diseño Gráfico',
'Programa de Economía',
'Programa de Humanidades',
'Programa de Ingeniería Civil',
'Programa de la Licenciatura en Enseñanza de Inglés',
'Programa de Matemáticas Aplicadas y Computación',
'Programa de Pedagogía',
'Programa de Periodismo y Comunicación Colectiva',
'Programa de Sociología',
'Programa Político',
'Secretaría de Estudios Profesionales',
'Secretaría de la Dirección',
'Secretaría General',
'Unidad de Investigación Multidisciplinaria',
'Unidad de Servicios Editoriales',
'Unidad de Talleres, Laboratorios y Audiovisuales',
'Unidad del Centro de Información y Documentación',
]
console.log('\nPaso 6) Insertando data Adscripcion.'.bold.blue);
for (let i = 0; i < data.length; i++) {
await Adscripcion.create({
Adscripcion: data[i],
});
console.log(`Se agrego la Adscripcion ${data[i]}.`.magenta);
}
}
const dataTipoContacto = async () => {
const data = ['Correo', 'Telefono'];
console.log('\nPaso 7)Insertando data TipoContacto.'.bold.blue);
for (let i = 0; i < data.length; i++) {
await TipoContacto.create({
TipoContacto: data[i],
});
console.log(`Se agrego el TipoContacto ${data[i]}.`.magenta);
}
};
const exe = async () => {
await drop();
await sync();
await dataTipoDatosAcademicos();
await dataCategoria();
await dataEdificio();
await dataAdscripcion();
await dataTipoContacto();
console.log(
'\nSe ha instalado exitosamente la base de datos.\n'.underline.bold.green
);
@@ -1,27 +1,27 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
class TipoUsuario extends Model {}
TipoUsuario.init(
class Adscripcion extends Model {}
Adscripcion.init(
{
idTipoUsuario: {
idAdscripcion: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
tipoUsuario: {
type: DataTypes.STRING(15),
Adscripcion: {
type: DataTypes.STRING(200),
allowNull: false,
},
},
{
sequelize,
modelName: 'TipoUsuario',
tableName: 'tipo_usuario',
modelName: 'Adscripcion',
tableName: 'adscripcion',
timestamps: false,
}
);
module.exports = TipoUsuario;
module.exports = Adscripcion;
+27
View File
@@ -0,0 +1,27 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
class Categoria extends Model {}
Categoria.init(
{
idCategoria: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
Categoria: {
type: DataTypes.STRING(200),
allowNull: false,
},
},
{
sequelize,
modelName: 'Categoria',
tableName: 'categoria',
timestamps: false,
}
);
module.exports = Categoria;
+49
View File
@@ -0,0 +1,49 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
const Investigador = require('./Investigador');
const TipoContacto = require('./TipoContacto');
class Contacto extends Model {}
Contacto.init(
{
idContacto: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
contacto: {
type: DataTypes.STRING(200),
allowNull: false,
},
mostrar: {
type: DataTypes.BOOLEAN,
allowNull: false,
},
},
{
sequelize,
modelName: 'Contacto',
tableName: 'contacto',
timestamps: false,
}
);
Contacto.belongsTo(TipoContacto, {
foreignKey: {
name: 'idTipoContacto',
type: DataTypes.INTEGER,
allowNull: false,
},
});
Contacto.belongsTo(Investigador, {
foreignKey: {
name: 'idInvestigador',
type: DataTypes.INTEGER,
allowNull: false,
},
});
module.exports = Contacto;
+45
View File
@@ -0,0 +1,45 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
const Investigador = require('./Investigador');
const TipoDatosAcademicos = require('./TipoDatosAcademicos');
class DatosAcademicos extends Model {}
DatosAcademicos.init(
{
idDatosAcademicos: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
datoAcademico: {
type: DataTypes.STRING(200),
allowNull: false,
},
},
{
sequelize,
modelName: 'DatosAcademicos',
tableName: 'datos_academicos',
timestamps: false,
}
);
DatosAcademicos.belongsTo(TipoDatosAcademicos, {
foreignKey: {
name: 'idTipoDatoAcademico',
type: DataTypes.INTEGER,
allowNull: false,
},
});
DatosAcademicos.belongsTo(Investigador, {
foreignKey: {
name: 'idInvestigador',
type: DataTypes.INTEGER,
allowNull: false,
},
});
module.exports = DatosAcademicos;
+27
View File
@@ -0,0 +1,27 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
class Edificio extends Model {}
Edificio.init(
{
idEdificio: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
Edificio: {
type: DataTypes.STRING(100),
allowNull: false,
},
},
{
sequelize,
modelName: 'Edificio',
tableName: 'edificio',
timestamps: false,
}
);
module.exports = Edificio;
+58
View File
@@ -0,0 +1,58 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
const Usuario = require('./Usuario');
class Investigador extends Model {}
Investigador.init(
{
idInvestigador: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
nombre: {
type: DataTypes.STRING(50),
allowNull: false,
},
apellidoP: {
type: DataTypes.STRING(50),
allowNull: false,
},
apellidoM: {
type: DataTypes.STRING(50),
allowNull: false,
},
noTrabajador: {
type: DataTypes.INTEGER,
allowNull: false,
unique: true,
},
RFC: {
type: DataTypes.STRING(70),
allowNull: false,
unique: true,
},
ubicacion: {
type: DataTypes.STRING(200),
allowNull: false,
},
fotografia: {
type: DataTypes.STRING,
allowNull: true,
},
activo: {
type: DataTypes.BOOLEAN,
allowNull: false,
},
},
{
sequelize,
modelName: 'Investigador',
tableName: 'investigador',
timestamps: false,
}
);
module.exports = Investigador;
+27
View File
@@ -0,0 +1,27 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
class TipoContacto extends Model {}
TipoContacto.init(
{
idTipoContacto: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
TipoContacto: {
type: DataTypes.STRING(50),
allowNull: false,
},
},
{
sequelize,
modelName: 'TipoContacto',
tableName: 'tipo_contacto',
timestamps: false,
}
);
module.exports = TipoContacto;
+27
View File
@@ -0,0 +1,27 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
class TipoDatosAcademicos extends Model {}
TipoDatosAcademicos.init(
{
idTipoDatosAcademicos: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
unique: true,
autoIncrement: true,
},
TipoDatosAcademicos: {
type: DataTypes.STRING(15),
allowNull: false,
},
},
{
sequelize,
modelName: 'TipoDatosAcademicos',
tableName: 'tipo_datos_academicos',
timestamps: false,
}
);
module.exports = TipoDatosAcademicos;
+1 -19
View File
@@ -1,6 +1,5 @@
const { DataTypes, Model } = require('sequelize');
const sequelize = require('../../config/sequelize.conf');
const TipoUsuario = require('./TipoUsuario');
class Usuario extends Model {}
Usuario.init(
@@ -21,16 +20,7 @@ Usuario.init(
type: DataTypes.STRING(60),
allowNull: true,
defaultValue: null,
},
nombre: {
type: DataTypes.STRING(70),
allowNull: true,
defaultValue: null,
},
activo: {
type: DataTypes.BOOLEAN,
allowNull: false,
},
}
},
{
sequelize,
@@ -40,12 +30,4 @@ Usuario.init(
}
);
Usuario.belongsTo(TipoUsuario, {
foreignKey: {
name: 'idTipoUsuario',
type: DataTypes.INTEGER,
allowNull: false,
},
});
module.exports = Usuario;
+20 -20
View File
@@ -1,6 +1,6 @@
const moment = require('moment');
const validator = require('validator');
const Servicio = require('../db/tablas/Servicio');
// const Servicio = require('../db/tablas/Servicio');
const noValido = (campo) => {
throw new Error(`${campo} no es valido.`);
@@ -117,24 +117,24 @@ const validarNumero = (numero, length) => {
return numero;
};
const validarPreTermino = (idServicio) => {
return Servicio.findOne({ where: { idServicio } })
.then((res) => {
if (
res.idCuestionarioPrograma &&
res.idCuestionarioAlumno &&
res.cartaTermino &&
res.informeGlobal
)
return Servicio.update({ idStatus: 5 }, { where: { idServicio } });
return false;
})
.then((res) => {
if (res)
return 'Este Servicio Social paso a Termino, espera a que COESI autorice tu liberación.';
return '';
});
};
// const validarPreTermino = (idServicio) => {
// return Servicio.findOne({ where: { idServicio } })
// .then((res) => {
// if (
// res.idCuestionarioPrograma &&
// res.idCuestionarioAlumno &&
// res.cartaTermino &&
// res.informeGlobal
// )
// return Servicio.update({ idStatus: 5 }, { where: { idServicio } });
// return false;
// })
// .then((res) => {
// if (res)
// return 'Este Servicio Social paso a Termino, espera a que COESI autorice tu liberación.';
// return '';
// });
// };
const validarAccesibilidad = (usuariosValidos = [], idTipoUsuario) => {
for (let i = 0; i < usuariosValidos.length; i++)
@@ -172,7 +172,7 @@ module.exports = {
validarNumeroCuenta,
validarFecha,
validarNumero,
validarPreTermino,
// validarPreTermino,
validarAccesibilidad,
isObjectEmpty,
crearDDMMAAAA,
+17
View File
@@ -0,0 +1,17 @@
const express = require('express');
const app = express();
const { verificaToken } = require('../middleware/autentificacion');
const route = '/investigador';
const nuevo = require('../controller/Investigador/nuevo');
app.post(`${route}/nuevo`, verificaToken, (req, res) => {
return nuevo(req.body)
.then((data) => {
res.status(201).json(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
});
module.exports = app;
+17
View File
@@ -0,0 +1,17 @@
const express = require('express');
const app = express();
// const { verificaToken } = require('../middleware/autentificacion');
const route = '/usuario';
const login = require('../controller/Usuario/login');
app.post(`${route}/login`, (req, res) => {
return login(req.body)
.then((data) => {
res.status(200).json(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
});
module.exports = app;
+2 -1
View File
@@ -1,6 +1,7 @@
const express = require("express");
const app = express();
// app.use(require("./"));
app.use(require('./Usuario'));
app.use(require('./Investigador'));
module.exports = app;