PageRenderTime 48ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/atlassian-rest-refimpl-plugin/src/main/java/com/atlassian/plugins/rest/multipart/MultipartResource.java

https://bitbucket.org/sleberrigaud_atlassian/atlassian-rest
Java | 77 lines | 65 code | 10 blank | 2 comment | 2 complexity | 77e88409728d81e72233430d7fe67d70 MD5 | raw file
  1. package com.atlassian.plugins.rest.multipart;
  2. import com.atlassian.plugins.rest.common.interceptor.InterceptorChain;
  3. import com.atlassian.plugins.rest.common.multipart.FilePart;
  4. import com.atlassian.plugins.rest.common.multipart.MultipartConfig;
  5. import com.atlassian.plugins.rest.common.multipart.MultipartConfigClass;
  6. import com.atlassian.plugins.rest.common.multipart.MultipartFormParam;
  7. import com.atlassian.plugins.rest.common.security.AnonymousAllowed;
  8. import com.atlassian.plugins.rest.interceptor.Message;
  9. import com.atlassian.plugins.rest.interceptor.MessageInterceptor;
  10. import java.util.ArrayList;
  11. import java.util.Collection;
  12. import javax.ws.rs.POST;
  13. import javax.ws.rs.Path;
  14. /**
  15. */
  16. @Path ("/multipart")
  17. @AnonymousAllowed
  18. public class MultipartResource
  19. {
  20. @POST
  21. @Path("single")
  22. public FilePartObject showMultipartSingle(@MultipartFormParam("file")FilePart filePart)
  23. {
  24. return new FilePartObject("file", filePart.isFormField(), filePart.getName(), filePart.getContentType(), filePart.getValue());
  25. }
  26. @POST
  27. @Path("multiple")
  28. public FilePartObjects showMultipartMultiple(@MultipartFormParam("file") Collection<FilePart> fileParts)
  29. {
  30. Collection<FilePartObject> objects = new ArrayList<FilePartObject>();
  31. for (FilePart filePart : fileParts)
  32. {
  33. objects.add(new FilePartObject("file", filePart.isFormField(), filePart.getName(), filePart.getContentType(), filePart.getValue()));
  34. }
  35. return new FilePartObjects(objects);
  36. }
  37. @POST
  38. @Path("config")
  39. @MultipartConfigClass(MultipartResource.SmallMultipartConfig.class)
  40. public FilePartObjects showMultipartConfig(@MultipartFormParam("file") Collection<FilePart> fileParts)
  41. {
  42. Collection<FilePartObject> objects = new ArrayList<FilePartObject>();
  43. for (FilePart filePart : fileParts)
  44. {
  45. objects.add(new FilePartObject("file", filePart.isFormField(), filePart.getName(), filePart.getContentType(), filePart.getValue()));
  46. }
  47. return new FilePartObjects(objects);
  48. }
  49. @POST
  50. @Path("fileName")
  51. @InterceptorChain(MessageInterceptor.class)
  52. public Message returnFileName(@MultipartFormParam("file") FilePart filePart)
  53. {
  54. return new Message(filePart.getName());
  55. }
  56. public static class SmallMultipartConfig implements MultipartConfig
  57. {
  58. public long getMaxFileSize()
  59. {
  60. return 10;
  61. }
  62. public long getMaxSize()
  63. {
  64. return 1000;
  65. }
  66. }
  67. }