81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
# ===============================================
 | 
						|
# NAVIGATION
 | 
						|
# ===============================================
 | 
						|
 | 
						|
extend type Query {
 | 
						|
  navigation: NavigationQuery
 | 
						|
}
 | 
						|
 | 
						|
extend type Mutation {
 | 
						|
  navigation: NavigationMutation
 | 
						|
}
 | 
						|
 | 
						|
# -----------------------------------------------
 | 
						|
# QUERIES
 | 
						|
# -----------------------------------------------
 | 
						|
 | 
						|
type NavigationQuery {
 | 
						|
  tree: [NavigationTree]! @auth(requires: ["manage:navigation", "manage:system"])
 | 
						|
  config: NavigationConfig! @auth(requires: ["manage:navigation", "manage:system"])
 | 
						|
}
 | 
						|
 | 
						|
# -----------------------------------------------
 | 
						|
# MUTATIONS
 | 
						|
# -----------------------------------------------
 | 
						|
 | 
						|
type NavigationMutation {
 | 
						|
  updateTree(
 | 
						|
    tree: [NavigationTreeInput]!
 | 
						|
  ): DefaultResponse @auth(requires: ["manage:navigation", "manage:system"])
 | 
						|
  updateConfig(
 | 
						|
    mode: NavigationMode!
 | 
						|
  ): DefaultResponse @auth(requires: ["manage:navigation", "manage:system"])
 | 
						|
}
 | 
						|
 | 
						|
# -----------------------------------------------
 | 
						|
# TYPES
 | 
						|
# -----------------------------------------------
 | 
						|
 | 
						|
type NavigationTree {
 | 
						|
  locale: String!
 | 
						|
  items: [NavigationItem]!
 | 
						|
}
 | 
						|
 | 
						|
input NavigationTreeInput {
 | 
						|
  locale: String!
 | 
						|
  items: [NavigationItemInput]!
 | 
						|
}
 | 
						|
 | 
						|
type NavigationItem {
 | 
						|
  id: String!
 | 
						|
  kind: String!
 | 
						|
  label: String
 | 
						|
  icon: String
 | 
						|
  targetType: String
 | 
						|
  target: String
 | 
						|
  visibilityMode: String
 | 
						|
  visibilityGroups: [Int]
 | 
						|
}
 | 
						|
 | 
						|
input NavigationItemInput {
 | 
						|
  id: String!
 | 
						|
  kind: String!
 | 
						|
  label: String
 | 
						|
  icon: String
 | 
						|
  targetType: String
 | 
						|
  target: String
 | 
						|
  visibilityMode: String
 | 
						|
  visibilityGroups: [Int]
 | 
						|
}
 | 
						|
 | 
						|
type NavigationConfig {
 | 
						|
  mode: NavigationMode!
 | 
						|
}
 | 
						|
 | 
						|
enum NavigationMode {
 | 
						|
  NONE
 | 
						|
  TREE
 | 
						|
  MIXED
 | 
						|
  STATIC
 | 
						|
}
 |