Skip to content
Snippets Groups Projects
Commit 8a2cb0c3 authored by nicrausaz's avatar nicrausaz
Browse files

Update, delete positions

parent 7ae79dd7
No related branches found
No related tags found
No related merge requests found
......@@ -99,6 +99,24 @@ class PositionController extends Controller
}
}
public function deletePosition($id) {
$has_permitted_role = AccessLevelHelper::hasPermittedRole($this->user_role, 'responsable');
$wanted_position_exists = DB::table('position')->where('position_id', $id)->exists();
$wanted_position_in_use = DB::table('applicant')->where('fk_position', $id)->exists();
if ($wanted_position_exists && $has_permitted_role) {
if ($wanted_position_in_use) {
return abort(403, lang::get('http.error.deleted.position'));
} else {
DB::table('position')->where('position_id', $id)->delete();
return ["message" => lang::get('http.success.deleted.position')];
}
} else {
return abort(403, lang::get('http.unauthorized'));
}
}
public function createLocation () {
$this->validate($this->request, [
'location_site' => 'required'
......
......@@ -25,6 +25,11 @@ return [
'location' => 'Lieu supprimé',
'job' => 'Métier supprimé'
]
]
],
'error' => [
'deleted' => [
'position' => 'Des candidatures sont liées à cette offre, cette suppression est impossible !'
]
]
];
......@@ -42,6 +42,7 @@ $router->group(['middleware' => 'jwt.auth'], function () use ($router) {
$router->put('api/location', 'PositionController@createLocation');
$router->put('api/job', 'PositionController@createJob');
$router->patch('api/position/{id:[0-9]+}', 'PositionController@updatePosition');
$router->delete('api/position/{id:[0-9]+}', 'PositionController@deletePosition');
// Files
$router->get('api/file/{id:[0-9]+}', 'FilesController@getFile');
......
......@@ -62,6 +62,22 @@ export function updatePosition(context, data) {
})
}
export function deletePosition (context, data) {
axios({
method: 'delete',
url: '/position/' + data.position_id,
data: data
})
.then(response => {
console.log(response)
// Notif this
})
.catch(err => {
console.log(err)
// Notif this
})
}
export function createJob(context, data) {
return new Promise((resolve, reject) => {
axios({
......
......@@ -168,8 +168,8 @@ export default {
},
deleteItem(item) {
if (confirm('Voulez-vous vraiment supprimer cette offre ?')) {
// dispatch delete item.position_id
console.log(item.position_id)
this.$store.dispatch('modulePositions/deletePosition', item)
this.loadData()
}
},
close() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment