From 578c42b959df9862de73d496822cedb3006eacda Mon Sep 17 00:00:00 2001 From: Emilio Date: Wed, 29 Oct 2025 09:47:48 -0600 Subject: [PATCH] Se agrego Cors, nombre a FK, trae responsables --- env_Example | 20 ++ mariadb/aria_log.00000001 | Bin 4915200 -> 4915200 bytes mariadb/aria_log_control | Bin 52 -> 52 bytes package-lock.json | 181 +++++-------------- package.json | 1 + src/app.module.ts | 1 + src/equipo/entities/equipo.entity.ts | 8 + src/equipo/equipo.service.ts | 30 ++- src/main.ts | 7 +- src/movimiento/entities/movimiento.entity.ts | 15 +- src/usuarios/entities/usuario.entity.ts | 2 + 11 files changed, 120 insertions(+), 145 deletions(-) create mode 100644 env_Example diff --git a/env_Example b/env_Example new file mode 100644 index 0000000..6da5a0f --- /dev/null +++ b/env_Example @@ -0,0 +1,20 @@ + + +PORT="" +JWT= + +DB_HOST= +DB_PORT= +DB_USER= +DB_PASS= +DB_NAME= + +#Aqui va la direccion del forntend +CORS_ORIGINS="" + +SINCRONIZAR="true" +AUTOLOAD="false" + +#Aqui va la direccion de la API de Directorio Funcionarios +API_FUNCIONARIOS="" + diff --git a/mariadb/aria_log.00000001 b/mariadb/aria_log.00000001 index 752ddc9abf2f564688657968b7f2afde53235a78..79f42a4fc484ec28f81e3fdf73e82867babeb88e 100644 GIT binary patch delta 1212 zcmYk#O;F4M9LDjrk&4z<@)9%y%3d%(&Q_gQGEK z7~|mBF$z%#(PDew@)jyDv-4b@-^}mwnP=u3kKYc*GtVNzWU-hfWV4hUa>-*E%gHCg z3ZfKHND(V3W)-Vh!&*vM$9gspqm+$oqKwUyvxN$_vW@LjvV)!MqKe(@VK3F}V?PI| z;UI^o0>*PuHEeHXOtvf!iZl zr`u!MO}8FduUoHd&h3e;V#K;nWoO);$u7F}$!@tlmkqeRkcCIB(J!lV8<4fRy_8*c zdnLQ)_F6XNHYm#*v+f&NjoVvUhub^ZRktD8L$~*`l-mbc;kb2&Wp!>z**Uk5vg>Z2 zWL<8bWofsRtYpHvBeGVvQQ3L7G1(2baap(9glyJrQdTx;-6`2=x3uhn+jPcC^POfi z>vQ`e`|I{qRyk$aZ?dy)-({EFe#q{)&B_Mde#)}b*7zl>cKa=Bcbk)4ahsPta9fZi S-Tq{(I5AV76TRDzjQ$5f3a*_1 delta 168 zcmWl|TQWic007VtkwOnD7bSX86e3bol4w=;jHSLtKfxdWpgGC_ diff --git a/mariadb/aria_log_control b/mariadb/aria_log_control index 5e2cdd8439aaeb643e533e8af0d83f2c2d6a45bd..7bfae849cd2242ee1d3e168cd2f45cbd3ff52078 100644 GIT binary patch delta 27 fcmXppnII>2|HZ2WMh1pQ@4Og*6vJN-!N33jf@KF- delta 27 fcmXppnII=-b9Rn7BLl;yr(O&|is2-PU|;|MXb%PU diff --git a/package-lock.json b/package-lock.json index 2e6c0c0..3997374 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,12 +12,12 @@ "@nestjs/common": "^11.1.6", "@nestjs/core": "^11.0.1", "@nestjs/jwt": "^11.0.1", - "@nestjs/jwt": "^11.0.1", "@nestjs/mapped-types": "*", "@nestjs/passport": "^11.0.5", "@nestjs/platform-express": "^11.0.1", "@nestjs/typeorm": "^11.0.0", "argon2": "^0.44.0", + "axios": "^1.13.1", "class-transformer": "0.5.1", "class-validator": "0.14.2", "mysql2": "^3.15.2", @@ -2426,19 +2426,6 @@ "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" } }, - "node_modules/@nestjs/jwt": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@nestjs/jwt/-/jwt-11.0.1.tgz", - "integrity": "sha512-HXSsc7SAnCnjA98TsZqrE7trGtHDnYXWp4Ffy6LwSmck1QvbGYdMzBquXofX5l6tIRpeY4Qidl2Ti2CVG77Pdw==", - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "9.0.10", - "jsonwebtoken": "9.0.2" - }, - "peerDependencies": { - "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" - } - }, "node_modules/@nestjs/mapped-types": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.1.0.tgz", @@ -3023,16 +3010,6 @@ "@types/node": "*" } }, - "node_modules/@types/jsonwebtoken": { - "version": "9.0.10", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz", - "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==", - "license": "MIT", - "dependencies": { - "@types/ms": "*", - "@types/node": "*" - } - }, "node_modules/@types/methods": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", @@ -3053,12 +3030,6 @@ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", "license": "MIT" }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "license": "MIT" - }, "node_modules/@types/node": { "version": "22.18.11", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.11.tgz", @@ -4194,7 +4165,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, "license": "MIT" }, "node_modules/available-typed-arrays": { @@ -4221,6 +4191,17 @@ "node": ">= 6.0.0" } }, + "node_modules/axios": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.1.tgz", + "integrity": "sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/babel-jest": { "version": "30.2.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", @@ -4512,12 +4493,6 @@ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", "license": "BSD-3-Clause" }, - "node_modules/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": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause" - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -4886,7 +4861,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -5187,7 +5161,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -5299,15 +5272,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/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==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -5414,7 +5378,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -5996,6 +5959,26 @@ "dev": true, "license": "ISC" }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -6059,7 +6042,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", - "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -6076,7 +6058,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -6086,7 +6067,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -7780,49 +7760,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "license": "MIT", - "dependencies": { - "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": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jwa": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", - "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "^1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -7962,42 +7899,6 @@ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "license": "MIT" }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "license": "MIT" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "license": "MIT" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "license": "MIT" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -8018,12 +7919,6 @@ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", "license": "MIT" }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "license": "MIT" - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -9056,6 +8951,12 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -10974,9 +10875,9 @@ } }, "node_modules/validator": { - "version": "13.15.15", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.15.tgz", - "integrity": "sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==", + "version": "13.15.20", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.20.tgz", + "integrity": "sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw==", "license": "MIT", "engines": { "node": ">= 0.10" diff --git a/package.json b/package.json index 006bcd1..ab38a3e 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@nestjs/platform-express": "^11.0.1", "@nestjs/typeorm": "^11.0.0", "argon2": "^0.44.0", + "axios": "^1.13.1", "class-transformer": "0.5.1", "class-validator": "0.14.2", "mysql2": "^3.15.2", diff --git a/src/app.module.ts b/src/app.module.ts index bd71965..09e15a4 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -13,6 +13,7 @@ import { AppController } from './app.controller'; ConfigModule.forRoot({ isGlobal: true, }), + TypeOrmModule.forRoot({ type: 'mariadb', host: process.env.DB_HOST, diff --git a/src/equipo/entities/equipo.entity.ts b/src/equipo/entities/equipo.entity.ts index 33780cf..2dd9f8f 100644 --- a/src/equipo/entities/equipo.entity.ts +++ b/src/equipo/entities/equipo.entity.ts @@ -1,6 +1,7 @@ import { Column, Entity, + JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, @@ -44,27 +45,34 @@ export class Equipo { @OneToMany(() => Movimiento, (mov) => mov.equipo) mov: Movimiento[]; + @JoinColumn({ name: 'id_estado' }) @ManyToOne(() => Estado, (estado) => estado.equipo) estado: Estado; + @JoinColumn({ name: 'id_adscripcion' }) @ManyToOne(() => Adscripcion, (adscripcion) => adscripcion.equipo) adscripcion: Adscripcion; + @JoinColumn({ name: 'id_tipo_equipo' }) @ManyToOne(() => TipoEquipo, (tipoEquipo) => tipoEquipo.equipo) tipoEquipo: TipoEquipo; + @JoinColumn({ name: 'id_sistema_operativo' }) @ManyToOne( () => SistemaOperativo, (sistemaOperativo) => sistemaOperativo.equipo, ) sistemaOperativo: SistemaOperativo; + @JoinColumn({ name: 'id_procesador' }) @ManyToOne(() => Procesador, (procesador) => procesador.equipo) procesador: Procesador; + @JoinColumn({ name: 'id_uso' }) @ManyToOne(() => Uso, (tipoUso) => tipoUso.equipo) tipoUso: Uso; + @JoinColumn({ name: 'id_marca' }) @ManyToOne(() => Marca, (marca) => marca.equipo) marca: Marca; diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index cb98c03..c722180 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -3,6 +3,7 @@ import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Equipo } from './entities/equipo.entity'; import { UpdateEquipoDto } from './dto/update-equipo.dto'; +import axios from 'axios'; import { Adscripcion, Estado, @@ -12,6 +13,7 @@ import { TipoEquipo, Uso, } from './entities/catalogo.entities'; +import { response } from 'express'; @Injectable() export class EquipoService { @@ -163,7 +165,11 @@ export class EquipoService { throw new Error(`No se encontró el equipo con inventario ${inventario}`); } - return equipo; + const responsable = await this.searchResponsable( + equipo.adscripcion.adscripcion, + ); + + return { ...equipo, ...responsable }; } findAllUsos() { @@ -193,4 +199,26 @@ export class EquipoService { findAllProcesadores() { return this.procesadorRepo.find(); } + + async searchResponsable(nombreAdscripcion: string) { + const adscripcion = await this.adscripcionRepo.findOneBy({ + adscripcion: nombreAdscripcion, + }); + if (!adscripcion) { + throw new Error( + `No se encontró la adscripción con nombre ${nombreAdscripcion}`, + ); + } + let entrada = { + tipoBusqueda: 'area', + IdUnidadResponsable: adscripcion.id_adscripcion, + }; + + const url = process.env.API_FUNCIONARIOS; + + if (!url) throw new Error('Url no definida en las variables de entorno'); + console.log(entrada); + const response = await axios.post(url, entrada); + return response.data; + } } diff --git a/src/main.ts b/src/main.ts index 66a1707..c181d61 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,7 +4,12 @@ import { ValidationPipe } from '@nestjs/common'; async function bootstrap() { const app = await NestFactory.create(AppModule); - // Habilita validación global para que DTOs invalidos devuelvan 400 en lugar de 500 + app.enableCors({ + origin: [process.env.CORS_ORIGINS], + methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', + credentials: true, + }); + app.useGlobalPipes(new ValidationPipe({ whitelist: true, transform: true })); await app.listen(process.env.PORT ?? 3000); } diff --git a/src/movimiento/entities/movimiento.entity.ts b/src/movimiento/entities/movimiento.entity.ts index ab1553e..d308f5c 100644 --- a/src/movimiento/entities/movimiento.entity.ts +++ b/src/movimiento/entities/movimiento.entity.ts @@ -1,16 +1,25 @@ +import { join } from 'path'; import { Equipo } from 'src/equipo/entities/equipo.entity'; import { Usuario } from 'src/usuarios/entities/usuario.entity'; -import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm'; +import { + Entity, + PrimaryGeneratedColumn, + Column, + ManyToOne, + JoinColumn, +} from 'typeorm'; @Entity('movimientos') export class Movimiento { @PrimaryGeneratedColumn() id_movimiento: number; - @ManyToOne(() => Usuario, user => user.movimiento) + @JoinColumn({ name: 'id_usuario' }) + @ManyToOne(() => Usuario, (user) => user.movimiento) user: Usuario; - @ManyToOne(() => Equipo, equipo=> equipo.mov) + @JoinColumn({ name: 'id_equipo' }) + @ManyToOne(() => Equipo, (equipo) => equipo.mov) equipo: Equipo; @Column({ name: 'fecha_movimiento' }) diff --git a/src/usuarios/entities/usuario.entity.ts b/src/usuarios/entities/usuario.entity.ts index 04a2fbd..7b558da 100644 --- a/src/usuarios/entities/usuario.entity.ts +++ b/src/usuarios/entities/usuario.entity.ts @@ -2,6 +2,7 @@ import { Movimiento } from 'src/movimiento/entities/movimiento.entity'; import { Column, Entity, + JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, @@ -30,6 +31,7 @@ export class Usuario { @Column({ nullable: true }) contraseña: string; + @JoinColumn({ name: 'id_tipo_usuario' }) @ManyToOne(() => Tipo_Usuario, (tipoUsuario) => tipoUsuario.usuarios) tipoUsuario: Tipo_Usuario;