Search in sources :

Example 1 with Flag

use of fi.otavanopisto.muikku.model.users.Flag in project muikku by otavanopisto.

the class AcceptanceTestsRESTService method deleteFlag.

@DELETE
@Path("/flags/{FLAGID}")
@RESTPermit(handling = Handling.UNSECURED)
public Response deleteFlag(@PathParam("FLAGID") Long flagId) {
    Flag flag = flagController.findFlagById(flagId);
    if (flag == null) {
        return Response.status(Status.BAD_REQUEST).entity("Flag not found").build();
    }
    flagController.deleteFlag(flag);
    return Response.noContent().build();
}
Also used : Flag(fi.otavanopisto.muikku.model.users.Flag) Path(javax.ws.rs.Path) DELETE(javax.ws.rs.DELETE) RESTPermit(fi.otavanopisto.security.rest.RESTPermit)

Example 2 with Flag

use of fi.otavanopisto.muikku.model.users.Flag in project muikku by otavanopisto.

the class AcceptanceTestsRESTService method deleteFlagShares.

@DELETE
@Path("/flags/share/{FLAGID}")
@RESTPermit(handling = Handling.UNSECURED)
public Response deleteFlagShares(@PathParam("FLAGID") Long flagId) {
    Flag flag = flagController.findFlagById(flagId);
    List<FlagShare> listShares = flagController.listShares(flag);
    for (FlagShare flagShare : listShares) {
        flagController.deleteFlagShare(flagShare);
    }
    return Response.noContent().build();
}
Also used : FlagShare(fi.otavanopisto.muikku.model.users.FlagShare) Flag(fi.otavanopisto.muikku.model.users.Flag) Path(javax.ws.rs.Path) DELETE(javax.ws.rs.DELETE) RESTPermit(fi.otavanopisto.security.rest.RESTPermit)

Example 3 with Flag

use of fi.otavanopisto.muikku.model.users.Flag in project muikku by otavanopisto.

the class UserRESTService method createStudentFlag.

@POST
@Path("/students/{ID}/flags")
@RESTPermit(handling = Handling.INLINE, requireLoggedIn = true)
public Response createStudentFlag(@Context Request request, @PathParam("ID") String id, fi.otavanopisto.muikku.rest.model.StudentFlag payload) {
    if (!sessionController.isLoggedIn()) {
        return Response.status(Status.FORBIDDEN).build();
    }
    SchoolDataIdentifier studentIdentifier = SchoolDataIdentifier.fromId(id);
    if (studentIdentifier == null) {
        return Response.status(Response.Status.BAD_REQUEST).entity(String.format("Invalid studentIdentifier %s", id)).build();
    }
    if (payload.getFlagId() == null) {
        return Response.status(Response.Status.BAD_REQUEST).entity("Missing flagId").build();
    }
    Flag flag = flagController.findFlagById(payload.getFlagId());
    if (flag == null) {
        return Response.status(Status.NOT_FOUND).entity(String.format("Flag #%d not found", payload.getFlagId())).build();
    }
    if (!flagController.hasFlagPermission(flag, sessionController.getLoggedUser())) {
        return Response.status(Status.FORBIDDEN).entity(String.format("You do not have permission to flag students to flag %d", payload.getFlagId())).build();
    }
    return Response.ok(createRestModel(flagController.flagStudent(flag, studentIdentifier))).build();
}
Also used : SchoolDataIdentifier(fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier) UserSchoolDataIdentifier(fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier) Flag(fi.otavanopisto.muikku.model.users.Flag) Path(javax.ws.rs.Path) RESTPermit(fi.otavanopisto.security.rest.RESTPermit) POST(javax.ws.rs.POST)

Example 4 with Flag

use of fi.otavanopisto.muikku.model.users.Flag in project muikku by otavanopisto.

the class UserRESTService method createFlag.

@POST
@Path("/flags/")
@RESTPermit(handling = Handling.INLINE, requireLoggedIn = true)
public Response createFlag(fi.otavanopisto.muikku.rest.model.Flag payload) {
    if (StringUtils.isBlank(payload.getOwnerIdentifier())) {
        return Response.status(Status.BAD_REQUEST).entity("ownerIdentifier is missing").build();
    }
    if (StringUtils.isBlank(payload.getColor())) {
        return Response.status(Status.BAD_REQUEST).entity("color is missing").build();
    }
    if (StringUtils.isBlank(payload.getName())) {
        return Response.status(Status.BAD_REQUEST).entity("name is missing").build();
    }
    SchoolDataIdentifier ownerIdentifier = SchoolDataIdentifier.fromId(payload.getOwnerIdentifier());
    if (ownerIdentifier == null) {
        return Response.status(Status.BAD_REQUEST).entity("ownerIdentifier is malformed").build();
    }
    Flag flag = flagController.createFlag(ownerIdentifier, payload.getName(), payload.getColor(), payload.getDescription());
    return Response.ok(createRestModel(flag)).build();
}
Also used : SchoolDataIdentifier(fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier) UserSchoolDataIdentifier(fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier) Flag(fi.otavanopisto.muikku.model.users.Flag) Path(javax.ws.rs.Path) RESTPermit(fi.otavanopisto.security.rest.RESTPermit) POST(javax.ws.rs.POST)

Example 5 with Flag

use of fi.otavanopisto.muikku.model.users.Flag in project muikku by otavanopisto.

the class UserRESTService method createFlagShare.

@POST
@Path("/flags/{ID}/shares")
@RESTPermit(handling = Handling.INLINE, requireLoggedIn = true)
public Response createFlagShare(@PathParam("ID") Long id, fi.otavanopisto.muikku.rest.model.FlagShare payload) {
    if (!sessionController.isLoggedIn()) {
        return Response.status(Status.UNAUTHORIZED).build();
    }
    Flag flag = flagController.findFlagById(id);
    if (flag == null) {
        return Response.status(Status.NOT_FOUND).entity(String.format("Flag#%d not found", id)).build();
    }
    if (flag.getArchived()) {
        return Response.status(Status.NOT_FOUND).entity(String.format("Flag#%d not found", id)).build();
    }
    if (!flagController.hasFlagPermission(flag, sessionController.getLoggedUser())) {
        return Response.status(Status.FORBIDDEN).entity(String.format("You do not have permission to flag#%d", flag.getId())).build();
    }
    SchoolDataIdentifier userIdentifier = SchoolDataIdentifier.fromId(payload.getUserIdentifier());
    if (userIdentifier == null) {
        return Response.status(Status.BAD_REQUEST).entity("userIdentifier is malformed").build();
    }
    return Response.ok(createRestModel(flagController.createFlagShare(flag, userIdentifier))).build();
}
Also used : SchoolDataIdentifier(fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier) UserSchoolDataIdentifier(fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier) Flag(fi.otavanopisto.muikku.model.users.Flag) Path(javax.ws.rs.Path) RESTPermit(fi.otavanopisto.security.rest.RESTPermit) POST(javax.ws.rs.POST)

Aggregations

Flag (fi.otavanopisto.muikku.model.users.Flag)14 RESTPermit (fi.otavanopisto.security.rest.RESTPermit)11 Path (javax.ws.rs.Path)11 UserSchoolDataIdentifier (fi.otavanopisto.muikku.model.users.UserSchoolDataIdentifier)8 SchoolDataIdentifier (fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier)8 DELETE (javax.ws.rs.DELETE)4 POST (javax.ws.rs.POST)4 FlagShare (fi.otavanopisto.muikku.model.users.FlagShare)3 GET (javax.ws.rs.GET)3 UserEntity (fi.otavanopisto.muikku.model.users.UserEntity)2 WorkspaceEntity (fi.otavanopisto.muikku.model.workspace.WorkspaceEntity)2 WorkspaceUserEntity (fi.otavanopisto.muikku.model.workspace.WorkspaceUserEntity)2 SearchProvider (fi.otavanopisto.muikku.search.SearchProvider)2 SearchResult (fi.otavanopisto.muikku.search.SearchResult)2 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 EntityManager (javax.persistence.EntityManager)2 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)2 FlagStudent (fi.otavanopisto.muikku.model.users.FlagStudent)1