/
Planes.java
108 lines (97 loc) · 2.74 KB
/
Planes.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package controllers;
import play.*;
import play.mvc.*;
import play.data.*;
import views.html.planes.*;
import models.Plane;
import play.i18n.*;
import flexjson.JSONSerializer;
public class Planes extends Controller {
static Form<Plane> planeForm = Form.form(Plane.class);
static Result GO_HOME = redirect(routes.Planes.index(0, 10));
// GET /planes.json
public static Result indexJson() {
return ok(new JSONSerializer().exclude("flights", "planeType", "class").serialize(Plane.find.all()));
}
// GET /planes?page=0&pageSize=10
@Security.Authenticated(Secured.class)
public static Result index(int page, int pageSize) {
return ok(index.render(Plane.page(page, pageSize)));
}
// GET /planes/:id
@Security.Authenticated(Secured.class)
public static Result show(Long id) {
return ok(show.render(Plane.find.byId(id)));
}
// GET /planes/new
@Security.Authenticated(Secured.class)
public static Result _new() {
if (Secured.isAdmin()) {
return ok(_new.render(planeForm));
}
else {
return forbidden(views.html.forbidden.render());
}
}
// GET /planes/:id/edit
@Security.Authenticated(Secured.class)
public static Result edit(Long id) {
if (Secured.isAdmin()) {
Form<Plane> filledForm = planeForm.fill(Plane.find.byId(id));
return ok(edit.render(id, filledForm));
}
else {
return forbidden(views.html.forbidden.render());
}
}
// POST /planes
@Security.Authenticated(Secured.class)
public static Result create() {
if (Secured.isAdmin()) {
Form<Plane> filledForm = planeForm.bindFromRequest();
if (filledForm.hasErrors()) {
flash("error", Messages.get("controllers.error"));
return badRequest(_new.render(filledForm));
}
else {
filledForm.get().save();
flash("success", Messages.get("controllers.createSuccess", filledForm.get()));
return GO_HOME;
}
}
else {
return forbidden(views.html.forbidden.render());
}
}
// POST /planes/:id
@Security.Authenticated(Secured.class)
public static Result update(Long id) {
if (Secured.isAdmin()) {
Form<Plane> filledForm = planeForm.bindFromRequest();
if (filledForm.hasErrors()) {
flash("error", Messages.get("controllers.error"));
return badRequest(edit.render(id, filledForm));
}
else {
filledForm.get().update(id);
flash("success", Messages.get("controllers.updateSuccess", filledForm.get()));
return GO_HOME;
}
}
else {
return forbidden(views.html.forbidden.render());
}
}
// POST /planes/:id/delete
@Security.Authenticated(Secured.class)
public static Result delete(Long id) {
if (Secured.isAdmin()) {
Plane.find.byId(id).delete();
flash("success", Messages.get("controllers.planes.deleteSuccess"));
return GO_HOME;
}
else {
return forbidden(views.html.forbidden.render());
}
}
}