Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. import sangria.macros.derive._
  2. import sangria.schema._
  3.  
  4. // ... other entities
  5.  
  6. implicit val MaterialType = ObjectType(
  7. "Material",
  8. "",
  9.  
  10. fields[Unit, Material](
  11. Field("id", IntType,
  12. description = Some("Id of Material"),
  13. resolve = _.value.id)
  14. , Field("courseId", IntType,
  15. description = Some("Parent Id of course"),
  16. resolve = _.value.courseId)
  17. , Field("quantity", FloatType,
  18. description = Some("Cantidad"),
  19. resolve = _.value.quantity)
  20. , Field("item", ItemType,
  21. description = Some("Ítem (libro o material escolar)"),
  22. resolve = c ⇒ itemFetcher.defer(c.value.item)
  23. )
  24. )
  25. )
  26.  
  27. implicit val CourseType = ObjectType(
  28. "Course",
  29. "",
  30.  
  31. fields[Unit, Course](
  32. Field("id", IntType,
  33. description = Some("Id of Course"),
  34. resolve = _.value.id)
  35. , Field("teachingCenterId", IntType,
  36. description = Some("Parent Id of teachingCenter"),
  37. resolve = _.value.teachingCenterId)
  38. , Field("name", StringType,
  39. description = Some("Nombre del curso"),
  40. resolve = _.value.name)
  41. , Field("cycle", StringType,
  42. description = Some("Ciclo formativo"),
  43. resolve = _.value.cycle)
  44. , Field("materials", OptionType(ListType(MaterialType)),
  45. description = Some("Libros y material escolar"),
  46. arguments = Limit :: Offset :: Search :: Nil,
  47.  
  48. resolve = c => MaterialDeferred(c.value.materials, c arg Limit, c arg Offset, c arg Search)
  49. )
  50. )
  51. )
  52.  
  53. implicit val TeachingCenterType = ObjectType(
  54. "TeachingCenter",
  55. "",
  56.  
  57. fields[Unit, TeachingCenter](
  58. Field("id", IntType,
  59. description = Some("Id of TeachingCenter"),
  60. resolve = _.value.id)
  61. , Field("name", StringType,
  62. description = Some("Nombre del centro"),
  63. resolve = _.value.name)
  64. , Field("email", OptionType(StringType),
  65. description = Some("Dirección de correo electrónico"),
  66. resolve = _.value.email)
  67. , Field("courses", OptionType(ListType(CourseType)),
  68. description = Some("Cursos"),
  69. arguments = Limit :: Offset :: Search :: Nil,
  70. resolve = c => CourseDeferred(c.value.courses, c arg Limit, c arg Offset, c arg Search)
  71. )
  72. )
  73. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement