package fr.ippon.tatami.web.rest; import com.yammer.metrics.annotation.Timed; import fr.ippon.tatami.domain.Attachment; import fr.ippon.tatami.service.AttachmentService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.inject.Inject; import java.util.ArrayList; import java.util.Collection; @Controller public class AttachmentController { @Inject private AttachmentService attachmentService; /** * GET /attachments -> get the attachments list */ @RequestMapping(value = "/rest/attachments", method = RequestMethod.GET, produces = "application/json") @ResponseBody @Timed public Collection<Attachment> getAttachments( @RequestParam(required = false) Integer pagination, @RequestParam(required = false) String finish) { if (pagination == null) { pagination = 10; } Collection<String> attachmentIds = attachmentService.getAttachmentIdsForCurrentUser(pagination, finish); Collection<Attachment> attachments = new ArrayList<Attachment>(); for (String attachmentId : attachmentIds) { attachments.add(attachmentService.getAttachmentById(attachmentId)); } return attachments; } /** * GET /attachment/{attachmentId} -> get a specific attachment */ @RequestMapping(value = "/rest/attachments/{attachmentId}", method = RequestMethod.GET, produces = "application/json") @ResponseBody @Timed public Attachment getAttachmentById(@PathVariable("attachmentId") String attachmentId) { return attachmentService.getAttachmentById(attachmentId); } /** * DELETE /attachment/{attachmentId} -> delete a specific attachment */ @RequestMapping(value = "/rest/attachments/{attachmentId}", method = RequestMethod.DELETE, produces = "application/json") @ResponseBody @Timed public Attachment DeleteAttachment(@PathVariable("attachmentId") String attachmentId) { Attachment attachment = attachmentService.getAttachmentById(attachmentId); attachmentService.deleteAttachment(attachment); return attachment; } /** * GET /attachment/quota -> get quota in % for the domain */ @RequestMapping(value = "/rest/attachments/quota", method = RequestMethod.GET, produces = "application/json") @ResponseBody public Collection<Long> getDomainQuota() { return attachmentService.getDomainQuota(); } }