Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. let R = require('ramda');
  2.  
  3. // JSON.stringify(crudOpenApiEndpoints({ single: 'app' }))
  4. function crudOpenApiEndpoints ({ single, plural = single + 's', id = 'id', type = 'integer' }) {
  5. let up = (s) => s[0].toUpperCase() + s.substring(1);
  6. let $ref = `#/definitions/${up(single)}`;
  7. let resp = R.merge({ description: 'OK' });
  8. let responses = { 204: resp({}) }; // empty non-GET response
  9. let idPar = { name: id, in: 'path', required: true, type };
  10. let bodyPar = { name: single, in: 'body', required: true, schema: { $ref } };
  11. return {
  12. [`/${plural}`]: {
  13. get: {
  14. responses: {
  15. 200: resp({
  16. // schema: { type: 'array', items: { $ref } },
  17. schema: { $ref: `#/definitions/${up(plural)}` },
  18. }),
  19. },
  20. },
  21. post: {
  22. parameters: [bodyPar],
  23. responses,
  24. },
  25. },
  26. [`/${plural}/{id}`]: {
  27. get: {
  28. parameters: [idPar],
  29. responses: {
  30. 200: resp({
  31. schema: { $ref },
  32. }),
  33. },
  34. },
  35. delete: {
  36. parameters: [idPar],
  37. responses,
  38. },
  39. put: {
  40. parameters: [idPar, bodyPar],
  41. responses,
  42. },
  43. },
  44. };
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement