diff --git a/api-gateway/src/app.controller.ts b/api-gateway/src/app.controller.ts index 7e6fe785..adff4cf7 100644 --- a/api-gateway/src/app.controller.ts +++ b/api-gateway/src/app.controller.ts @@ -65,6 +65,7 @@ export class AppController { @Body('status') status: string, @Body('date_entry') date_entry: Date, @Body('community_id') community_id: string, + @Body('number_house') number_house: string, ) { return this.appService.createUser( dni, @@ -77,11 +78,13 @@ export class AppController { status, date_entry, community_id, + number_house, ); } - @Put('user/updateUser') + @Put('user/updateUser/:id') updateUser( + @Param('id') id: string, @Body('dni') dni: string, @Body('name') name: string, @Body('last_name') last_name: string, @@ -92,8 +95,10 @@ export class AppController { @Body('status') status: string, @Body('date_entry') date_entry: Date, @Body('community_id') community_id: string, + @Body('number_house') number_house: string, ) { return this.appService.updateUser( + id, dni, name, last_name, @@ -104,6 +109,7 @@ export class AppController { status, date_entry, community_id, + number_house, ); } diff --git a/api-gateway/src/app.service.ts b/api-gateway/src/app.service.ts index c3396486..965b4005 100644 --- a/api-gateway/src/app.service.ts +++ b/api-gateway/src/app.service.ts @@ -34,6 +34,7 @@ export class AppService { status: string, date_entry: Date, community_id: string, + number_house: string, ) { const pattern = { cmd: 'createUser' }; const payload = { @@ -47,6 +48,7 @@ export class AppService { status: status, date_entry: date_entry, community_id: community_id, + number_house: number_house, }; return this.clientUserApp .send(pattern, payload) @@ -54,6 +56,7 @@ export class AppService { } updateUser( + _id: string, dni: string, name: string, last_name: string, @@ -64,9 +67,11 @@ export class AppService { status: string, date_entry: Date, community_id: string, + number_house: string, ) { const pattern = { cmd: 'updateUser' }; const payload = { + id: _id, dni: dni, name: name, last_name: last_name, @@ -77,6 +82,7 @@ export class AppService { status: status, date_entry: date_entry, community_id: community_id, + number_house: number_house, }; return this.clientUserApp .send(pattern, payload) diff --git a/servicio-usuarios/src/users/users.service.ts b/servicio-usuarios/src/users/users.service.ts index 413cb497..d117beeb 100644 --- a/servicio-usuarios/src/users/users.service.ts +++ b/servicio-usuarios/src/users/users.service.ts @@ -143,19 +143,6 @@ export class UsersService { return await this.userModel.find({ community_id: pcommunity_id, user_type: 4 }) - .then(async (users) => { - if (users) { - await Promise.all( - users.map(async (u) => { - //buscar al usuario con el id de la comunidad anexado - let number_house = await this.findNumHouseTenant(pcommunity_id, u['_id']); - u['number_house'] = number_house; - return u; - }), - ) - } - return users; - }) } diff --git a/web-ui/web-react/src/components/Inquilinos.js b/web-ui/web-react/src/components/Inquilinos.js index fb9568b7..a73f6b3d 100644 --- a/web-ui/web-react/src/components/Inquilinos.js +++ b/web-ui/web-react/src/components/Inquilinos.js @@ -42,10 +42,12 @@ const Inquilinos = () => { const [deleteTenantDialog, setDeleteTenantDialog] = useState(false) const [deleteTenantsDialog, setDeleteTenantsDialog] = useState(false) const [community, setCommunity] = useState([]) + const [saveButtonTitle, setSaveButtonTitle] = useState("Registrar") const [houseNumber, setHouseNumber] = useState([]) const [housesList, setHousesList] = useState([]) const [submitted, setSubmitted] = useState(false) const [infoDialogVisible, setShowInfoDialog] = useState(false) + const [cancelSaveButtonVisible, setCancelSaveButtonVisible] = useState(false) const toast = useRef(null) const dt = useRef(null) const [cookies] = useCookies() @@ -101,40 +103,69 @@ const Inquilinos = () => { }, []) const saveTenant = () => { - if (tenant.email && tenant.number_house && tenant.dni - && tenant.name && tenant.last_name && tenant.phone) { - let _tenants = [...tenants] - let _tenant = { ...tenant } - _tenant.community_id = cookies.community_id; - _tenant.number_house = houseNumber; - _tenant.password = _tenant.email; + if (tenant._id === null) { + if (tenant.email && tenant.number_house && tenant.dni + && tenant.name && tenant.last_name && tenant.phone) { + let _tenants = [...tenants] + let _tenant = { ...tenant } + _tenant.community_id = cookies.community_id; + _tenant.number_house = houseNumber; + _tenant.password = _tenant.email; + console.log(`Registrando nuevo inquilino: ${_tenant}`) - fetch(`http://localhost:4000/user/createUser`, { + fetch(`http://localhost:4000/user/createUser`, { + cache: 'no-cache', + method: 'POST', + body: JSON.stringify(_tenant), + headers: { + 'Content-Type': 'application/json', + }, + }) + .then((response) => { + if (response.status !== 200) + console.log(`Hubo un error en el servicio: ${response.status}`) + else return response.json() + }) + .then(() => { + _tenants.push(_tenant) + toast.current.show({ + severity: 'success', + summary: 'Éxito', + detail: 'Inquilino creado', + life: 3000, + }) + setTenants(_tenants) + setTenant(emptyTenant) + setHouseNumber('') + }) + .catch((error) => console.log(`Ocurrió un error: ${error}`)) + } else setSubmitted(true) + } else { + let _tenant = { ..._tenant, number_house: houseNumber }; + console.log(`Actualizando inquilino: ${_tenant}`) + fetch(`http://localhost:4000/user/updateUser/${tenant._id}`, { cache: 'no-cache', - method: 'POST', + method: 'PUT', body: JSON.stringify(_tenant), headers: { 'Content-Type': 'application/json', }, + }).then((response) => { + if (response.status !== 200) + console.log(`Hubo un error en el servicio: ${response.status}`) + else return response.json() + }).then(() => { + toast.current.show({ + severity: 'success', + summary: 'Éxito', + detail: 'Inquilino editado', + life: 3000, + }) + tenantsList() + setTenant(emptyTenant) + setHouseNumber('') }) - .then((response) => { - if (response.status !== 201) - console.log(`Hubo un error en el servicio: ${response.status}`) - else return response.json() - }) - .then(() => { - _tenants.push(_tenant) - toast.current.show({ - severity: 'success', - summary: 'Éxito', - detail: 'Inquilino creado', - life: 3000, - }) - setTenants(_tenants) - setTenant(emptyTenant) - }) - .catch((error) => console.log(`Ocurrió un error: ${error}`)) - } else setSubmitted(true) + } } const deleteTenant = () => { @@ -238,6 +269,20 @@ const Inquilinos = () => { setShowInfoDialog(true); } + const editTenant = (tenant) => { + setTenant(tenant); + console.log(tenant); + setSaveButtonTitle('Actualizar'); + setHouseNumber(tenant.number_house); + } + + const cancelEdit = () => { + setTenant(emptyTenant); + setSaveButtonTitle('Registrar'); + setCancelSaveButtonVisible(false); + setHouseNumber(''); + } + const actionsTenant = (rowData) => { let icono = '' let text = '' @@ -250,6 +295,12 @@ const Inquilinos = () => { } return (
+
-