<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: himpat202</title>
    <description>The latest articles on DEV Community by himpat202 (@himpat202).</description>
    <link>https://dev.to/himpat202</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F526103%2F498b220c-0b8f-447d-94a7-b4e6585915b2.png</url>
      <title>DEV Community: himpat202</title>
      <link>https://dev.to/himpat202</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/himpat202"/>
    <language>en</language>
    <item>
      <title>Error while doing post request</title>
      <dc:creator>himpat202</dc:creator>
      <pubDate>Tue, 11 Jan 2022 14:25:38 +0000</pubDate>
      <link>https://dev.to/himpat202/error-while-doing-post-request-133o</link>
      <guid>https://dev.to/himpat202/error-while-doing-post-request-133o</guid>
      <description>&lt;p&gt;error-&amp;gt;&lt;br&gt;
{&lt;br&gt;
    "message": "Invalid inputs are passed, please check your data."&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;(&lt;a href="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5lcvbavsq1lq3d7s152.png"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5lcvbavsq1lq3d7s152.png&lt;/a&gt;)&lt;br&gt;
location.js file--&amp;gt;&lt;br&gt;
const axios = require('axios');&lt;/p&gt;

&lt;p&gt;const HttpError = require('../models/http-error');&lt;/p&gt;

&lt;p&gt;const API_KEY = '{google geocoding API_KEY}';&lt;/p&gt;

&lt;p&gt;async function getCoordsForAddress(address) {&lt;br&gt;
  // return {&lt;br&gt;
  //   lat: 40.7484474,&lt;br&gt;
  //   lng: -73.9871516&lt;br&gt;
  // };&lt;br&gt;
  const response = await axios.get(&lt;br&gt;
    &lt;code&gt;https://maps.googleapis.com/maps/api/geocode/json?address=${encodeURIComponent(&lt;br&gt;
      address&lt;br&gt;
    )}&amp;amp;key=${API_KEY}&lt;/code&gt;&lt;br&gt;
  );&lt;/p&gt;

&lt;p&gt;const data = response.data;&lt;/p&gt;

&lt;p&gt;if (!data || data.status === 'ZERO_RESULTS') {&lt;br&gt;
    const error = new HttpError(&lt;br&gt;
      'Could not find location for the specified address.',&lt;br&gt;
      422&lt;br&gt;
    );&lt;br&gt;
    throw error;&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;const coordinates = data.results[0].geometry.location;&lt;/p&gt;

&lt;p&gt;return coordinates;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;module.exports = getCoordsForAddress;&lt;/p&gt;

&lt;p&gt;places-controllers.js ---&amp;gt;&lt;br&gt;
//const uuid = require('uuid');&lt;br&gt;
const { validationResult } = require('express-validator');&lt;/p&gt;

&lt;p&gt;const HttpError = require('../models/http-error');&lt;br&gt;
const getCoordsForAddress = require('../util/location');&lt;br&gt;
const Place = require('../models/place');&lt;/p&gt;

&lt;p&gt;let DUMMY_PLACES = [&lt;br&gt;
  {&lt;br&gt;
    id: 'p1',&lt;br&gt;
    title: 'Empire State Building',&lt;br&gt;
    description: 'One of the most famous sky scrapers in the world!',&lt;br&gt;
    location: {&lt;br&gt;
      lat: 40.7484474,&lt;br&gt;
      lng: -73.9871516&lt;br&gt;
    },&lt;br&gt;
    address: '20 W 34th St, New York, NY 10001',&lt;br&gt;
    creator: 'u1'&lt;br&gt;
  }&lt;br&gt;
];&lt;/p&gt;

&lt;p&gt;const getPlaceById = async (req, res, next) =&amp;gt; {&lt;br&gt;
  const placeId = req.params.pid; // { pid: 'p1' }&lt;/p&gt;

&lt;p&gt;let place;&lt;br&gt;
  try {&lt;br&gt;
    place = await Place.findById(placeId);&lt;br&gt;
  } catch (err) {&lt;br&gt;
    const error = new HttpError(&lt;br&gt;
      'Something went wrong, could not find a place.',&lt;br&gt;
      500&lt;br&gt;
    );&lt;br&gt;
    return next(error);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;if (!place) {&lt;br&gt;
    const error = new HttpError(&lt;br&gt;
      'Could not find a place for the provided id.',&lt;br&gt;
      404&lt;br&gt;
    );&lt;br&gt;
    return next(error);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;res.json({ place: place.toObject({ getters: true }) }); // =&amp;gt; { place } =&amp;gt; { place: place }&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;// function getPlaceById() { ... }&lt;br&gt;
// const getPlaceById = function() { ... }&lt;/p&gt;

&lt;p&gt;const getPlacesByUserId = async (req, res, next) =&amp;gt; {&lt;br&gt;
  const userId = req.params.uid;&lt;/p&gt;

&lt;p&gt;let places;&lt;br&gt;
  try {&lt;br&gt;
    places = await Place.find({ creator: userId });&lt;br&gt;
  } catch (err) {&lt;br&gt;
    const error = new HttpError(&lt;br&gt;
      'Fetching places failed, please try again later',&lt;br&gt;
      500&lt;br&gt;
    );&lt;br&gt;
    return next(error);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;if (!places || places.length === 0) {&lt;br&gt;
    return next(&lt;br&gt;
      new HttpError('Could not find places for the provided user id.', 404)&lt;br&gt;
    );&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;res.json({ places: places.map(place =&amp;gt; place.toObject({ getters: true })) });&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;const createPlace = async (req, res, next) =&amp;gt; {&lt;br&gt;
  const errors = validationResult(req);&lt;br&gt;
  if (!errors.isEmpty()) {&lt;br&gt;
    return next(&lt;br&gt;
      new HttpError('Invalid inputs are passed, please check your data.', 422)&lt;br&gt;
    );&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;const { title, description, address, creator } = req.body;&lt;/p&gt;

&lt;p&gt;let coordinates;&lt;br&gt;
  try {&lt;br&gt;
    coordinates = await getCoordsForAddress(address);&lt;br&gt;
  } catch (error) {&lt;br&gt;
    return next(error);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;// const title = req.body.title;&lt;br&gt;
  const createdPlace = new Place({&lt;br&gt;
    title,&lt;br&gt;
    description,&lt;br&gt;
    address,&lt;br&gt;
    location: coordinates,&lt;br&gt;
    image:&lt;br&gt;
      '&lt;a href="https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Empire_State_Building_%28aerial_view%29.jpg/400px-Empire_State_Building_%28aerial_view%29.jpg"&gt;https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Empire_State_Building_%28aerial_view%29.jpg/400px-Empire_State_Building_%28aerial_view%29.jpg&lt;/a&gt;',&lt;br&gt;
    creator&lt;br&gt;
  });&lt;/p&gt;

&lt;p&gt;try {&lt;br&gt;
    await createdPlace.save();&lt;br&gt;
  } catch (err) {&lt;br&gt;
    const error = new HttpError(&lt;br&gt;
      'Creating place failed, please try again.',&lt;br&gt;
      500&lt;br&gt;
    );&lt;br&gt;
    return next(error);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;res.status(201).json({ place: createdPlace });&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;const updatePlace = async (req, res, next) =&amp;gt; {&lt;br&gt;
  const errors = validationResult(req);&lt;br&gt;
  if (!errors.isEmpty()) {&lt;br&gt;
    throw new HttpError('Invalid inputs passed, please check your data.', 422);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;const { title, description } = req.body;&lt;br&gt;
  const placeId = req.params.pid;&lt;/p&gt;

&lt;p&gt;let place;&lt;br&gt;
  try {&lt;br&gt;
    place = await Place.findById(placeId);&lt;br&gt;
  } catch (err) {&lt;br&gt;
    const error = new HttpError(&lt;br&gt;
      'Something went wrong, could not update place.',&lt;br&gt;
      500&lt;br&gt;
    );&lt;br&gt;
    return next(error);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;place.title = title;&lt;br&gt;
  place.description = description;&lt;/p&gt;

&lt;p&gt;try {&lt;br&gt;
    await place.save();&lt;br&gt;
  } catch (err) {&lt;br&gt;
    const error = new HttpError(&lt;br&gt;
      'Something went wrong, could not update place.',&lt;br&gt;
      500&lt;br&gt;
    );&lt;br&gt;
    return next(error);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;res.status(200).json({ place: place.toObject({ getters: true }) });&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;const deletePlace = async (req, res, next) =&amp;gt; {&lt;br&gt;
  const placeId = req.params.pid;&lt;/p&gt;

&lt;p&gt;let place;&lt;br&gt;
  try {&lt;br&gt;
    place = await Place.findById(placeId);&lt;br&gt;
  } catch (err) {&lt;br&gt;
    const error = new HttpError(&lt;br&gt;
      'Something went wrong, could not delete place.',&lt;br&gt;
      500&lt;br&gt;
    );&lt;br&gt;
    return next(error);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;try {&lt;br&gt;
    await place.remove();&lt;br&gt;
  } catch (err) {&lt;br&gt;
    const error = new HttpError(&lt;br&gt;
      'Something went wrong, could not delete place.',&lt;br&gt;
      500&lt;br&gt;
    );&lt;br&gt;
    return next(error);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;res.status(200).json({ message: 'Deleted place.' });&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;exports.getPlaceById = getPlaceById;&lt;br&gt;
exports.getPlacesByUserId = getPlacesByUserId;&lt;br&gt;
exports.createPlace = createPlace;&lt;br&gt;
exports.updatePlace = updatePlace;&lt;br&gt;
exports.deletePlace = deletePlace;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
