cowr_upgram/src/main/java/route/CtrlPerm.kt

123 lines
3.3 KiB
Kotlin
Raw Normal View History

2017-09-25 10:06:58 +08:00
package route
import model.JSONResponse
import model.ModelPerm
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("/perm")
class CtrlPerm : Controller() {
private val service = Service()
@GET("/{id: [0-9]+}")
@Produces(Produces.JSON)
fun getPermById(@Param id: Int): JSONResponse {
val perm = service.getPermById(id)
return if (perm == null) {
responseNotFoundById()
} else {
responseSuccess(perm)
}
}
@POST("/byRole/{roleId: [0-9]+}")
@Produces(Produces.JSON)
fun getPermByRoleId(@Param roleId: Int): JSONResponse {
val role = service.getRoleById(roleId)
if (role == null) {
return responseNotFoundById()
}
val perms = service.getPermByRoleId(roleId)
return responseSuccess(perms)
}
@POST("/")
@Produces(Produces.JSON)
fun addPerm(): JSONResponse {
val perm: ModelPerm? = request.createEntityFromBody(ModelPerm::class.java)
if (perm == null) {
return responseInvalidParams()
}
val isSuccess = service.savePerm(perm)
return if (isSuccess) {
responseSuccess(perm)
} else {
responseOperationFailed()
}
}
@POST("/{id: [0-9]+}")
@Produces(Produces.JSON)
fun updatePerm(): JSONResponse {
val perm: ModelPerm? = request.createEntityFromBody(ModelPerm::class.java)
if (perm == null) {
return responseInvalidParams()
}
val isSuccess = service.updatePerm(perm)
return if (isSuccess) {
responseSuccess(perm)
} else {
responseOperationFailed()
}
}
@POST("/del/{id: [0-9]+}")
@Produces(Produces.JSON)
fun deletePerm(@Param id: Int): JSONResponse {
val perm = service.getPermById(id)
if (perm == null) {
return responseNotFoundById()
}
val isSuccess = service.deletePerm(id)
return if (isSuccess) {
responseSuccess(id)
} else {
responseOperationFailed()
}
}
@POST("/bindRole/{permId: [0-9]+}/{roleId: [0-9]+}")
@Produces(Produces.JSON)
fun bindPermToRole(@Param permId: Int,@Param roleId: Int): JSONResponse {
val perm = service.getPermById(permId)
val role = service.getRoleById(roleId)
if (perm == null || role == null) {
return responseNotFoundById()
}
val isSuccess = service.bindPermToRole(permId, roleId)
return if (isSuccess) {
responseSuccess(true)
} else {
responseOperationFailed()
}
}
@POST("/unbindRole/{permId: [0-9]+}/{roleId: [0-9]+}")
@Produces(Produces.JSON)
fun unbindPermToRole(@Param permId: Int,@Param roleId: Int): JSONResponse {
val perm = service.getPermById(permId)
val role = service.getRoleById(roleId)
if (perm == null || role == null) {
return responseNotFoundById()
}
val isSuccess = service.unbindPermToRole(permId, roleId)
return if (isSuccess) {
responseSuccess(true)
} else {
responseOperationFailed()
}
}
}