site.graphql 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  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. pageCasing: Boolean
  53. logoText: Boolean
  54. sitemap: Boolean
  55. robots: SiteRobots
  56. features: SiteFeatures
  57. discoverable: Boolean
  58. defaults: SiteDefaults
  59. uploads: SiteUploads
  60. locales: SiteLocales
  61. editors: SiteEditors
  62. theme: SiteTheme
  63. }
  64. type SiteRobots {
  65. index: Boolean
  66. follow: Boolean
  67. }
  68. type SiteFeatures {
  69. ratings: Boolean
  70. ratingsMode: SitePageRatingMode
  71. comments: Boolean
  72. contributions: Boolean
  73. profile: Boolean
  74. reasonForChange: SiteReasonForChangeMode
  75. search: Boolean
  76. }
  77. type SiteDefaults {
  78. tocDepth: PageTocDepth
  79. }
  80. type SiteUploads {
  81. conflictBehavior: SiteUploadConflictBehavior
  82. normalizeFilename: Boolean
  83. }
  84. type SiteLocales {
  85. primary: String
  86. active: [String]
  87. }
  88. type SiteEditors {
  89. asciidoc: SiteEditor
  90. markdown: SiteEditor
  91. wysiwyg: SiteEditor
  92. }
  93. type SiteEditor {
  94. isActive: Boolean
  95. config: JSON
  96. }
  97. type SiteTheme {
  98. dark: Boolean
  99. codeBlocksTheme: String
  100. colorPrimary: String
  101. colorSecondary: String
  102. colorAccent: String
  103. colorHeader: String
  104. colorSidebar: String
  105. injectCSS: String
  106. injectHead: String
  107. injectBody: String
  108. contentWidth: SiteThemeWidth
  109. sidebarPosition: SiteThemePosition
  110. tocPosition: SiteThemePosition
  111. showSharingMenu: Boolean
  112. showPrintBtn: Boolean
  113. baseFont: String
  114. contentFont: String
  115. }
  116. enum SiteThemeWidth {
  117. full
  118. centered
  119. }
  120. enum SiteThemePosition {
  121. off
  122. left
  123. right
  124. }
  125. enum SitePageRatingMode {
  126. off
  127. thumbs
  128. stars
  129. }
  130. enum SiteReasonForChangeMode {
  131. off
  132. optional
  133. required
  134. }
  135. enum SiteUploadConflictBehavior {
  136. overwrite
  137. reject
  138. new
  139. }
  140. type SiteCreateResponse {
  141. operation: Operation
  142. site: Site
  143. }
  144. input SiteUpdateInput {
  145. hostname: String
  146. isEnabled: Boolean
  147. title: String
  148. description: String
  149. company: String
  150. contentLicense: String
  151. footerExtra: String
  152. pageExtensions: String
  153. pageCasing: Boolean
  154. logoText: Boolean
  155. sitemap: Boolean
  156. robots: SiteRobotsInput
  157. features: SiteFeaturesInput
  158. discoverable: Boolean
  159. defaults: SiteDefaultsInput
  160. uploads: SiteUploadsInput
  161. editors: SiteEditorsInput
  162. theme: SiteThemeInput
  163. }
  164. input SiteRobotsInput {
  165. index: Boolean
  166. follow: Boolean
  167. }
  168. input SiteFeaturesInput {
  169. ratings: Boolean
  170. ratingsMode: SitePageRatingMode
  171. comments: Boolean
  172. contributions: Boolean
  173. profile: Boolean
  174. reasonForChange: SiteReasonForChangeMode
  175. search: Boolean
  176. }
  177. input SiteDefaultsInput {
  178. tocDepth: PageTocDepthInput
  179. }
  180. input SiteThemeInput {
  181. dark: Boolean
  182. codeBlocksTheme: String
  183. colorPrimary: String
  184. colorSecondary: String
  185. colorAccent: String
  186. colorHeader: String
  187. colorSidebar: String
  188. injectCSS: String
  189. injectHead: String
  190. injectBody: String
  191. contentWidth: SiteThemeWidth
  192. sidebarPosition: SiteThemePosition
  193. tocPosition: SiteThemePosition
  194. showSharingMenu: Boolean
  195. showPrintBtn: Boolean
  196. baseFont: String
  197. contentFont: String
  198. }
  199. input SiteEditorsInput {
  200. asciidoc: SiteEditorInput
  201. markdown: SiteEditorInput
  202. wysiwyg: SiteEditorInput
  203. }
  204. input SiteEditorInput {
  205. isActive: Boolean
  206. config: JSON
  207. }
  208. input SiteUploadsInput {
  209. conflictBehavior: SiteUploadConflictBehavior
  210. normalizeFilename: Boolean
  211. }