site.graphql 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. # ===============================================
  2. # SITES
  3. # ===============================================
  4. extend type Query {
  5. sites: [Site]
  6. siteById (
  7. id: UUID!
  8. ): Site
  9. siteByHostname (
  10. hostname: String!
  11. exact: Boolean!
  12. ): Site
  13. }
  14. extend type Mutation {
  15. createSite (
  16. hostname: String!
  17. title: String!
  18. ): SiteCreateResponse
  19. updateSite (
  20. id: UUID!
  21. patch: SiteUpdateInput!
  22. ): DefaultResponse
  23. uploadSiteLogo (
  24. id: UUID!
  25. image: Upload!
  26. ): DefaultResponse
  27. uploadSiteFavicon (
  28. id: UUID!
  29. image: Upload!
  30. ): DefaultResponse
  31. uploadSiteLoginBg (
  32. id: UUID!
  33. image: Upload!
  34. ): DefaultResponse
  35. deleteSite (
  36. id: UUID!
  37. ): DefaultResponse
  38. }
  39. # -----------------------------------------------
  40. # TYPES
  41. # -----------------------------------------------
  42. type Site {
  43. id: UUID
  44. hostname: String
  45. isEnabled: Boolean
  46. title: String
  47. description: String
  48. company: String
  49. contentLicense: String
  50. footerExtra: String
  51. pageExtensions: String
  52. logoText: Boolean
  53. sitemap: Boolean
  54. robots: SiteRobots
  55. features: SiteFeatures
  56. defaults: SiteDefaults
  57. uploads: SiteUploads
  58. locale: String
  59. localeNamespaces: [String]
  60. localeNamespacing: Boolean
  61. theme: SiteTheme
  62. }
  63. type SiteRobots {
  64. index: Boolean
  65. follow: Boolean
  66. }
  67. type SiteFeatures {
  68. ratings: Boolean
  69. ratingsMode: SitePageRatingMode
  70. comments: Boolean
  71. contributions: Boolean
  72. profile: Boolean
  73. reasonForChange: SiteReasonForChangeMode
  74. search: Boolean
  75. }
  76. type SiteDefaults {
  77. timezone: String
  78. dateFormat: String
  79. timeFormat: String
  80. tocDepth: PageTocDepth
  81. }
  82. type SiteUploads {
  83. conflictBehavior: SiteUploadConflictBehavior
  84. normalizeFilename: Boolean
  85. }
  86. type SiteLocale {
  87. locale: String
  88. autoUpdate: Boolean
  89. namespacing: Boolean
  90. namespaces: [String]
  91. }
  92. type SiteTheme {
  93. dark: Boolean
  94. colorPrimary: String
  95. colorSecondary: String
  96. colorAccent: String
  97. colorHeader: String
  98. colorSidebar: String
  99. injectCSS: String
  100. injectHead: String
  101. injectBody: String
  102. contentWidth: SiteThemeWidth
  103. sidebarPosition: SiteThemePosition
  104. tocPosition: SiteThemePosition
  105. showSharingMenu: Boolean
  106. showPrintBtn: Boolean
  107. baseFont: String
  108. contentFont: String
  109. }
  110. enum SiteThemeWidth {
  111. full
  112. centered
  113. }
  114. enum SiteThemePosition {
  115. off
  116. left
  117. right
  118. }
  119. enum SitePageRatingMode {
  120. off
  121. thumbs
  122. stars
  123. }
  124. enum SiteReasonForChangeMode {
  125. off
  126. optional
  127. required
  128. }
  129. enum SiteUploadConflictBehavior {
  130. overwrite
  131. reject
  132. new
  133. }
  134. type SiteCreateResponse {
  135. operation: Operation
  136. site: Site
  137. }
  138. input SiteUpdateInput {
  139. hostname: String
  140. isEnabled: Boolean
  141. title: String
  142. description: String
  143. company: String
  144. contentLicense: String
  145. footerExtra: String
  146. pageExtensions: String
  147. logoText: Boolean
  148. sitemap: Boolean
  149. robots: SiteRobotsInput
  150. features: SiteFeaturesInput
  151. defaults: SiteDefaultsInput
  152. uploads: SiteUploadsInput
  153. theme: SiteThemeInput
  154. }
  155. input SiteRobotsInput {
  156. index: Boolean
  157. follow: Boolean
  158. }
  159. input SiteFeaturesInput {
  160. ratings: Boolean
  161. ratingsMode: SitePageRatingMode
  162. comments: Boolean
  163. contributions: Boolean
  164. profile: Boolean
  165. reasonForChange: SiteReasonForChangeMode
  166. search: Boolean
  167. }
  168. input SiteDefaultsInput {
  169. timezone: String
  170. dateFormat: String
  171. timeFormat: String
  172. tocDepth: PageTocDepthInput
  173. }
  174. input SiteThemeInput {
  175. dark: Boolean
  176. colorPrimary: String
  177. colorSecondary: String
  178. colorAccent: String
  179. colorHeader: String
  180. colorSidebar: String
  181. injectCSS: String
  182. injectHead: String
  183. injectBody: String
  184. contentWidth: SiteThemeWidth
  185. sidebarPosition: SiteThemePosition
  186. tocPosition: SiteThemePosition
  187. showSharingMenu: Boolean
  188. showPrintBtn: Boolean
  189. baseFont: String
  190. contentFont: String
  191. }
  192. input SiteUploadsInput {
  193. conflictBehavior: SiteUploadConflictBehavior
  194. normalizeFilename: Boolean
  195. }