Skip to content

Commit 5afb787

Browse files
committed
Create a POST request to post new employer name to the database and sort employers alphabetically
1 parent a641c80 commit 5afb787

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

src/Components/forms/index.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,22 @@ class Forms extends Component {
178178
})
179179
}
180180

181+
postNewEmployer = async employer => {
182+
try {
183+
const newEmployerResponse = await axios({
184+
method: 'POST',
185+
url: `${domain()}/employers`,
186+
data: employer
187+
})
188+
const newEmployer = newEmployerResponse.data
189+
return newEmployer
190+
} catch (err) {
191+
return this.setState({
192+
err: `Sorry, your employer's name has not been saved.`
193+
})
194+
}
195+
}
196+
181197
handleSubmit = async e => {
182198
e.preventDefault()
183199
this.setState({
@@ -409,6 +425,7 @@ class Forms extends Component {
409425
employersOptions={this.state.employersOptions}
410426
{...this.props}
411427
{...this.state}
428+
postNewEmployer={this.postNewEmployer}
412429
/>
413430
<Acknowledgement onChange={this.onChange} {...this.state} />
414431
<button

src/Components/forms/inputs/EmployerDropDown.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ const EmployerDropDown = ({
88
arrayList: employers,
99
isEmpty,
1010
onChange,
11-
value
11+
value,
12+
postNewEmployer
1213
}) => {
1314
const [options, setOptions] = useSession('cyfEmployerList', () =>
1415
employers.map(({ _id, name }) => ({
@@ -43,8 +44,9 @@ const EmployerDropDown = ({
4344
onCreateOption={newEmployer => {
4445
setOptions(oldOptions => insertedInto(oldOptions, newEmployer))
4546
handleChange(newEmployer)
47+
postNewEmployer({ name: `${newEmployer}` })
4648
}}
47-
options={options}
49+
options={options.sort((a, b) => a.label.localeCompare(b.label))}
4850
placeholder="Type your employer name here"
4951
value={selectedOption}
5052
/>

src/Components/forms/inputs/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ export default class VolunteerForm extends Component {
3333
techSkill,
3434
otherSkill,
3535
employersOptions,
36-
employer
36+
employer,
37+
postNewEmployer
3738
} = this.props
3839

3940
return (
@@ -150,7 +151,8 @@ export default class VolunteerForm extends Component {
150151
arrayList={employersOptions}
151152
isEmpty={errors.employer}
152153
onChange={onChange}
153-
value={employersOptions}
154+
value={employer}
155+
postNewEmployer={postNewEmployer}
154156
/>
155157
)}
156158
<span className="contact-interested">

0 commit comments

Comments
 (0)