Skip to content

Instantly share code, notes, and snippets.

@ljaviertovar
Last active April 1, 2022 01:42
Show Gist options
  • Save ljaviertovar/4e17ee285c483b0b43abae12e74d27d9 to your computer and use it in GitHub Desktop.
Save ljaviertovar/4e17ee285c483b0b43abae12e74d27d9 to your computer and use it in GitHub Desktop.
Component to make requests to a REST API
import React, { useState, useEffect } from "react"
import Form from "./Form"
import Table from "./Table"
import { httpHelper } from "../helpers/httpHelper"
const CrudUser = () => {
const [users, setUsers] = useState(null)
const url = "http://localhost:5000/users"
const api = httpHelper()
useEffect(() => {
getUsers()
}, [])
const postUser = user => {
api
.post(`${url}`, { body: user })
.then(res => getUsers())
.catch(err => console.log(err))
}
const updateUser = (id, user) => {
api
.put(`${url}/${id}`, { body: user })
.then(res => getUsers())
.catch(err => console.log(err))
}
const deleteUser = id => {
api
.del(`${url}/${id}`, {})
.then(res => getUsers())
.catch(err => console.log(err))
}
const getUsers = () => {
api
.get(`${url}?_expand=companies`)
.then(res => {
setUsers(res)
})
.catch(err => console.log(err))
}
if (!users) return null
return (
<>
<h3>New user</h3>
<Form postUser={postUser} />
<div className='all-users'>
<h3>All users</h3>
<Table
users={users}
setUsers={setUsers}
postUser={postUser}
updateUser={updateUser}
deleteUser={deleteUser}
/>
</div>
</>
)
}
export default CrudUser
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment