96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
# ===============================================
 | 
						|
# ANALYTICS
 | 
						|
# ===============================================
 | 
						|
 | 
						|
extend type Query {
 | 
						|
  analytics: AnalyticsQuery
 | 
						|
}
 | 
						|
 | 
						|
extend type Mutation {
 | 
						|
  analytics: AnalyticsMutation
 | 
						|
}
 | 
						|
 | 
						|
# -----------------------------------------------
 | 
						|
# QUERIES
 | 
						|
# -----------------------------------------------
 | 
						|
 | 
						|
"""
 | 
						|
Queries for Analytics
 | 
						|
"""
 | 
						|
type AnalyticsQuery {
 | 
						|
  """
 | 
						|
  Fetch list of Analytics providers and their configuration
 | 
						|
  """
 | 
						|
  providers(
 | 
						|
    "Return only active providers"
 | 
						|
    isEnabled: Boolean
 | 
						|
  ): [AnalyticsProvider] @auth(requires: ["manage:system"])
 | 
						|
}
 | 
						|
 | 
						|
# -----------------------------------------------
 | 
						|
# MUTATIONS
 | 
						|
# -----------------------------------------------
 | 
						|
 | 
						|
"""
 | 
						|
Mutations for Analytics
 | 
						|
"""
 | 
						|
type AnalyticsMutation {
 | 
						|
  """
 | 
						|
  Update a list of Analytics providers and their configuration
 | 
						|
  """
 | 
						|
  updateProviders(
 | 
						|
    "List of providers"
 | 
						|
    providers: [AnalyticsProviderInput]!
 | 
						|
  ): DefaultResponse @auth(requires: ["manage:system"])
 | 
						|
}
 | 
						|
 | 
						|
# -----------------------------------------------
 | 
						|
# TYPES
 | 
						|
# -----------------------------------------------
 | 
						|
 | 
						|
"""
 | 
						|
Analytics Provider
 | 
						|
"""
 | 
						|
type AnalyticsProvider {
 | 
						|
  "Is the provider active"
 | 
						|
  isEnabled: Boolean!
 | 
						|
 | 
						|
  "Unique identifier for this provider"
 | 
						|
  key: String!
 | 
						|
 | 
						|
  "List of configuration properties, formatted as stringified JSON objects"
 | 
						|
  props: [String]
 | 
						|
 | 
						|
  "Name of the provider"
 | 
						|
  title: String!
 | 
						|
 | 
						|
  "Short description of the provider"
 | 
						|
  description: String
 | 
						|
 | 
						|
  "Is the provider available for use"
 | 
						|
  isAvailable: Boolean
 | 
						|
 | 
						|
  "Path to the provider logo"
 | 
						|
  logo: String
 | 
						|
 | 
						|
  "Website of the provider"
 | 
						|
  website: String
 | 
						|
 | 
						|
  "Configuration values for this provider"
 | 
						|
  config: [KeyValuePair]
 | 
						|
}
 | 
						|
 | 
						|
"""
 | 
						|
Analytics Configuration Input
 | 
						|
"""
 | 
						|
input AnalyticsProviderInput {
 | 
						|
  "Is the provider active"
 | 
						|
  isEnabled: Boolean!
 | 
						|
 | 
						|
  "Unique identifier of the provider"
 | 
						|
  key: String!
 | 
						|
 | 
						|
  "Configuration values for this provider"
 | 
						|
  config: [KeyValuePairInput]
 | 
						|
}
 |