Initial commit
This commit is contained in:
67
app/controllers/admin/experiences_controller.js
Normal file
67
app/controllers/admin/experiences_controller.js
Normal file
@@ -0,0 +1,67 @@
|
||||
import Experience from '#models/experience';
|
||||
import { DateTime } from 'luxon';
|
||||
export default class ExperiencesController {
|
||||
async index({ view }) {
|
||||
const experiences = await Experience.query().orderBy('start', 'desc');
|
||||
return view.render('admin/experiences/index', { experiences });
|
||||
}
|
||||
async create({ view }) {
|
||||
return view.render('admin/experiences/form', { experience: null });
|
||||
}
|
||||
async store({ request, response }) {
|
||||
const { name, start, end, missions, place } = request.only([
|
||||
'name',
|
||||
'start',
|
||||
'end',
|
||||
'missions',
|
||||
'place',
|
||||
]);
|
||||
await Experience.create({
|
||||
name,
|
||||
start: DateTime.fromISO(start),
|
||||
end: end ? DateTime.fromISO(end) : null,
|
||||
missions: missions || null,
|
||||
place: place || null,
|
||||
});
|
||||
return response.redirect('/admin/experiences');
|
||||
}
|
||||
async edit({ view, params, response }) {
|
||||
const experience = await Experience.find(params.id);
|
||||
if (!experience) {
|
||||
return response.notFound();
|
||||
}
|
||||
return view.render('admin/experiences/form', { experience });
|
||||
}
|
||||
async update({ request, params, response }) {
|
||||
const experience = await Experience.find(params.id);
|
||||
if (!experience) {
|
||||
return response.notFound();
|
||||
}
|
||||
const { name, start, end, missions, place } = request.only([
|
||||
'name',
|
||||
'start',
|
||||
'end',
|
||||
'missions',
|
||||
'place',
|
||||
]);
|
||||
await experience
|
||||
.merge({
|
||||
name,
|
||||
start: DateTime.fromISO(start),
|
||||
end: end ? DateTime.fromISO(end) : null,
|
||||
missions: missions || null,
|
||||
place: place || null,
|
||||
})
|
||||
.save();
|
||||
return response.redirect('/admin/experiences');
|
||||
}
|
||||
async destroy({ params, response }) {
|
||||
const experience = await Experience.find(params.id);
|
||||
if (!experience) {
|
||||
return response.notFound();
|
||||
}
|
||||
await experience.delete();
|
||||
return response.redirect('/admin/experiences');
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=experiences_controller.js.map
|
||||
Reference in New Issue
Block a user