From f6ab828ed4c71a73bed99f72d03a7c160cfa11a9 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Thu, 1 Sep 2022 06:30:07 -0600 Subject: [PATCH 1/9] group constants --- web-ui/web-react/src/components/ComunidadViviendas.js | 1 - 1 file changed, 1 deletion(-) diff --git a/web-ui/web-react/src/components/ComunidadViviendas.js b/web-ui/web-react/src/components/ComunidadViviendas.js index a401fd17..7e06bc39 100644 --- a/web-ui/web-react/src/components/ComunidadViviendas.js +++ b/web-ui/web-react/src/components/ComunidadViviendas.js @@ -32,7 +32,6 @@ const Communities = () => { const [communitiesList, setCommunitiesList] = useState([]); const [community, setCommunity] = useState(emptyCommunity); - const [housesList, setHousesList] = useState([]); const [provincesList, setProvincesList] = useState([]); const [provinciaId, setProvinciaId] = useState(null); From 22dff4fe0733ce8192c9c177b8cc8e0d3cb83e92 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Thu, 1 Sep 2022 10:01:10 -0600 Subject: [PATCH 2/9] add button --- .../src/components/ComunidadViviendas.js | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/web-ui/web-react/src/components/ComunidadViviendas.js b/web-ui/web-react/src/components/ComunidadViviendas.js index 7e06bc39..515142f0 100644 --- a/web-ui/web-react/src/components/ComunidadViviendas.js +++ b/web-ui/web-react/src/components/ComunidadViviendas.js @@ -41,6 +41,7 @@ const Communities = () => { const [districtId, setDistrictId] = useState(null); const [codeHouses, setCodeHouses] = useState(''); const [submitted, setSubmitted] = useState(false); + const [saveButtonLabel, setSaveButtonLabel] = useState('Registrar') const [selectedCommunities, setSelectedCommunities] = useState(null); const [globalFilter, setGlobalFilter] = useState(null); const [deleteCommunityDialog, setDeleteCommunityDialog] = useState(false); @@ -97,7 +98,7 @@ const Communities = () => { async function fillCantons() { const resJson = await getCantons(); - const cantones = await resJson.filter(function (i, n) { + const cantones = await resJson.filter(function(i, n) { return i.parentCode === provinciaId; }); setCantonsList(await cantones); @@ -112,7 +113,7 @@ const Communities = () => { async function fillDistricts() { const resJson = await getDistricts(); - const districts = await resJson.filter(function (i, n) { + const districts = await resJson.filter(function(i, n) { return i.parentCode === cantonId; }); setDistrictsList(await districts); @@ -232,7 +233,7 @@ const Communities = () => { 'Content-Type': 'application/json', }, }) - .then(function (response) { + .then(function(response) { if (response.status != 201) console.log('Ocurrió un error con el servicio: ' + response.status); else return response.json(); @@ -357,7 +358,7 @@ const Communities = () => { } }) .then( - function (response) { + function(response) { if (response.status != 201) console.log('Ocurrió un error con el servicio: ' + response.status); else @@ -365,7 +366,7 @@ const Communities = () => { } ) .then( - function (response) { + function(response) { setEditCommunityDialog(false); toast.current.show({ severity: 'success', @@ -389,7 +390,7 @@ const Communities = () => { } }) .then( - function (response) { + function(response) { if (response.status != 201) console.log('Ocurrió un error con el servicio: ' + response.status); else @@ -397,7 +398,7 @@ const Communities = () => { } ) .then( - function (response) { + function(response) { let _community = communitiesList.filter(val => val._id !== community._id); setCommunitiesList(_community); @@ -454,6 +455,16 @@ const Communities = () => { }); }; + const updateCommunity = (community) => { + console.log(community); + setCommunity(community); + setSaveButtonLabel('Actualizar'); + setHousesList(community.houses); + setProvinciaId(community.provincia); + setCantonId(community.canton); + setDistrictId(community.district); + } + const actionsCommunity = (rowData) => { let icono = ''; @@ -465,6 +476,12 @@ const Communities = () => { return (
+
From ca2015ee0b70ac5f0af14246d3067079317a1930 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Thu, 1 Sep 2022 10:10:55 -0600 Subject: [PATCH 3/9] remove unnecessary console log --- web-ui/web-react/src/components/ComunidadViviendas.js | 1 - 1 file changed, 1 deletion(-) diff --git a/web-ui/web-react/src/components/ComunidadViviendas.js b/web-ui/web-react/src/components/ComunidadViviendas.js index 515142f0..e3b1c4ce 100644 --- a/web-ui/web-react/src/components/ComunidadViviendas.js +++ b/web-ui/web-react/src/components/ComunidadViviendas.js @@ -456,7 +456,6 @@ const Communities = () => { }; const updateCommunity = (community) => { - console.log(community); setCommunity(community); setSaveButtonLabel('Actualizar'); setHousesList(community.houses); From 0321b6ad006d188e15771aed2fc98db07e1f94c0 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Thu, 1 Sep 2022 10:12:22 -0600 Subject: [PATCH 4/9] formatting --- .../src/components/ComunidadViviendas.js | 282 ++++++++++-------- 1 file changed, 150 insertions(+), 132 deletions(-) diff --git a/web-ui/web-react/src/components/ComunidadViviendas.js b/web-ui/web-react/src/components/ComunidadViviendas.js index e3b1c4ce..f80f1157 100644 --- a/web-ui/web-react/src/components/ComunidadViviendas.js +++ b/web-ui/web-react/src/components/ComunidadViviendas.js @@ -41,7 +41,7 @@ const Communities = () => { const [districtId, setDistrictId] = useState(null); const [codeHouses, setCodeHouses] = useState(''); const [submitted, setSubmitted] = useState(false); - const [saveButtonLabel, setSaveButtonLabel] = useState('Registrar') + const [saveButtonLabel, setSaveButtonLabel] = useState('Registrar'); const [selectedCommunities, setSelectedCommunities] = useState(null); const [globalFilter, setGlobalFilter] = useState(null); const [deleteCommunityDialog, setDeleteCommunityDialog] = useState(false); @@ -50,15 +50,11 @@ const Communities = () => { const toast = useRef(null); const dt = useRef(null); - - //para el perfil de la comunidad const [tenants, setTenants] = useState([]); const [communityDialog, setCommunityDialog] = useState(false); - - const p = provincesList.map((item) => ({ label: item.name, value: item.code, @@ -76,7 +72,6 @@ const Communities = () => { parent: item.parentCode, })); - async function getProvinces() { const response = await fetch('assets/demo/data/provincias.json', { method: 'GET', @@ -119,7 +114,6 @@ const Communities = () => { setDistrictsList(await districts); } - useEffect(() => { fillProvinces(); }, []); @@ -132,7 +126,6 @@ const Communities = () => { fillDistricts(); }, [cantonId]); - const handleProvinces = (event) => { const getprovinciaId = event.target.value; setProvinciaId(getprovinciaId); @@ -162,9 +155,7 @@ const Communities = () => { let pList = await getProvinces(); let cList = await getCantons(); let dList = await getDistricts(); - let data = await resJson.message.filter( - (val) => val.status != -1, - ) + let data = await resJson.message.filter((val) => val.status != -1); await data.map((item) => { if (item.status == '1') { item.status_text = 'Activo'; @@ -188,21 +179,20 @@ const Communities = () => { }, []); async function tenantsList(id) { - await fetch(`http://localhost:4000/user/findTenants/${id}`, { method: 'GET' }) + await fetch(`http://localhost:4000/user/findTenants/${id}`, { + method: 'GET', + }) .then((response) => response.json()) - .then(data => data.message) - .then(data => { - data = data.filter( - (val) => val.status != -1, - ) - setTenants(data) + .then((data) => data.message) + .then((data) => { + data = data.filter((val) => val.status != -1); + setTenants(data); }); } useEffect(() => { tenantsList(community._id); - }, []) - + }, []); const saveCommunity = () => { if ( @@ -272,14 +262,12 @@ const Communities = () => { } }; - - function findNameTenant(tenant_id) { let name = ''; if (tenant_id == '') { name = 'Sin inquilino'; } else { - let tenant = tenants.find(t => t._id == tenant_id) + let tenant = tenants.find((t) => t._id == tenant_id); name = tenant['name'] + ' ' + tenant['last_name']; } return name; @@ -340,7 +328,6 @@ const Communities = () => { if (community.status == '1') { community.status = '0'; community.status_text = 'Inactivo'; - } else if (community.status == '0') { community.status = '1'; community.status_text = 'Activo'; @@ -354,69 +341,66 @@ const Communities = () => { method: 'POST', body: JSON.stringify(data), headers: { - 'Content-Type': 'application/json' - } + 'Content-Type': 'application/json', + }, }) - .then( - function(response) { - if (response.status != 201) - console.log('Ocurrió un error con el servicio: ' + response.status); - else - return response.json(); - } - ) - .then( - function(response) { - setEditCommunityDialog(false); - toast.current.show({ - severity: 'success', - summary: 'Éxito', - detail: 'Comunidad de Viviendas Actualizada', - life: 3000, - }); - } - ) - .catch( - err => console.log('Ocurrió un error con el fetch', err) - ); - } + .then(function(response) { + if (response.status != 201) + console.log('Ocurrió un error con el servicio: ' + response.status); + else return response.json(); + }) + .then(function(response) { + setEditCommunityDialog(false); + toast.current.show({ + severity: 'success', + summary: 'Éxito', + detail: 'Comunidad de Viviendas Actualizada', + life: 3000, + }); + }) + .catch((err) => console.log('Ocurrió un error con el fetch', err)); + }; const deleteCommunity = () => { fetch('http://localhost:4000/community/deleteCommunity/' + community._id, { cache: 'no-cache', method: 'DELETE', headers: { - 'Content-Type': 'application/json' - } + 'Content-Type': 'application/json', + }, }) - .then( - function(response) { - if (response.status != 201) - console.log('Ocurrió un error con el servicio: ' + response.status); - else - return response.json(); - } - ) - .then( - function(response) { - - let _community = communitiesList.filter(val => val._id !== community._id); - setCommunitiesList(_community); - setDeleteCommunityDialog(false); - setCommunity(emptyCommunity); - toast.current.show({ severity: 'success', summary: 'Exito', detail: 'Comunidad de Viviendas Eliminada', life: 3000 }); - } - ) - .catch( - err => { - console.log('Ocurrió un error con el fetch', err) - toast.current.show({ severity: 'danger', summary: 'Error', detail: 'Comunidad de Viviendas no se pudo eliminar', life: 3000 }); - } - ); - let _communities = communitiesList.filter((val) => val._id !== community._id); - _communities = _communities.filter( - (val) => val.status != -1, - ) + .then(function(response) { + if (response.status != 201) + console.log('Ocurrió un error con el servicio: ' + response.status); + else return response.json(); + }) + .then(function(response) { + let _community = communitiesList.filter( + (val) => val._id !== community._id, + ); + setCommunitiesList(_community); + setDeleteCommunityDialog(false); + setCommunity(emptyCommunity); + toast.current.show({ + severity: 'success', + summary: 'Exito', + detail: 'Comunidad de Viviendas Eliminada', + life: 3000, + }); + }) + .catch((err) => { + console.log('Ocurrió un error con el fetch', err); + toast.current.show({ + severity: 'danger', + summary: 'Error', + detail: 'Comunidad de Viviendas no se pudo eliminar', + life: 3000, + }); + }); + let _communities = communitiesList.filter( + (val) => val._id !== community._id, + ); + _communities = _communities.filter((val) => val.status != -1); setCommunitiesList(_communities); setDeleteCommunityDialog(false); setCommunity(emptyCommunity); @@ -441,9 +425,7 @@ const Communities = () => { } }) })*/ - _communities = _communities.filter( - (val) => val.status != -1, - ) + _communities = _communities.filter((val) => val.status != -1); setCommunitiesList(_communities); setDeleteCommunitiesDialog(false); setSelectedCommunities(null); @@ -462,15 +444,23 @@ const Communities = () => { setProvinciaId(community.provincia); setCantonId(community.canton); setDistrictId(community.district); + }; + + const cancelEdit = () => { + setCommunity(emptyCommunity); + setCantonId(''); + setHousesList([]); + setProvinciaId(''); + setDistrictId(''); + setSaveButtonLabel('Registrar'); } const actionsCommunity = (rowData) => { - let icono = ''; if (rowData.status == '0') { - icono = "pi pi-eye"; + icono = 'pi pi-eye'; } else if (rowData.status == '1') { - icono = "pi pi-eye-slash"; + icono = 'pi pi-eye-slash'; } return ( @@ -550,7 +540,6 @@ const Communities = () => { className="p-button-text" onClick={hideCommunityDialog} /> - ); @@ -604,8 +593,6 @@ const Communities = () => { ); - - const headerName = ( <>

@@ -668,8 +655,8 @@ const Communities = () => { <>

{' '} - {' '} - Número de viviendas + Número + de viviendas

); @@ -686,12 +673,16 @@ const Communities = () => { const headerStatus = ( <> -

{' '} - {' '} +

+ {' '} + {' '} Estado

- ) + ); //ver perfil comunidad const headerTenant = ( @@ -701,16 +692,13 @@ const Communities = () => { {' '} Inquilinos

- ); const statusBodyTemplate = (rowData) => { return ( <> - + {rowData.status_text} @@ -724,11 +712,7 @@ const Communities = () => { name = findNameTenant(tenants.tenant_id); } - return ( - <> - {name} - - ) + return <>{name}; }; return ( @@ -810,15 +794,19 @@ const Communities = () => { sortable header={headerStatus} body={statusBodyTemplate} - style={{ flexGrow: 1, flexBasis: '160px', minWidth: '160px', wordBreak: 'break-word' }}> - + style={{ + flexGrow: 1, + flexBasis: '160px', + minWidth: '160px', + wordBreak: 'break-word', + }} + > - { modal className="p-fluid" footer={communityDialogFooter} - onHide={hideCommunityDialog}> -
-
+ onHide={hideCommunityDialog} + > +
+

Nombre

-
+

{community.name}

@@ -839,30 +831,34 @@ const Communities = () => {
-
+

Administrador

-
+

{community.name_admin}

-

Teléfono Administrativo

-
+

{community.phone}

-
-
+

Provincia

@@ -870,7 +866,6 @@ const Communities = () => {

{community.province}

-
@@ -880,7 +875,6 @@ const Communities = () => {

{community.canton}

-
@@ -890,14 +884,16 @@ const Communities = () => {

{community.district}

-
-
+

Número de Viviendas

-
+

{community.num_houses}

@@ -905,12 +901,16 @@ const Communities = () => {
-
+
- - -

Viviendas

-
+

+ {' '} + Viviendas +

+
{
@@ -942,7 +950,6 @@ const Communities = () => {
-
{ /> {community && ( - ¿Estás seguro que desea cambiar estado a {community.name}? + ¿Estás seguro que desea cambiar estado a{' '} + {community.name}? )}
@@ -1183,12 +1191,22 @@ const Communities = () => { )} -
+
+ /> + {saveButtonLabel === 'Actualizar' && ( +
From ad16f8759dd001b960a252985ae04897da0faa1d Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Thu, 1 Sep 2022 10:25:44 -0600 Subject: [PATCH 5/9] switch to arrow functions --- .../web-react/src/components/ComunidadViviendas.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/web-ui/web-react/src/components/ComunidadViviendas.js b/web-ui/web-react/src/components/ComunidadViviendas.js index f80f1157..cf278fc2 100644 --- a/web-ui/web-react/src/components/ComunidadViviendas.js +++ b/web-ui/web-react/src/components/ComunidadViviendas.js @@ -93,7 +93,7 @@ const Communities = () => { async function fillCantons() { const resJson = await getCantons(); - const cantones = await resJson.filter(function(i, n) { + const cantones = await resJson.filter((i, n) => { return i.parentCode === provinciaId; }); setCantonsList(await cantones); @@ -108,7 +108,7 @@ const Communities = () => { async function fillDistricts() { const resJson = await getDistricts(); - const districts = await resJson.filter(function(i, n) { + const districts = await resJson.filter((i, n) => { return i.parentCode === cantonId; }); setDistrictsList(await districts); @@ -223,7 +223,7 @@ const Communities = () => { 'Content-Type': 'application/json', }, }) - .then(function(response) { + .then((response) => { if (response.status != 201) console.log('Ocurrió un error con el servicio: ' + response.status); else return response.json(); @@ -344,12 +344,12 @@ const Communities = () => { 'Content-Type': 'application/json', }, }) - .then(function(response) { + .then((response) => { if (response.status != 201) console.log('Ocurrió un error con el servicio: ' + response.status); else return response.json(); }) - .then(function(response) { + .then((response) => { setEditCommunityDialog(false); toast.current.show({ severity: 'success', @@ -369,12 +369,12 @@ const Communities = () => { 'Content-Type': 'application/json', }, }) - .then(function(response) { + .then((response) => { if (response.status != 201) console.log('Ocurrió un error con el servicio: ' + response.status); else return response.json(); }) - .then(function(response) { + .then((response) => { let _community = communitiesList.filter( (val) => val._id !== community._id, ); From a089525afcf1fe2215b37da41f5bd28d84a80dda Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Thu, 1 Sep 2022 10:26:50 -0600 Subject: [PATCH 6/9] underscore unused params --- web-ui/web-react/src/components/ComunidadViviendas.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/web-ui/web-react/src/components/ComunidadViviendas.js b/web-ui/web-react/src/components/ComunidadViviendas.js index cf278fc2..dff13e13 100644 --- a/web-ui/web-react/src/components/ComunidadViviendas.js +++ b/web-ui/web-react/src/components/ComunidadViviendas.js @@ -93,7 +93,7 @@ const Communities = () => { async function fillCantons() { const resJson = await getCantons(); - const cantones = await resJson.filter((i, n) => { + const cantones = await resJson.filter((i, _n) => { return i.parentCode === provinciaId; }); setCantonsList(await cantones); @@ -108,7 +108,7 @@ const Communities = () => { async function fillDistricts() { const resJson = await getDistricts(); - const districts = await resJson.filter((i, n) => { + const districts = await resJson.filter((i, _n) => { return i.parentCode === cantonId; }); setDistrictsList(await districts); @@ -349,7 +349,7 @@ const Communities = () => { console.log('Ocurrió un error con el servicio: ' + response.status); else return response.json(); }) - .then((response) => { + .then((_response) => { setEditCommunityDialog(false); toast.current.show({ severity: 'success', @@ -374,7 +374,7 @@ const Communities = () => { console.log('Ocurrió un error con el servicio: ' + response.status); else return response.json(); }) - .then((response) => { + .then((_response) => { let _community = communitiesList.filter( (val) => val._id !== community._id, ); From 1d684d74fdbaf076cde966fd5591c2a069f638d9 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Thu, 1 Sep 2022 10:36:20 -0600 Subject: [PATCH 7/9] change empty to const --- web-ui/web-react/src/components/ComunidadViviendas.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web-ui/web-react/src/components/ComunidadViviendas.js b/web-ui/web-react/src/components/ComunidadViviendas.js index dff13e13..d3d4f23c 100644 --- a/web-ui/web-react/src/components/ComunidadViviendas.js +++ b/web-ui/web-react/src/components/ComunidadViviendas.js @@ -16,7 +16,7 @@ import { faHashtag } from '@fortawesome/free-solid-svg-icons'; import { faCircleQuestion } from '@fortawesome/free-solid-svg-icons'; const Communities = () => { - let emptyCommunity = { + const emptyCommunity = { _id: null, name: '', province: provinciaId, @@ -214,7 +214,6 @@ const Communities = () => { number_house: codeHouses + (i + 1), }); } - // console.log(houses) fetch('http://localhost:4000/community/createCommunity', { cache: 'no-cache', method: 'POST', From eb55195783849de7081fbc3affe830ce563e396b Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Thu, 1 Sep 2022 12:39:01 -0600 Subject: [PATCH 8/9] remover set ids --- web-ui/web-react/src/components/ComunidadViviendas.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/web-ui/web-react/src/components/ComunidadViviendas.js b/web-ui/web-react/src/components/ComunidadViviendas.js index d3d4f23c..36f22a48 100644 --- a/web-ui/web-react/src/components/ComunidadViviendas.js +++ b/web-ui/web-react/src/components/ComunidadViviendas.js @@ -440,9 +440,6 @@ const Communities = () => { setCommunity(community); setSaveButtonLabel('Actualizar'); setHousesList(community.houses); - setProvinciaId(community.provincia); - setCantonId(community.canton); - setDistrictId(community.district); }; const cancelEdit = () => { From 1a7edfc76e89fda1218739b4d866e7f34cc6f179 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Thu, 1 Sep 2022 14:27:11 -0600 Subject: [PATCH 9/9] finish functionality --- api-gateway/src/app.controller.ts | 27 ++++ api-gateway/src/app.service.ts | 19 +++ .../src/components/ComunidadViviendas.js | 122 +++++++++++------- 3 files changed, 118 insertions(+), 50 deletions(-) diff --git a/api-gateway/src/app.controller.ts b/api-gateway/src/app.controller.ts index d9b740b9..e8e98459 100644 --- a/api-gateway/src/app.controller.ts +++ b/api-gateway/src/app.controller.ts @@ -353,6 +353,33 @@ export class AppController { ); } + @Put('community/updateCommunity/:id') + updateCommunity( + @Param('id') id: string, + @Body('name') name: string, + @Body('province') province: string, + @Body('canton') canton: string, + @Body('district') district: string, + @Body('num_houses') num_houses: number, + @Body('phone') phone: string, + @Body('status') status: string, + @Body('date_entry') date_entry: Date, + @Body('houses') houses: [], + ) { + return this.appService.updateCommunity( + id, + name, + province, + canton, + district, + num_houses, + phone, + status, + date_entry, + houses, + ); + } + @Get('community/allCommunities') allcommunities() { return this.appService.allCommunities(); diff --git a/api-gateway/src/app.service.ts b/api-gateway/src/app.service.ts index 235090ec..f8a24bbe 100644 --- a/api-gateway/src/app.service.ts +++ b/api-gateway/src/app.service.ts @@ -426,6 +426,25 @@ export class AppService { .pipe(map((message: string) => ({ message }))); } + updateCommunity(id: string, name: string, province: string, canton: string, district: string, num_houses: number, phone: string, status: string, date_entry: Date, houses: unknown) { + const pattern = { cmd: 'updateCommunity' }; + const payload = { + id: id, + name: name, + province: province, + canton: canton, + district: district, + num_houses: num_houses, + phone: phone, + status: status, + date_entry: date_entry, + houses: houses, + }; + return this.clientCommunityApp + .send(pattern, payload) + .pipe(map((message: string) => ({ message }))); + } + allCommunities() { const pattern = { cmd: 'findAllCommunities' }; const payload = {}; diff --git a/web-ui/web-react/src/components/ComunidadViviendas.js b/web-ui/web-react/src/components/ComunidadViviendas.js index 36f22a48..548388fb 100644 --- a/web-ui/web-react/src/components/ComunidadViviendas.js +++ b/web-ui/web-react/src/components/ComunidadViviendas.js @@ -203,59 +203,80 @@ const Communities = () => { districtId && community.phone ) { - let _communities = [...communitiesList]; - let _community = { ...community }; - _community.province = provinciaId; - _community.canton = cantonId; - _community.district = districtId; + if (saveButtonLabel === 'Registrar') { + let _communities = [...communitiesList]; + let _community = { ...community }; + _community.province = provinciaId; + _community.canton = cantonId; + _community.district = districtId; - for (let i = 0; i < _community.num_houses; i++) { - _community.houses.push({ - number_house: codeHouses + (i + 1), - }); - } - fetch('http://localhost:4000/community/createCommunity', { - cache: 'no-cache', - method: 'POST', - body: JSON.stringify(_community), - headers: { - 'Content-Type': 'application/json', - }, - }) - .then((response) => { - if (response.status != 201) + for (let i = 0; i < _community.num_houses; i++) { + _community.houses.push({ + number_house: codeHouses + (i + 1), + }); + } + fetch('http://localhost:4000/community/createCommunity', { + cache: 'no-cache', + method: 'POST', + body: JSON.stringify(_community), + headers: { + 'Content-Type': 'application/json', + }, + }) + .then((response) => { + if (response.status != 201) + console.log('Ocurrió un error con el servicio: ' + response.status); + else return response.json(); + }) + .then(() => { + _community.province = provincesList.find( + (p) => p.code === _community.province, + ).name; + _community.canton = cantonsList.find( + (p) => p.code === _community.canton, + ).name; + _community.district = districtsList.find( + (p) => p.code === _community.district, + ).name; + + _communities.push(_community); + toast.current.show({ + severity: 'success', + summary: 'Registro exitoso', + detail: 'Comunidad de vivienda Creada', + life: 3000, + }); + setCommunitiesList(_communities); + setProvinciaId(''); + setCantonId(''); + setDistrictId(''); + setCodeHouses(''); + getCommunites(); + setCommunity(emptyCommunity); + }) + .catch((err) => console.log('Ocurrió un error con el fetch', err)); + } else { + let _community = { ...community }; + _community.province = provinciaId; + _community.canton = cantonId; + _community.district = districtId; + console.log(`Actualizando comunidad: ${_community}`); + fetch(`http://localhost:4000/community/updateCommunity/${community._id}`, { + method: 'PUT', + cache: 'no-cache', + body: JSON.stringify(_community), + headers: { + 'Content-Type': 'application/json', + } + }).then((response) => { + getCommunites(); + if (response.status != 200) console.log('Ocurrió un error con el servicio: ' + response.status); else return response.json(); - }) - .then(() => { - _community.province = provincesList.find( - (p) => p.code === _community.province, - ).name; - _community.canton = cantonsList.find( - (p) => p.code === _community.canton, - ).name; - _community.district = districtsList.find( - (p) => p.code === _community.district, - ).name; - - _communities.push(_community); - toast.current.show({ - severity: 'success', - summary: 'Registro exitoso', - detail: 'Comunidad de vivienda Creada', - life: 3000, - }); - - setCommunitiesList(_communities); - - setProvinciaId(''); - setCantonId(''); - setDistrictId(''); - setCodeHouses(''); - - setCommunity(emptyCommunity); - }) - .catch((err) => console.log('Ocurrió un error con el fetch', err)); + }).catch((err) => console.log('Ocurrió un error con el fetch', err)); + setSaveButtonLabel('Registrar'); + setCommunity(emptyCommunity); + } } else { setSubmitted(true); } @@ -356,6 +377,7 @@ const Communities = () => { detail: 'Comunidad de Viviendas Actualizada', life: 3000, }); + getCommunites(); }) .catch((err) => console.log('Ocurrió un error con el fetch', err)); };