Search in sources :

Example 6 with File64VO

use of org.olat.restapi.support.vo.File64VO in project openolat by klemens.

the class ForumWebService method replyToPost.

private Response replyToPost(Long messageKey, ReplyVO reply, Long authorKey, HttpServletRequest httpRequest, UriInfo uriInfo) {
    Identity identity = getIdentity(httpRequest);
    if (identity == null) {
        return Response.serverError().status(Status.UNAUTHORIZED).build();
    }
    Identity author;
    if (isAdmin(httpRequest)) {
        if (authorKey == null) {
            author = identity;
        } else {
            author = getMessageAuthor(authorKey, httpRequest);
        }
    } else {
        if (authorKey == null) {
            author = identity;
        } else if (authorKey.equals(identity.getKey())) {
            author = identity;
        } else {
            return Response.serverError().status(Status.UNAUTHORIZED).build();
        }
    }
    // load message
    Message mess = fom.loadMessage(messageKey);
    if (mess == null) {
        return Response.serverError().status(Status.NOT_FOUND).build();
    }
    if (!forum.equalsByPersistableKey(mess.getForum())) {
        return Response.serverError().status(Status.CONFLICT).build();
    }
    // creating the thread (a message without a parent message)
    Message newMessage = fom.createMessage(forum, author, false);
    newMessage.setTitle(reply.getTitle());
    newMessage.setBody(reply.getBody());
    fom.replyToMessage(newMessage, mess);
    if (reply.getAttachments() != null) {
        for (File64VO attachment : reply.getAttachments()) {
            byte[] fileAsBytes = Base64.decodeBase64(attachment.getFile());
            InputStream in = new ByteArrayInputStream(fileAsBytes);
            attachToPost(newMessage, attachment.getFilename(), in, httpRequest);
        }
    }
    MessageVO vo = new MessageVO(newMessage);
    vo.setAttachments(getAttachments(newMessage, uriInfo));
    return Response.ok(vo).build();
}
Also used : Message(org.olat.modules.fo.Message) ByteArrayInputStream(java.io.ByteArrayInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) File64VO(org.olat.restapi.support.vo.File64VO) Identity(org.olat.core.id.Identity) RestSecurityHelper.getIdentity(org.olat.restapi.security.RestSecurityHelper.getIdentity)

Aggregations

InputStream (java.io.InputStream)6 File64VO (org.olat.restapi.support.vo.File64VO)6 BufferedImage (java.awt.image.BufferedImage)4 URI (java.net.URI)4 HttpResponse (org.apache.http.HttpResponse)4 HttpPut (org.apache.http.client.methods.HttpPut)4 Test (org.junit.Test)4 VFSContainer (org.olat.core.util.vfs.VFSContainer)4 VFSItem (org.olat.core.util.vfs.VFSItem)4 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)4 ForumManager (org.olat.modules.fo.manager.ForumManager)4 MessageVO (org.olat.modules.fo.restapi.MessageVO)4 ByteArrayInputStream (java.io.ByteArrayInputStream)2 FileInputStream (java.io.FileInputStream)2 HttpGet (org.apache.http.client.methods.HttpGet)2 Identity (org.olat.core.id.Identity)2 Message (org.olat.modules.fo.Message)2 ReplyVO (org.olat.modules.fo.restapi.ReplyVO)2 RestSecurityHelper.getIdentity (org.olat.restapi.security.RestSecurityHelper.getIdentity)2 FileVO (org.olat.restapi.support.vo.FileVO)2