package route import model.JSONResponse import model.ModelRole import ro.pippo.controller.* import ro.pippo.controller.extractor.Param import service.Service import util.responseInvalidParams import util.responseNotFoundById import util.responseOperationFailed import util.responseSuccess @Path("/role") class CtrlRole : Controller() { val service = Service() @GET("/{id: [0-9]+}") @Produces(Produces.JSON) fun getRoleById(@Param id: Int): JSONResponse { val role = service.getRoleById(id) if (role == null) { return responseNotFoundById() } return responseSuccess(role) } @GET("/byUserId/{userId: [0-9]+}") @Produces(Produces.JSON) fun getRoleByUserId(@Param userId: Int): JSONResponse { val user = service.getUserById(userId) if (user == null) { return responseNotFoundById() } val role = service.getRoleByUserId(userId) if (role == null) { return responseNotFoundById() } return responseSuccess(role) } @POST("/") @Produces(Produces.JSON) fun addRole(): JSONResponse { val role: ModelRole? = request.createEntityFromBody(ModelRole::class.java) if (role == null) { return responseInvalidParams() } val isSuccess = service.saveRole(role) return if (isSuccess) { responseSuccess(role) } else { responseOperationFailed() } } @POST("/del/{id: [0-9]+}") @Produces(Produces.JSON) fun delRole(@Param roleId: Int): JSONResponse { val role = service.getRoleById(roleId) if (role == null) { responseNotFoundById() } val isSuccess = service.deleteRole(roleId) return if (isSuccess) { responseSuccess(roleId) } else { responseOperationFailed() } } @POST("/{id: [0-9]+}") @Produces(Produces.JSON) fun updateRole():JSONResponse { val role: ModelRole? = request.createEntityFromBody(ModelRole::class.java) if (role == null) { return responseNotFoundById() } val isSuccess = service.updateRole(role) return if (isSuccess) { responseSuccess(role) } else { responseOperationFailed() } } }