Skip to content

Instantly share code, notes, and snippets.

@jwalton922
Last active March 27, 2018 01:52
Show Gist options
  • Save jwalton922/61eee97abc2f80180e6f5de5bef1bf10 to your computer and use it in GitHub Desktop.
Save jwalton922/61eee97abc2f80180e6f5de5bef1bf10 to your computer and use it in GitHub Desktop.
type LearningResource{
learningResourceId: ID
name: String
type: String
level: String
contextId: ID
sequenceNumber: Int
children: [LearningResource]
}
type Assignment {
contextId: String
dueDate: String
bookId: String
description: String
assignmentId: ID
launchUri: String
name: String
learningResources: [LearningResource]
}
type AssignmentStructureNodes {
level: String
learningResource: StructureNodesResource
children: [AssignmentStructureNodes]
}
type StructureNodesResource{
itemId: String
title: String
}
type Student {
studentId: ID
firstName: String
lastName: String
email: String
engagement(courseSectionId: ID!, learningResourceIds: [ID]!, reportingContextIds: [ID!]!): Engagement
}
type CompositeError {
error: Boolean
failedRequestCount: Int
successfulRequestCount: Int
errorCodes: [Int]
errorMessages: [String]
}
type EngagementResults {
totalCount: Int
itemCount: Int
data: [Engagement]
bucket(filter: RangeFilter): EngagementResults
compositeError: CompositeError
lastUpdated: Long
startTimePeriod: String
endTimePeriod: String
}
type Engagement {
productId: String
courseSectionId: String
personViewedCount: Int
avgTimeSpent(timeUnit: TimeUnit = MIN): Float
timeSpentTotal(timeUnit: TimeUnit = MIN): Float
student: Student
learningResource: LearningResource
}
type TemporalEngagementResults {
totalCount: Int
itemCount: Int
offset: Int
limit: Int
queryStartDate: String
queryEndDate: String
[EngagementResults]
}
input RangeFilter {
gt: Float
gte: Float
lt: Float
lte: Float
eq: Float
}
input StringRangeFilter {
gt: String
gte: String
lt: String
lte: String
eq: String
}
enum TimeUnit {
SEC
MIN
HOUR
}
enum SortListBy {
totalTime
avgTime
firstName
lastName
view
}
enum SortAssignmentBy {
dueDate
}
enum SortOrder {
desc
asc
}
enum TimeBin {
hour
day
}
input EngagementFilter {
timeSpent: NumberRangeFilter
timeWindow: StringRangeFilter!
}
type EngagementActiveCount {
startHour: Stirng
endHour: String
personActiveCount: Int
}
type EngagementActiveCountResults {
itemCount: Int
totalCount: Int
offset: Int
limit: Int
activeCounts: [EngagementActiveCount]
}
type query {
topLevelLearningResource(courseSectionId: ID!,learningResourceId: ID): LearningResource
assignments(courseSectionId: ID!, sortBy: SortAssignmentBy=dueDate, sortOrder:SortOrder=asc):[Assignment]
latestAssignment(courseSectionId: ID! , timeZoneOffset: Int): Assignment
learningResources(learningResourceIds: [ID!]!, sortBy: String, sortOrder:SortOrder=asc): [LearningResource]
engagementQuery(courseSectionId: ID!, learningResourceIds: [ID]!, reportingContextIds: [ID!]!, filter: RangeFilter,sortBy:String="timeSpentTotal", sortOrder:SortOrder=desc,filterByName:String,limit:Int=100,offSet:Int=0) : EngagementResults
engagementQueryV2(courseSectionId: ID!, learningResourceIds: [ID]!, reportingContextIds: [ID!]!, filter: RangeFilter,sortBy:String="timeSpentTotal", sortOrder:SortOrder=desc,filterByName:String,limit:Int=100,offSet:Int=0) : EngagementResults
averageEngagement(courseSectionId: ID!, learningResourceIds: [ID!]!, reportingContextIds: [ID!]!) : Engagement
averageEngagementListByCS(courseSectionId: ID!, learningResourceLevel: Int = 2,offset: Int = 0, limit: Int = 18): EngagementResults
temporalEngagement(courseSectionId: ID!, learningResourceIds: [ID]!, reportingContextIds: [ID!]!, filter: EngagementFilter, timeBin: TimeBin = day,sortBy:String="timeSpentTotal", sortOrder:SortOrder=des): TemporalEngagementResults
engagementActiveCount(courseSectionId: ID!, filter: EngagementFilter, offset: Int = 0, limit: Int = 1, sortBy: String, sortOrder:SortOrder):EngagementActiveCountResults
}
schema {
query: query
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment