Search in sources :

Example 26 with ForumThread

use of fi.otavanopisto.muikku.plugins.forum.model.ForumThread in project muikku by otavanopisto.

the class ForumThreadDAO method listLatestOrdered.

public List<ForumThread> listLatestOrdered(List<ForumArea> forumAreas, int firstResult, int maxResults) {
    EntityManager entityManager = getEntityManager();
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<ForumThread> criteria = criteriaBuilder.createQuery(ForumThread.class);
    Root<ForumThread> root = criteria.from(ForumThread.class);
    criteria.select(root);
    criteria.where(criteriaBuilder.and(root.get(ForumThread_.forumArea).in(forumAreas), criteriaBuilder.equal(root.get(ForumThread_.archived), Boolean.FALSE)));
    criteria.orderBy(criteriaBuilder.desc(root.get(ForumThread_.sticky)), criteriaBuilder.desc(root.get(ForumThread_.updated)));
    TypedQuery<ForumThread> query = entityManager.createQuery(criteria);
    query.setFirstResult(firstResult);
    query.setMaxResults(maxResults);
    return query.getResultList();
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) EntityManager(javax.persistence.EntityManager) ForumThread(fi.otavanopisto.muikku.plugins.forum.model.ForumThread)

Example 27 with ForumThread

use of fi.otavanopisto.muikku.plugins.forum.model.ForumThread in project muikku by otavanopisto.

the class ForumThreadDAO method listByForumArea.

public List<ForumThread> listByForumArea(ForumArea forumArea) {
    EntityManager entityManager = getEntityManager();
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<ForumThread> criteria = criteriaBuilder.createQuery(ForumThread.class);
    Root<ForumThread> root = criteria.from(ForumThread.class);
    criteria.select(root);
    criteria.where(criteriaBuilder.and(criteriaBuilder.equal(root.get(ForumThread_.forumArea), forumArea), criteriaBuilder.equal(root.get(ForumThread_.archived), Boolean.FALSE)));
    return entityManager.createQuery(criteria).getResultList();
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) EntityManager(javax.persistence.EntityManager) ForumThread(fi.otavanopisto.muikku.plugins.forum.model.ForumThread)

Example 28 with ForumThread

use of fi.otavanopisto.muikku.plugins.forum.model.ForumThread in project muikku by otavanopisto.

the class ForumThreadDAO method listByForumAreaOrdered.

public List<ForumThread> listByForumAreaOrdered(ForumArea forumArea, int firstResult, int maxResults, boolean includeArchived) {
    EntityManager entityManager = getEntityManager();
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<ForumThread> criteria = criteriaBuilder.createQuery(ForumThread.class);
    Root<ForumThread> root = criteria.from(ForumThread.class);
    criteria.select(root);
    if (!includeArchived) {
        criteria.where(criteriaBuilder.and(criteriaBuilder.equal(root.get(ForumThread_.forumArea), forumArea), criteriaBuilder.equal(root.get(ForumThread_.archived), Boolean.FALSE)));
    } else {
        criteria.where(criteriaBuilder.equal(root.get(ForumThread_.forumArea), forumArea));
    }
    criteria.orderBy(criteriaBuilder.desc(root.get(ForumThread_.sticky)), criteriaBuilder.desc(root.get(ForumThread_.updated)));
    TypedQuery<ForumThread> query = entityManager.createQuery(criteria);
    query.setFirstResult(firstResult);
    query.setMaxResults(maxResults);
    return query.getResultList();
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) EntityManager(javax.persistence.EntityManager) ForumThread(fi.otavanopisto.muikku.plugins.forum.model.ForumThread)

Example 29 with ForumThread

use of fi.otavanopisto.muikku.plugins.forum.model.ForumThread in project muikku by otavanopisto.

the class AcceptanceTestsRESTService method deleteDiscussion.

@DELETE
@Path("/discussiongroups/{GROUPID}/discussions/{DISCUSSIONID}")
@RESTPermit(handling = Handling.UNSECURED)
public Response deleteDiscussion(@PathParam("GROUPID") Long groupId, @PathParam("DISCUSSIONID") Long discussionId) {
    ForumAreaGroup group = forumController.findForumAreaGroup(groupId);
    if (group == null) {
        return Response.status(Status.NOT_FOUND).entity("Group not found").build();
    }
    ForumArea forumArea = forumController.getForumArea(discussionId);
    if (forumArea == null) {
        return Response.status(Status.NOT_FOUND).entity("Discussion not found").build();
    }
    List<ForumThread> threads = forumController.listForumThreads(forumArea, 0, Integer.MAX_VALUE, true);
    for (ForumThread thread : threads) {
        List<ForumThreadReply> replies = forumController.listForumThreadReplies(thread, 0, Integer.MAX_VALUE, true);
        for (ForumThreadReply reply : replies) {
            forumController.deleteReply(reply);
        }
        forumController.deleteThread(thread);
    }
    forumController.deleteArea(forumArea);
    return Response.noContent().build();
}
Also used : ForumAreaGroup(fi.otavanopisto.muikku.plugins.forum.model.ForumAreaGroup) ForumThread(fi.otavanopisto.muikku.plugins.forum.model.ForumThread) ForumArea(fi.otavanopisto.muikku.plugins.forum.model.ForumArea) EnvironmentForumArea(fi.otavanopisto.muikku.plugins.forum.model.EnvironmentForumArea) WorkspaceForumArea(fi.otavanopisto.muikku.plugins.forum.model.WorkspaceForumArea) ForumThreadReply(fi.otavanopisto.muikku.plugins.forum.model.ForumThreadReply) Path(javax.ws.rs.Path) DELETE(javax.ws.rs.DELETE) RESTPermit(fi.otavanopisto.security.rest.RESTPermit)

Example 30 with ForumThread

use of fi.otavanopisto.muikku.plugins.forum.model.ForumThread in project muikku by otavanopisto.

the class AcceptanceTestsRESTService method deleteDiscussionThread.

@DELETE
@Path("/discussiongroups/{GROUPID}/discussions/{DISCUSSIONID}/threads/{ID}")
@RESTPermit(handling = Handling.UNSECURED)
public Response deleteDiscussionThread(@PathParam("GROUPID") Long groupId, @PathParam("DISCUSSIONID") Long discussionId, @PathParam("ID") Long id) {
    ForumAreaGroup group = forumController.findForumAreaGroup(groupId);
    if (group == null) {
        return Response.status(Status.NOT_FOUND).entity("Group not found").build();
    }
    ForumArea forumArea = forumController.getForumArea(discussionId);
    if (forumArea == null) {
        return Response.status(Status.NOT_FOUND).entity("Discussion not found").build();
    }
    ForumThread thread = forumController.getForumThread(id);
    if (thread == null) {
        return Response.status(Status.NOT_FOUND).entity("Thread not found").build();
    }
    forumController.deleteThread(thread);
    return Response.noContent().build();
}
Also used : ForumAreaGroup(fi.otavanopisto.muikku.plugins.forum.model.ForumAreaGroup) ForumThread(fi.otavanopisto.muikku.plugins.forum.model.ForumThread) ForumArea(fi.otavanopisto.muikku.plugins.forum.model.ForumArea) EnvironmentForumArea(fi.otavanopisto.muikku.plugins.forum.model.EnvironmentForumArea) WorkspaceForumArea(fi.otavanopisto.muikku.plugins.forum.model.WorkspaceForumArea) Path(javax.ws.rs.Path) DELETE(javax.ws.rs.DELETE) RESTPermit(fi.otavanopisto.security.rest.RESTPermit)

Aggregations

ForumThread (fi.otavanopisto.muikku.plugins.forum.model.ForumThread)32 RESTPermit (fi.otavanopisto.security.rest.RESTPermit)24 Path (javax.ws.rs.Path)24 ForumArea (fi.otavanopisto.muikku.plugins.forum.model.ForumArea)22 WorkspaceForumArea (fi.otavanopisto.muikku.plugins.forum.model.WorkspaceForumArea)15 EnvironmentForumArea (fi.otavanopisto.muikku.plugins.forum.model.EnvironmentForumArea)14 WorkspaceEntity (fi.otavanopisto.muikku.model.workspace.WorkspaceEntity)12 ForumThreadReply (fi.otavanopisto.muikku.plugins.forum.model.ForumThreadReply)11 GET (javax.ws.rs.GET)10 ArrayList (java.util.ArrayList)6 DELETE (javax.ws.rs.DELETE)6 EntityManager (javax.persistence.EntityManager)5 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)5 ForumAreaGroup (fi.otavanopisto.muikku.plugins.forum.model.ForumAreaGroup)4 POST (javax.ws.rs.POST)4 PUT (javax.ws.rs.PUT)4 Document (org.jsoup.nodes.Document)2