64 lines
2.2 KiB
Java
64 lines
2.2 KiB
Java
package controllers;
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import models.Student;
|
|
import models.StudentStore;
|
|
import play.libs.Json;
|
|
import play.mvc.Controller;
|
|
import play.mvc.Result;
|
|
import util.Util;
|
|
|
|
import java.util.Set;
|
|
|
|
public class StudentController extends Controller {
|
|
public Result create() {
|
|
JsonNode json = request().body().asJson();
|
|
if (json == null) {
|
|
return badRequest(Util.createResponse("Expecting Json data", false));
|
|
}
|
|
Student student = StudentStore.getInstance().addStudent(Json.fromJson(json, Student.class));
|
|
JsonNode jsonObject = Json.toJson(student);
|
|
return created(Util.createResponse(jsonObject, true));
|
|
}
|
|
|
|
public Result update() {
|
|
JsonNode json = request().body().asJson();
|
|
if (json == null) {
|
|
return badRequest(Util.createResponse("Expecting Json data", false));
|
|
}
|
|
Student student = StudentStore.getInstance().updateStudent(Json.fromJson(json, Student.class));
|
|
if (student == null) {
|
|
return notFound(Util.createResponse("Student not found", false));
|
|
}
|
|
|
|
JsonNode jsonObject = Json.toJson(student);
|
|
return ok(Util.createResponse(jsonObject, true));
|
|
}
|
|
|
|
public Result retrieve(int id) {
|
|
if (StudentStore.getInstance().getStudent(id) == null) {
|
|
return notFound(Util.createResponse("Student with id:" + id + " not found", false));
|
|
}
|
|
JsonNode jsonObjects = Json.toJson(StudentStore.getInstance().getStudent(id));
|
|
return ok(Util.createResponse(jsonObjects, true));
|
|
}
|
|
|
|
public Result listStudents() {
|
|
Set<Student> result = StudentStore.getInstance().getAllStudents();
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
JsonNode jsonData = mapper.convertValue(result, JsonNode.class);
|
|
return ok(Util.createResponse(jsonData, true));
|
|
|
|
}
|
|
|
|
public Result delete(int id) {
|
|
if (!StudentStore.getInstance().deleteStudent(id)) {
|
|
return notFound(Util.createResponse("Student with id:" + id + " not found", false));
|
|
}
|
|
return ok(Util.createResponse("Student with id:" + id + " deleted", true));
|
|
}
|
|
|
|
}
|