Skip to content

Instantly share code, notes, and snippets.

@ItsMeAndrea
Created January 8, 2021 15:04
Show Gist options
  • Select an option

  • Save ItsMeAndrea/97eb69ee043e461717ee577d99c7ed60 to your computer and use it in GitHub Desktop.

Select an option

Save ItsMeAndrea/97eb69ee043e461717ee577d99c7ed60 to your computer and use it in GitHub Desktop.
Asis
const updateArcgis = async (request, response) => {
//Se obtiene el token
const token = await getArcgisToken();
//Se obtienen los valores de la peticion
const {
nombres,
apellidos,
razon_social,
Estado,
id_uso_inmueble,
tipo_inmueble,
tipo_naturaleza,
id_impuesto,
id_contribuyente,
} = request.body;
//Si los id_impuesto o id_contribuyente estan vacios no
//se puede hace la peticion
if (isEmpty(id_impuesto) || isEmpty(id_contribuyente)) {
errorMessage.error =
"Los campos id_impusto o id_contribuyente no pueden estar vacios";
return response.status(status.bad).send(errorMessage);
}
//data utilizada para buscar el inmueble a actualizar
const data = {
f: "json",
token,
outFields: "*",
where: `id_impuesto=${id_impuesto} AND id_contribuyente=${id_contribuyente}`,
};
const options = {
method: "POST",
headers: { "content-type": "application/x-www-form-urlencoded" },
data: qs.stringify(data),
url: inmueble_url + "/query",
};
//Peticion del inmueble
axios(options)
.then((res) => {
//si no hay resultados el inmueble no esta registrado en arcgis online
if (!res.data.features.length) {
errorMessage.error = "No hay informacion sobre el inmueble";
return response.status(status.notfound).send(errorMessage);
}
//se obtiene la informacion el inmueble
const resInmueble = res.data.features[0].attributes;
//Se especifica que si se pasa el paramentro por el endpoint
//se actualiza si no, se deja el valor que estaba anteriormente
const inmuebleUpdate = [
{
attributes: {
...resInmueble,
nombres: nombres ? nombres : resInmueble.nombres,
apellidos: apellidos ? apellidos : resInmueble.apellidos,
razon_social: razon_social
? razon_social
: resInmueble.razon_social,
Estado: Estado ? Estado : resInmueble.Estado,
id_uso_inmueble: id_uso_inmueble
? id_uso_inmueble
: resInmueble.id_uso_inmueble,
tipo_inmueble: tipo_inmueble
? tipo_inmueble
: resInmueble.tipo_inmueble,
tipo_naturaleza: tipo_naturaleza
? tipo_naturaleza
: resInmueble.tipo_naturaleza,
},
},
];
//Data para actualizar el inmueble
const data = {
f: "json",
token,
updates: JSON.stringify(inmuebleUpdate),
};
const options = {
method: "POST",
headers: { "content-type": "application/x-www-form-urlencoded" },
data: qs.stringify(data),
url: inmueble_url + "/applyEdits",
};
//Peticion para actualizar el inmueble
axios(options)
.then((res) => {
successMessage.data = res.data;
return response.status(status.success).send(successMessage);
})
.catch((err) => {
errorMessage.error = "Hubo un error al actualizar los datos";
return response.status(status.error).send(errorMessage);
});
})
.catch((err) => {
console.log(err);
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment