| 
									
										
										
										
											2016-09-13 18:52:27 +03:00
										 |  |  | package controllers;
 | 
					
						
							| 
									
										
										
										
											2016-10-04 17:54:59 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | import com.fasterxml.jackson.databind.JsonNode;
 | 
					
						
							| 
									
										
										
										
											2016-09-13 18:52:27 +03:00
										 |  |  | import com.fasterxml.jackson.databind.ObjectMapper;
 | 
					
						
							| 
									
										
										
										
											2016-10-04 17:54:59 +02:00
										 |  |  | 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;
 | 
					
						
							| 
									
										
										
										
											2016-09-13 18:52:27 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | public class StudentController extends Controller {
 | 
					
						
							|  |  |  |     public Result create() {
 | 
					
						
							| 
									
										
										
										
											2016-10-04 17:54:59 +02:00
										 |  |  |         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));
 | 
					
						
							| 
									
										
										
										
											2016-09-13 18:52:27 +03:00
										 |  |  |     }
 | 
					
						
							| 
									
										
										
										
											2016-10-04 17:54:59 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     public Result update() {
 | 
					
						
							| 
									
										
										
										
											2016-09-13 18:52:27 +03:00
										 |  |  |         JsonNode json = request().body().asJson();
 | 
					
						
							| 
									
										
										
										
											2016-10-04 17:54:59 +02:00
										 |  |  |         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));
 | 
					
						
							| 
									
										
										
										
											2016-09-13 18:52:27 +03:00
										 |  |  |     }
 | 
					
						
							| 
									
										
										
										
											2016-10-04 17:54:59 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     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));
 | 
					
						
							| 
									
										
										
										
											2016-09-13 18:52:27 +03:00
										 |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-04 17:54:59 +02:00
										 |  |  |     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));
 | 
					
						
							| 
									
										
										
										
											2016-09-13 18:52:27 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     }
 | 
					
						
							| 
									
										
										
										
											2016-10-04 17:54:59 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     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));
 | 
					
						
							| 
									
										
										
										
											2016-09-13 18:52:27 +03:00
										 |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }
 |