EMSE Async GraphQL API Reference

This is the reference documentation for the Asynchronous Learning Management Systems' GraphQL API, developed at Old Dominion University's Engineering Management & Systems Engineering department.

API Endpoints
# Local server:
http://localhost:4000/graphql

Queries

answer

Description

Fetch an Answer by any of its parameters. An empty object as the input parameter will return all Answers, an ID will retrieve an array with just a single Answer. If a only a Question ID is provided than all answers for that question will be returned. If a combination of parameters are used then only documents that match all the parameters will be included in the array.

Response

Returns [Answer!]!

Arguments
Name Description
args - AnswerFields!

Example

Query
query Answer($args: AnswerFields!) {
  answer(args: $args) {
    id
    text
    correct
    weight
    index
    parentQuestion {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"args": AnswerFields}
Response
{
  "data": {
    "answer": [
      {
        "id": "4",
        "text": "xyz789",
        "correct": false,
        "weight": 987.65,
        "index": "xyz789",
        "parentQuestion": Question
      }
    ]
  }
}

assignment

Description

Get a list of assignments given a set of parameters, passing an empty object in will recieve all and passing in an id will fetch a single document. Parameters can be any of the fields that exist in a assignment

Response

Returns [Assignment!]

Arguments
Name Description
input - AssignmentFields!

Example

Query
query Assignment($input: AssignmentFields!) {
  assignment(input: $input) {
    id
    updatedAt
    name
    dueAt
    contentURL
    contentType
    acceptedTypes
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
  }
}
Variables
{"input": AssignmentFields}
Response
{
  "data": {
    "assignment": [
      {
        "id": 4,
        "updatedAt": "2007-12-03",
        "name": "abc123",
        "dueAt": "2007-12-03",
        "contentURL": "abc123",
        "contentType": "xyz789",
        "acceptedTypes": "DOCX",
        "section": Section,
        "assignmentResults": [AssignmentResult]
      }
    ]
  }
}

assignmentResult

Description

Get a list of assignmentResults given a set of parameters, passing an empty object in will recieve all and passing in an id will fetch a single document. Parameters can be any of the fields that exist in a assignmentResult

Response

Returns [AssignmentResult!]

Arguments
Name Description
input - AssignmentResFields!

Example

Query
query AssignmentResult($input: AssignmentResFields!) {
  assignmentResult(input: $input) {
    id
    submittedAt
    result
    feedback
    submissionURL
    fileType
    student {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    gradedBy {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    assignment {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
  }
}
Variables
{"input": AssignmentResFields}
Response
{
  "data": {
    "assignmentResult": [
      {
        "id": "4",
        "submittedAt": "2007-12-03",
        "result": 987.65,
        "feedback": "abc123",
        "submissionURL": "xyz789",
        "fileType": "abc123",
        "student": PlanOfStudy,
        "gradedBy": User,
        "assignment": Assignment
      }
    ]
  }
}

collection

Description

Retrieve a specific collection based on document ID

Response

Returns [Collection]

Arguments
Name Description
input - CollectionFields

Example

Query
query Collection($input: CollectionFields) {
  collection(input: $input) {
    id
    name
    createdAt
    updatedAt
    modules {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    moduleIDs
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    sectionID
    position
  }
}
Variables
{"input": CollectionFields}
Response
{
  "data": {
    "collection": [
      {
        "id": "4",
        "name": "xyz789",
        "createdAt": "2007-12-03",
        "updatedAt": "2007-12-03",
        "modules": [Module],
        "moduleIDs": [4],
        "section": Section,
        "sectionID": 4,
        "position": 987
      }
    ]
  }
}

content

Description

Retrieve Content Given a set of parameters

Response

Returns [Content!]

Arguments
Name Description
input - ContentFields

Example

Query
query Content($input: ContentFields) {
  content(input: $input) {
    id
    type
    link
    parent {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    primary
  }
}
Variables
{"input": ContentFields}
Response
{
  "data": {
    "content": [
      {
        "id": 4,
        "type": "PDF",
        "link": "xyz789",
        "parent": Module,
        "primary": false
      }
    ]
  }
}

course

Description

Get a list of courses given a set of parameters, passing an empty object in will recieve all and passing in an id will fetch a single document. Parameters can be any of the fields that exist in a course

Response

Returns [Course!]

Arguments
Name Description
input - CourseFields!

Example

Query
query Course($input: CourseFields!) {
  course(input: $input) {
    id
    name
    number
    prefix
    sectionIDs
    required
    carnegieHours
  }
}
Variables
{"input": CourseFields}
Response
{
  "data": {
    "course": [
      {
        "id": 4,
        "name": "xyz789",
        "number": 123,
        "prefix": "xyz789",
        "sectionIDs": [4],
        "required": false,
        "carnegieHours": 123
      }
    ]
  }
}

directMessages

Description

Get all messages in a group.

Response

Returns [DirectMessageResponse!]!

Arguments
Name Description
receiverID - ID!
senderID - ID!

Example

Query
query DirectMessages(
  $receiverID: ID!,
  $senderID: ID!
) {
  directMessages(
    receiverID: $receiverID,
    senderID: $senderID
  ) {
    id
    createdAt
    updatedAt
    body
    authorID
    recipientID
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    recipient {
      ... on User {
        ...UserFragment
      }
      ... on Group {
        ...GroupFragment
      }
    }
  }
}
Variables
{"receiverID": 4, "senderID": 4}
Response
{
  "data": {
    "directMessages": [
      {
        "id": "4",
        "createdAt": "2007-12-03",
        "updatedAt": "2007-12-03",
        "body": "xyz789",
        "authorID": "4",
        "recipientID": 4,
        "author": User,
        "recipient": User
      }
    ]
  }
}

groupMessages

Description

Get all messages in a group. If the receiverID is not matched by the receiverID of the message, the message is not returned.

Response

Returns [DirectMessageResponse!]!

Arguments
Name Description
groupID - ID!

Example

Query
query GroupMessages($groupID: ID!) {
  groupMessages(groupID: $groupID) {
    id
    createdAt
    updatedAt
    body
    authorID
    recipientID
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    recipient {
      ... on User {
        ...UserFragment
      }
      ... on Group {
        ...GroupFragment
      }
    }
  }
}
Variables
{"groupID": "4"}
Response
{
  "data": {
    "groupMessages": [
      {
        "id": 4,
        "createdAt": "2007-12-03",
        "updatedAt": "2007-12-03",
        "body": "abc123",
        "authorID": 4,
        "recipientID": 4,
        "author": User,
        "recipient": User
      }
    ]
  }
}

groups

Description

Get all groups for a user.

Response

Returns [Group!]!

Arguments
Name Description
userID - ID!

Example

Query
query Groups($userID: ID!) {
  groups(userID: $userID) {
    id
    name
    members {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    public
    messages {
      id
      createdAt
      updatedAt
      body
      authorID
      recipientID
      author {
        ...UserFragment
      }
      recipient {
        ... on User {
          ...UserFragment
        }
        ... on Group {
          ...GroupFragment
        }
      }
    }
  }
}
Variables
{"userID": "4"}
Response
{
  "data": {
    "groups": [
      {
        "id": "4",
        "name": "abc123",
        "members": [User],
        "public": false,
        "messages": [DirectMessageResponse]
      }
    ]
  }
}

instructorProfile

Description

Query that fetches instructor Profile based on id

Response

Returns an InstructorProfile

Arguments
Name Description
id - ID!

Example

Query
query InstructorProfile($id: ID!) {
  instructorProfile(id: $id) {
    id
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    title
    officeLocation
    officeHours
    contactPolicy
    background
    researchInterest
    selectedPapersAndPublications
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "instructorProfile": {
      "id": "4",
      "account": User,
      "title": "abc123",
      "officeLocation": "xyz789",
      "officeHours": ["abc123"],
      "contactPolicy": "xyz789",
      "background": "xyz789",
      "researchInterest": ["abc123"],
      "selectedPapersAndPublications": [
        "xyz789"
      ]
    }
  }
}

latestModuleProgress

Response

Returns a ModuleProgress

Arguments
Name Description
planID - ID!
sectionID - ID!
moduleID - ID!

Example

Query
query LatestModuleProgress(
  $planID: ID!,
  $sectionID: ID!,
  $moduleID: ID!
) {
  latestModuleProgress(
    planID: $planID,
    sectionID: $sectionID,
    moduleID: $moduleID
  ) {
    id
    status
    completed
    createdAt
    updatedAt
    enrollment {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    module {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
  }
}
Variables
{
  "planID": 4,
  "sectionID": 4,
  "moduleID": "4"
}
Response
{
  "data": {
    "latestModuleProgress": {
      "id": "4",
      "status": 123.45,
      "completed": false,
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "enrollment": SectionEnrollment,
      "module": Module
    }
  }
}

learningPath

Description

Retrieve a sepcific learning path based on the user's plan of study ID

Response

Returns [LearningPath!]!

Arguments
Name Description
planID - ID!
pathID - ID

Example

Query
query LearningPath(
  $planID: ID!,
  $pathID: ID
) {
  learningPath(
    planID: $planID,
    pathID: $pathID
  ) {
    id
    createdAt
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    planID
    paths {
      id
      createdAt
      updatedAt
      course {
        ...CoursePathFragment
      }
      status
      hoursSatisfies
      learningOutcomes
    }
  }
}
Variables
{"planID": 4, "pathID": 4}
Response
{
  "data": {
    "learningPath": [
      {
        "id": "4",
        "createdAt": "2007-12-03",
        "plan": PlanOfStudy,
        "planID": "4",
        "paths": [Path]
      }
    ]
  }
}

module

Description

Retrieve modules given a set of parameters

Response

Returns [Module!]

Arguments
Name Description
input - ModuleFields

Example

Query
query Module($input: ModuleFields) {
  module(input: $input) {
    id
    prefix
    number
    name
    content {
      id
      type
      link
      parent {
        ...ModuleFragment
      }
      primary
    }
    threads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    collectionIDs
    position
    quizzes {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
    objectives
    keywords
    hours
    description
    instructor {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    instructorID
  }
}
Variables
{"input": ModuleFields}
Response
{
  "data": {
    "module": [
      {
        "id": 4,
        "prefix": "xyz789",
        "number": 123,
        "name": "xyz789",
        "content": [Content],
        "threads": [Thread],
        "collections": [Collection],
        "collectionIDs": ["4"],
        "position": 123,
        "quizzes": [Quiz],
        "moduleProgress": [ModuleProgress],
        "objectives": ["xyz789"],
        "keywords": ["abc123"],
        "hours": 987.65,
        "description": "abc123",
        "instructor": InstructorProfile,
        "instructorID": 4
      }
    ]
  }
}

moduleFlowFromLearningPath

Response

Returns a ModuleFlow

Arguments
Name Description
planID - ID!
moduleID - ID!

Example

Query
query ModuleFlowFromLearningPath(
  $planID: ID!,
  $moduleID: ID!
) {
  moduleFlowFromLearningPath(
    planID: $planID,
    moduleID: $moduleID
  ) {
    previousModule {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    previousCollection {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    nextModule {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    nextCollection {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    currentModule {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    currentCollection {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    currentSection {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
  }
}
Variables
{"planID": 4, "moduleID": "4"}
Response
{
  "data": {
    "moduleFlowFromLearningPath": {
      "previousModule": Module,
      "previousCollection": Collection,
      "nextModule": Module,
      "nextCollection": Collection,
      "currentModule": Module,
      "currentCollection": Collection,
      "currentSection": Section
    }
  }
}

modulesBySectionEnrollment

Description

Get a list of modules given the plan ID and enrollment ID

Response

Returns [Module!]

Arguments
Name Description
planID - ID!
sectionID - ID!

Example

Query
query ModulesBySectionEnrollment(
  $planID: ID!,
  $sectionID: ID!
) {
  modulesBySectionEnrollment(
    planID: $planID,
    sectionID: $sectionID
  ) {
    id
    prefix
    number
    name
    content {
      id
      type
      link
      parent {
        ...ModuleFragment
      }
      primary
    }
    threads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    collectionIDs
    position
    quizzes {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
    objectives
    keywords
    hours
    description
    instructor {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    instructorID
  }
}
Variables
{"planID": "4", "sectionID": 4}
Response
{
  "data": {
    "modulesBySectionEnrollment": [
      {
        "id": "4",
        "prefix": "abc123",
        "number": 987,
        "name": "abc123",
        "content": [Content],
        "threads": [Thread],
        "collections": [Collection],
        "collectionIDs": ["4"],
        "position": 123,
        "quizzes": [Quiz],
        "moduleProgress": [ModuleProgress],
        "objectives": ["abc123"],
        "keywords": ["abc123"],
        "hours": 123.45,
        "description": "xyz789",
        "instructor": InstructorProfile,
        "instructorID": 4
      }
    ]
  }
}

modulesFromLearningPath

Response

Returns [Module!]

Arguments
Name Description
planID - ID!

Example

Query
query ModulesFromLearningPath($planID: ID!) {
  modulesFromLearningPath(planID: $planID) {
    id
    prefix
    number
    name
    content {
      id
      type
      link
      parent {
        ...ModuleFragment
      }
      primary
    }
    threads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    collectionIDs
    position
    quizzes {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
    objectives
    keywords
    hours
    description
    instructor {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    instructorID
  }
}
Variables
{"planID": 4}
Response
{
  "data": {
    "modulesFromLearningPath": [
      {
        "id": "4",
        "prefix": "abc123",
        "number": 987,
        "name": "abc123",
        "content": [Content],
        "threads": [Thread],
        "collections": [Collection],
        "collectionIDs": [4],
        "position": 987,
        "quizzes": [Quiz],
        "moduleProgress": [ModuleProgress],
        "objectives": ["xyz789"],
        "keywords": ["xyz789"],
        "hours": 123.45,
        "description": "abc123",
        "instructor": InstructorProfile,
        "instructorID": "4"
      }
    ]
  }
}

plan

Description

student PlanOfStudy by id

Response

Returns a PlanOfStudy

Arguments
Name Description
studentID - ID!

Example

Query
query Plan($studentID: ID!) {
  plan(studentID: $studentID) {
    id
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    sections {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    sectionsLeft {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    quizResults {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"studentID": "4"}
Response
{
  "data": {
    "plan": {
      "id": "4",
      "student": User,
      "sections": [SectionEnrollment],
      "assignmentResults": [AssignmentResult],
      "sectionsLeft": [SectionEnrollment],
      "quizResults": [QuizResult]
    }
  }
}

planByID

Description

PlanOfStudy by the Documentid

Response

Returns a PlanOfStudy

Arguments
Name Description
id - String!

Example

Query
query PlanByID($id: String!) {
  planByID(id: $id) {
    id
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    sections {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    sectionsLeft {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    quizResults {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "planByID": {
      "id": "4",
      "student": User,
      "sections": [SectionEnrollment],
      "assignmentResults": [AssignmentResult],
      "sectionsLeft": [SectionEnrollment],
      "quizResults": [QuizResult]
    }
  }
}

planByParams

Response

Returns [PlanOfStudy!]

Arguments
Name Description
input - PlanFields

Example

Query
query PlanByParams($input: PlanFields) {
  planByParams(input: $input) {
    id
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    sections {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    sectionsLeft {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    quizResults {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"input": PlanFields}
Response
{
  "data": {
    "planByParams": [
      {
        "id": "4",
        "student": User,
        "sections": [SectionEnrollment],
        "assignmentResults": [AssignmentResult],
        "sectionsLeft": [SectionEnrollment],
        "quizResults": [QuizResult]
      }
    ]
  }
}

plans

Description

All the plans in the PlanOfStudy

Response

Returns [PlanOfStudy!]

Example

Query
query Plans {
  plans {
    id
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    sections {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    sectionsLeft {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    quizResults {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Response
{
  "data": {
    "plans": [
      {
        "id": "4",
        "student": User,
        "sections": [SectionEnrollment],
        "assignmentResults": [AssignmentResult],
        "sectionsLeft": [SectionEnrollment],
        "quizResults": [QuizResult]
      }
    ]
  }
}

progress

Description

Get a progress document by the given parameters. If no parameters are given, all progress documents will be returned. If the ID or enrollmentID is given, the other parameters will be ignored, and the returned document is always unique.

Response

Returns [Progress]!

Arguments
Name Description
args - ProgressArgs! The database defined ID of the progress document

Example

Query
query Progress($args: ProgressArgs!) {
  progress(args: $args) {
    id
    status
    completed
    createdAt
    updatedAt
    enrollment {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
  }
}
Variables
{"args": ProgressArgs}
Response
{
  "data": {
    "progress": [
      {
        "id": "4",
        "status": 123.45,
        "completed": false,
        "createdAt": "2007-12-03",
        "updatedAt": "2007-12-03",
        "enrollment": SectionEnrollment
      }
    ]
  }
}

question

Description

Fetch a Question by any of its parameters. An empty object as the input parameter will return all Questions, an ID will retrieve an array with just a single Question. If a only a pool ID is provided than all questions in that pool will be returned. If a combination of parameters are used then only documents that match all the parameters will be included in the array.

Response

Returns [Question!]!

Arguments
Name Description
args - QuestionFields!

Example

Query
query Question($args: QuestionFields!) {
  question(args: $args) {
    id
    number
    variant
    text
    points
    answers {
      id
      text
      correct
      weight
      index
      parentQuestion {
        ...QuestionFragment
      }
    }
    parent {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    instances {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"args": QuestionFields}
Response
{
  "data": {
    "question": [
      {
        "id": "4",
        "number": 987,
        "variant": 987,
        "text": "abc123",
        "points": 123.45,
        "answers": [Answer],
        "parent": Quiz,
        "instances": [QuizInstance]
      }
    ]
  }
}

quiz

Description

Fetch a Quiz by any of its parameters. an empty object will return all quizzes and a single id will return a single quiz

Response

Returns [Quiz!]!

Arguments
Name Description
args - QuizFields!

Example

Query
query Quiz($args: QuizFields!) {
  quiz(args: $args) {
    id
    totalPoints
    instructions
    dueAt
    timeLimit
    numQuestions
    minScore
    parentModule {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    questionPool {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    instances {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"args": QuizFields}
Response
{
  "data": {
    "quiz": [
      {
        "id": 4,
        "totalPoints": 123.45,
        "instructions": "xyz789",
        "dueAt": "2007-12-03",
        "timeLimit": 123,
        "numQuestions": 987,
        "minScore": 123.45,
        "parentModule": Module,
        "questionPool": [Question],
        "instances": [QuizInstance]
      }
    ]
  }
}

quizInstance

Description

Fetch a single or multiple instances of a quiz by any of its paramters. An empty object will return all instances. Giving only this parent quiz id will give all instances of a particular quiz.

Response

Returns [QuizInstance!]!

Arguments
Name Description
args - QuizInstanceFields!

Example

Query
query QuizInstance($args: QuizInstanceFields!) {
  quizInstance(args: $args) {
    id
    quiz {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    questions {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    quizResult {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"args": QuizInstanceFields}
Response
{
  "data": {
    "quizInstance": [
      {
        "id": "4",
        "quiz": Quiz,
        "questions": [Question],
        "quizResult": QuizResult
      }
    ]
  }
}

quizResult

Description

Fetch a quiz result by any of its parameters. An empty object as the input parameter will get all records. If just a quiz ID is provided than all results for that quiz will be shown. If just a planID is given then just that users results will be shown. If combinations of parameters are used then only records that match all parameters will be returned.

Response

Returns [QuizResult!]!

Arguments
Name Description
args - QuizResultFields!

Example

Query
query QuizResult($args: QuizResultFields!) {
  quizResult(args: $args) {
    id
    score
    answers
    submittedAt
    student {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    quizInstance {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"args": QuizResultFields}
Response
{
  "data": {
    "quizResult": [
      {
        "id": "xyz789",
        "score": 987.65,
        "answers": ["abc123"],
        "submittedAt": "2007-12-03",
        "student": PlanOfStudy,
        "quizInstance": QuizInstance
      }
    ]
  }
}

refresh

Response

Returns a String

Arguments
Name Description
token - String

Example

Query
query Refresh($token: String) {
  refresh(token: $token)
}
Variables
{"token": "xyz789"}
Response
{"data": {"refresh": "abc123"}}

section

Description

Get a list of Sections given a set of parameters, passing an empty object in will recieve all and passing in an id will fetch a single document. Parameters can be any of the fields that exist in a Section An additional parameter: memberRole, can be provided to specify that Section members should only be selected if they have said role.

Response

Returns [Section!]

Arguments
Name Description
input - SectionFields!
memberRole - UserRole

Example

Query
query Section(
  $input: SectionFields!,
  $memberRole: UserRole
) {
  section(
    input: $input,
    memberRole: $memberRole
  ) {
    id
    sectionNumber
    sectionName
    description
    duration
    intro
    numSlides
    keywords
    objectives
    createdAt
    updatedAt
    assignments {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
    members {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    parentSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    subSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    courseIDs
  }
}
Variables
{"input": SectionFields, "memberRole": "STUDENT"}
Response
{
  "data": {
    "section": [
      {
        "id": 4,
        "sectionNumber": 987,
        "sectionName": "xyz789",
        "description": "abc123",
        "duration": 123.45,
        "intro": "abc123",
        "numSlides": 987,
        "keywords": ["xyz789"],
        "objectives": ["xyz789"],
        "createdAt": "2007-12-03",
        "updatedAt": "2007-12-03",
        "assignments": [Assignment],
        "members": [SectionEnrollment],
        "feedback": [SectionFeedback],
        "parentSections": [Section],
        "subSections": [Section],
        "collections": [Collection],
        "courseIDs": ["4"]
      }
    ]
  }
}

sectionEnrollment

Description

Get a list of SectionEnrollments given a set of parameters, passing an empty object in will recieve all and passing in an id will fetch a single document. Parameters can be any of the fields that exist in a SectionEnrollment

Response

Returns [SectionEnrollment!]

Arguments
Name Description
input - ModEnrollmentFields!

Example

Query
query SectionEnrollment($input: ModEnrollmentFields!) {
  sectionEnrollment(input: $input) {
    id
    enrolledAt
    role
    status
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    inactivePlan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    progress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
  }
}
Variables
{"input": ModEnrollmentFields}
Response
{
  "data": {
    "sectionEnrollment": [
      {
        "id": 4,
        "enrolledAt": "2007-12-03",
        "role": "STUDENT",
        "status": "ACTIVE",
        "section": Section,
        "plan": PlanOfStudy,
        "inactivePlan": PlanOfStudy,
        "progress": Progress,
        "moduleProgress": [ModuleProgress]
      }
    ]
  }
}

sectionFeedback

Description

Get a list of SectionFeedbacks given a set of parameters, passing an empty object in will recieve all and passing in an id will fetch a single document. Parameters can be any of the fields that exist in a SectionFeedback

Response

Returns [SectionFeedback!]

Arguments
Name Description
input - ModFeedbackFields!

Example

Query
query SectionFeedback($input: ModFeedbackFields!) {
  sectionFeedback(input: $input) {
    id
    feedback
    rating
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
  }
}
Variables
{"input": ModFeedbackFields}
Response
{
  "data": {
    "sectionFeedback": [
      {
        "id": 4,
        "feedback": "xyz789",
        "rating": 987,
        "student": User,
        "section": Section
      }
    ]
  }
}

sentMessages

Description

Get all messages sent by a user.

Response

Returns [DirectMessageResponse!]!

Arguments
Name Description
senderID - ID!

Example

Query
query SentMessages($senderID: ID!) {
  sentMessages(senderID: $senderID) {
    id
    createdAt
    updatedAt
    body
    authorID
    recipientID
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    recipient {
      ... on User {
        ...UserFragment
      }
      ... on Group {
        ...GroupFragment
      }
    }
  }
}
Variables
{"senderID": "4"}
Response
{
  "data": {
    "sentMessages": [
      {
        "id": 4,
        "createdAt": "2007-12-03",
        "updatedAt": "2007-12-03",
        "body": "xyz789",
        "authorID": "4",
        "recipientID": 4,
        "author": User,
        "recipient": User
      }
    ]
  }
}

social

Description

Query that fetches User on Social id

Response

Returns a Social

Arguments
Name Description
id - ID!

Example

Query
query Social($id: ID!) {
  social(id: $id) {
    id
    twitter
    github
    linkedin
    facebook
    portfolio
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "social": {
      "id": 4,
      "twitter": "abc123",
      "github": "xyz789",
      "linkedin": "abc123",
      "facebook": "xyz789",
      "portfolio": "abc123",
      "account": User
    }
  }
}

socials

Description

Query that fetches all the socials

Response

Returns [Social!]!

Example

Query
query Socials {
  socials {
    id
    twitter
    github
    linkedin
    facebook
    portfolio
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
  }
}
Response
{
  "data": {
    "socials": [
      {
        "id": 4,
        "twitter": "abc123",
        "github": "abc123",
        "linkedin": "abc123",
        "facebook": "xyz789",
        "portfolio": "abc123",
        "account": User
      }
    ]
  }
}

socialsByParam

Response

Returns [Social!]

Arguments
Name Description
input - SocialFields

Example

Query
query SocialsByParam($input: SocialFields) {
  socialsByParam(input: $input) {
    id
    twitter
    github
    linkedin
    facebook
    portfolio
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
  }
}
Variables
{"input": SocialFields}
Response
{
  "data": {
    "socialsByParam": [
      {
        "id": 4,
        "twitter": "xyz789",
        "github": "abc123",
        "linkedin": "abc123",
        "facebook": "xyz789",
        "portfolio": "abc123",
        "account": User
      }
    ]
  }
}

thread

Description

Get a list of threads that match the given parameters. If no parameters are given, all threads are returned. If the id parameter is given, the returned thread is guaranteed to be unique.

Response

Returns [Thread!]!

Arguments
Name Description
input - IThreadByParams

Example

Query
query Thread($input: IThreadByParams) {
  thread(input: $input) {
    id
    title
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    body
    comments {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    topics
    upvotes {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    usersWatching {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    createdAt
    updatedAt
    parentThread {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    parentThreadID
  }
}
Variables
{"input": IThreadByParams}
Response
{
  "data": {
    "thread": [
      {
        "id": "4",
        "title": "abc123",
        "author": User,
        "body": "xyz789",
        "comments": [Thread],
        "topics": ["xyz789"],
        "upvotes": [User],
        "usersWatching": [User],
        "createdAt": "2007-12-03",
        "updatedAt": "2007-12-03",
        "parentThread": Thread,
        "parentThreadID": "4"
      }
    ]
  }
}

user

Description

Query that fetches User based on the passed in parameters. If openID or id fields are set in the input, the returned user is guaranteed to be unique. If no params are provided, all users are returned

Response

Returns [User!]!

Arguments
Name Description
input - UserFields

Example

Query
query User($input: UserFields) {
  user(input: $input) {
    id
    openID
    email
    picURL
    createdAt
    firstName
    lastName
    middleName
    isAdmin
    isActive
    biography
    phoneNumber
    dob
    social {
      id
      twitter
      github
      linkedin
      facebook
      portfolio
      account {
        ...UserFragment
      }
    }
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    tokens
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    assignmentGraded {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    instructorProfile {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    watchedThreads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    watchedThreadIDs
    createdThreads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
  }
}
Variables
{"input": UserFields}
Response
{
  "data": {
    "user": [
      {
        "id": 4,
        "openID": "4",
        "email": "xyz789",
        "picURL": "xyz789",
        "createdAt": "2007-12-03",
        "firstName": "xyz789",
        "lastName": "xyz789",
        "middleName": "xyz789",
        "isAdmin": true,
        "isActive": true,
        "biography": "xyz789",
        "phoneNumber": "abc123",
        "dob": "2007-12-03",
        "social": Social,
        "plan": PlanOfStudy,
        "tokens": ["4"],
        "feedback": [SectionFeedback],
        "assignmentGraded": [AssignmentResult],
        "instructorProfile": InstructorProfile,
        "watchedThreads": [Thread],
        "watchedThreadIDs": ["4"],
        "createdThreads": [Thread]
      }
    ]
  }
}

Mutations

addAssignment

Description

adds assignement in Section

Response

Returns an Assignment!

Arguments
Name Description
input - NewAssignment

Example

Query
mutation AddAssignment($input: NewAssignment) {
  addAssignment(input: $input) {
    id
    updatedAt
    name
    dueAt
    contentURL
    contentType
    acceptedTypes
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
  }
}
Variables
{"input": NewAssignment}
Response
{
  "data": {
    "addAssignment": {
      "id": "4",
      "updatedAt": "2007-12-03",
      "name": "abc123",
      "dueAt": "2007-12-03",
      "contentURL": "xyz789",
      "contentType": "abc123",
      "acceptedTypes": "DOCX",
      "section": Section,
      "assignmentResults": [AssignmentResult]
    }
  }
}

addAssignmentResult

Description

Assignment Result is added

Response

Returns an AssignmentResult!

Arguments
Name Description
input - NewAssignmentResult

Example

Query
mutation AddAssignmentResult($input: NewAssignmentResult) {
  addAssignmentResult(input: $input) {
    id
    submittedAt
    result
    feedback
    submissionURL
    fileType
    student {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    gradedBy {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    assignment {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
  }
}
Variables
{"input": NewAssignmentResult}
Response
{
  "data": {
    "addAssignmentResult": {
      "id": 4,
      "submittedAt": "2007-12-03",
      "result": 123.45,
      "feedback": "abc123",
      "submissionURL": "abc123",
      "fileType": "abc123",
      "student": PlanOfStudy,
      "gradedBy": User,
      "assignment": Assignment
    }
  }
}

addCommentToThread

Response

Returns a Thread

Arguments
Name Description
parentThreadID - ID!
data - ICommentCreateInput!

Example

Query
mutation AddCommentToThread(
  $parentThreadID: ID!,
  $data: ICommentCreateInput!
) {
  addCommentToThread(
    parentThreadID: $parentThreadID,
    data: $data
  ) {
    id
    title
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    body
    comments {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    topics
    upvotes {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    usersWatching {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    createdAt
    updatedAt
    parentThread {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    parentThreadID
  }
}
Variables
{"parentThreadID": 4, "data": ICommentCreateInput}
Response
{
  "data": {
    "addCommentToThread": {
      "id": "4",
      "title": "abc123",
      "author": User,
      "body": "xyz789",
      "comments": [Thread],
      "topics": ["xyz789"],
      "upvotes": [User],
      "usersWatching": [User],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "parentThread": Thread,
      "parentThreadID": 4
    }
  }
}

addCourse

Description

adds Courses to the database. If many is true, it will add all the courses in the array and if false, the input will still need to be an array but with only one element

Response

Returns a Course!

Arguments
Name Description
input - [CourseInput!]
many - Boolean

Example

Query
mutation AddCourse(
  $input: [CourseInput!],
  $many: Boolean
) {
  addCourse(
    input: $input,
    many: $many
  ) {
    id
    name
    number
    prefix
    sectionIDs
    required
    carnegieHours
  }
}
Variables
{"input": [CourseInput], "many": true}
Response
{
  "data": {
    "addCourse": {
      "id": "4",
      "name": "xyz789",
      "number": 123,
      "prefix": "xyz789",
      "sectionIDs": ["4"],
      "required": false,
      "carnegieHours": 123
    }
  }
}

addObjectives

Description

Adds Objectives to a Section while retaining the old ones

Response

Returns a Section

Arguments
Name Description
id - ID!
input - [String!]

Example

Query
mutation AddObjectives(
  $id: ID!,
  $input: [String!]
) {
  addObjectives(
    id: $id,
    input: $input
  ) {
    id
    sectionNumber
    sectionName
    description
    duration
    intro
    numSlides
    keywords
    objectives
    createdAt
    updatedAt
    assignments {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
    members {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    parentSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    subSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    courseIDs
  }
}
Variables
{
  "id": "4",
  "input": ["xyz789"]
}
Response
{
  "data": {
    "addObjectives": {
      "id": "4",
      "sectionNumber": 987,
      "sectionName": "abc123",
      "description": "xyz789",
      "duration": 123.45,
      "intro": "abc123",
      "numSlides": 987,
      "keywords": ["xyz789"],
      "objectives": ["xyz789"],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "assignments": [Assignment],
      "members": [SectionEnrollment],
      "feedback": [SectionFeedback],
      "parentSections": [Section],
      "subSections": [Section],
      "collections": [Collection],
      "courseIDs": ["4"]
    }
  }
}

addPlan

Description

Plan added to present PlanOfStudy

Response

Returns a PlanOfStudy!

Arguments
Name Description
input - PlanInput

Example

Query
mutation AddPlan($input: PlanInput) {
  addPlan(input: $input) {
    id
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    sections {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    sectionsLeft {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    quizResults {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"input": PlanInput}
Response
{
  "data": {
    "addPlan": {
      "id": "4",
      "student": User,
      "sections": [SectionEnrollment],
      "assignmentResults": [AssignmentResult],
      "sectionsLeft": [SectionEnrollment],
      "quizResults": [QuizResult]
    }
  }
}

addSection

Description

Adds an entire Section

Response

Returns a Section!

Arguments
Name Description
input - NewSection

Example

Query
mutation AddSection($input: NewSection) {
  addSection(input: $input) {
    id
    sectionNumber
    sectionName
    description
    duration
    intro
    numSlides
    keywords
    objectives
    createdAt
    updatedAt
    assignments {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
    members {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    parentSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    subSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    courseIDs
  }
}
Variables
{"input": NewSection}
Response
{
  "data": {
    "addSection": {
      "id": "4",
      "sectionNumber": 123,
      "sectionName": "xyz789",
      "description": "abc123",
      "duration": 987.65,
      "intro": "xyz789",
      "numSlides": 987,
      "keywords": ["xyz789"],
      "objectives": ["xyz789"],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "assignments": [Assignment],
      "members": [SectionEnrollment],
      "feedback": [SectionFeedback],
      "parentSections": [Section],
      "subSections": [Section],
      "collections": [Collection],
      "courseIDs": [4]
    }
  }
}

addSectionEnrollment

Description

Course Section is paired Relating Course ID and Section Id

Response

Returns a SectionEnrollment!

Arguments
Name Description
input - SectionEnrollmentInput

Example

Query
mutation AddSectionEnrollment($input: SectionEnrollmentInput) {
  addSectionEnrollment(input: $input) {
    id
    enrolledAt
    role
    status
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    inactivePlan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    progress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
  }
}
Variables
{"input": SectionEnrollmentInput}
Response
{
  "data": {
    "addSectionEnrollment": {
      "id": "4",
      "enrolledAt": "2007-12-03",
      "role": "STUDENT",
      "status": "ACTIVE",
      "section": Section,
      "plan": PlanOfStudy,
      "inactivePlan": PlanOfStudy,
      "progress": Progress,
      "moduleProgress": [ModuleProgress]
    }
  }
}

addSectionFeedback

Response

Returns a Section

Arguments
Name Description
sectionId - ID! Section Feedback is given relating to Sectionid
userId - ID! section Feedback is given relating to Userid
input - SectionFeedbackInput section Feedback is given relating to Sectionfeedbackinput

Example

Query
mutation AddSectionFeedback(
  $sectionId: ID!,
  $userId: ID!,
  $input: SectionFeedbackInput
) {
  addSectionFeedback(
    sectionId: $sectionId,
    userId: $userId,
    input: $input
  ) {
    id
    sectionNumber
    sectionName
    description
    duration
    intro
    numSlides
    keywords
    objectives
    createdAt
    updatedAt
    assignments {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
    members {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    parentSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    subSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    courseIDs
  }
}
Variables
{
  "sectionId": "4",
  "userId": "4",
  "input": SectionFeedbackInput
}
Response
{
  "data": {
    "addSectionFeedback": {
      "id": "4",
      "sectionNumber": 987,
      "sectionName": "xyz789",
      "description": "abc123",
      "duration": 123.45,
      "intro": "xyz789",
      "numSlides": 987,
      "keywords": ["xyz789"],
      "objectives": ["xyz789"],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "assignments": [Assignment],
      "members": [SectionEnrollment],
      "feedback": [SectionFeedback],
      "parentSections": [Section],
      "subSections": [Section],
      "collections": [Collection],
      "courseIDs": ["4"]
    }
  }
}

addSocial

Description

adds Social to the user

Response

Returns a Social!

Arguments
Name Description
user - ID!
input - SocialInput

Example

Query
mutation AddSocial(
  $user: ID!,
  $input: SocialInput
) {
  addSocial(
    user: $user,
    input: $input
  ) {
    id
    twitter
    github
    linkedin
    facebook
    portfolio
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
  }
}
Variables
{
  "user": "4",
  "input": SocialInput
}
Response
{
  "data": {
    "addSocial": {
      "id": "4",
      "twitter": "abc123",
      "github": "xyz789",
      "linkedin": "xyz789",
      "facebook": "xyz789",
      "portfolio": "abc123",
      "account": User
    }
  }
}

addUserAsWatcherToThread

Response

Returns a Thread

Arguments
Name Description
id - ID!
userID - ID!

Example

Query
mutation AddUserAsWatcherToThread(
  $id: ID!,
  $userID: ID!
) {
  addUserAsWatcherToThread(
    id: $id,
    userID: $userID
  ) {
    id
    title
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    body
    comments {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    topics
    upvotes {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    usersWatching {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    createdAt
    updatedAt
    parentThread {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    parentThreadID
  }
}
Variables
{"id": "4", "userID": 4}
Response
{
  "data": {
    "addUserAsWatcherToThread": {
      "id": "4",
      "title": "xyz789",
      "author": User,
      "body": "abc123",
      "comments": [Thread],
      "topics": ["xyz789"],
      "upvotes": [User],
      "usersWatching": [User],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "parentThread": Thread,
      "parentThreadID": 4
    }
  }
}

createAnswer

Description

Create a new answer to a question. The answer must be associated with a question when created.

Response

Returns an Answer!

Arguments
Name Description
input - CreateAnswer!

Example

Query
mutation CreateAnswer($input: CreateAnswer!) {
  createAnswer(input: $input) {
    id
    text
    correct
    weight
    index
    parentQuestion {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"input": CreateAnswer}
Response
{
  "data": {
    "createAnswer": {
      "id": "4",
      "text": "abc123",
      "correct": true,
      "weight": 123.45,
      "index": "xyz789",
      "parentQuestion": Question
    }
  }
}

createCollection

Description

Create a new collection

Response

Returns a Collection!

Arguments
Name Description
data - CreateCollectionArgs!

Example

Query
mutation CreateCollection($data: CreateCollectionArgs!) {
  createCollection(data: $data) {
    id
    name
    createdAt
    updatedAt
    modules {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    moduleIDs
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    sectionID
    position
  }
}
Variables
{"data": CreateCollectionArgs}
Response
{
  "data": {
    "createCollection": {
      "id": 4,
      "name": "xyz789",
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "modules": [Module],
      "moduleIDs": [4],
      "section": Section,
      "sectionID": 4,
      "position": 123
    }
  }
}

createContent

Description

Create a Content Record

Response

Returns a Content!

Arguments
Name Description
input - CreateContentArgs!

Example

Query
mutation CreateContent($input: CreateContentArgs!) {
  createContent(input: $input) {
    id
    type
    link
    parent {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    primary
  }
}
Variables
{"input": CreateContentArgs}
Response
{
  "data": {
    "createContent": {
      "id": 4,
      "type": "PDF",
      "link": "abc123",
      "parent": Module,
      "primary": true
    }
  }
}

createDirectMessage

Description

Send a message to a user. If the receiverID is and the senderID match, the service fails and returns an Error.

Response

Returns a Boolean!

Arguments
Name Description
receiverID - ID!
message - String!
senderID - ID!

Example

Query
mutation CreateDirectMessage(
  $receiverID: ID!,
  $message: String!,
  $senderID: ID!
) {
  createDirectMessage(
    receiverID: $receiverID,
    message: $message,
    senderID: $senderID
  )
}
Variables
{
  "receiverID": "4",
  "message": "abc123",
  "senderID": 4
}
Response
{"data": {"createDirectMessage": false}}

createGroup

Response

Returns a Group!

Arguments
Name Description
name - String!
members - [ID!]!
publicGroup - Boolean Default = false

Example

Query
mutation CreateGroup(
  $name: String!,
  $members: [ID!]!,
  $publicGroup: Boolean
) {
  createGroup(
    name: $name,
    members: $members,
    publicGroup: $publicGroup
  ) {
    id
    name
    members {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    public
    messages {
      id
      createdAt
      updatedAt
      body
      authorID
      recipientID
      author {
        ...UserFragment
      }
      recipient {
        ... on User {
          ...UserFragment
        }
        ... on Group {
          ...GroupFragment
        }
      }
    }
  }
}
Variables
{
  "name": "abc123",
  "members": [4],
  "publicGroup": false
}
Response
{
  "data": {
    "createGroup": {
      "id": 4,
      "name": "xyz789",
      "members": [User],
      "public": false,
      "messages": [DirectMessageResponse]
    }
  }
}

createLearningPath

Description

Create a new learning path model with the given program structure

Response

Returns a LearningPath!

Arguments
Name Description
planID - ID!
input - CreateLearningPathInput!

Example

Query
mutation CreateLearningPath(
  $planID: ID!,
  $input: CreateLearningPathInput!
) {
  createLearningPath(
    planID: $planID,
    input: $input
  ) {
    id
    createdAt
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    planID
    paths {
      id
      createdAt
      updatedAt
      course {
        ...CoursePathFragment
      }
      status
      hoursSatisfies
      learningOutcomes
    }
  }
}
Variables
{"planID": 4, "input": CreateLearningPathInput}
Response
{
  "data": {
    "createLearningPath": {
      "id": 4,
      "createdAt": "2007-12-03",
      "plan": PlanOfStudy,
      "planID": "4",
      "paths": [Path]
    }
  }
}

createModule

Description

Create a Module for an individual collection

Response

Returns a Module!

Arguments
Name Description
input - ModuleInput!

Example

Query
mutation CreateModule($input: ModuleInput!) {
  createModule(input: $input) {
    id
    prefix
    number
    name
    content {
      id
      type
      link
      parent {
        ...ModuleFragment
      }
      primary
    }
    threads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    collectionIDs
    position
    quizzes {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
    objectives
    keywords
    hours
    description
    instructor {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    instructorID
  }
}
Variables
{"input": ModuleInput}
Response
{
  "data": {
    "createModule": {
      "id": 4,
      "prefix": "xyz789",
      "number": 123,
      "name": "abc123",
      "content": [Content],
      "threads": [Thread],
      "collections": [Collection],
      "collectionIDs": [4],
      "position": 987,
      "quizzes": [Quiz],
      "moduleProgress": [ModuleProgress],
      "objectives": ["xyz789"],
      "keywords": ["xyz789"],
      "hours": 987.65,
      "description": "abc123",
      "instructor": InstructorProfile,
      "instructorID": "4"
    }
  }
}

createPath

Description

Add a new path to an existing learning path model

Response

Returns a SimpleLearningPath!

Arguments
Name Description
planID - ID!
input - PathInput!

Example

Query
mutation CreatePath(
  $planID: ID!,
  $input: PathInput!
) {
  createPath(
    planID: $planID,
    input: $input
  ) {
    id
    createdAt
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    planID
    paths {
      id
      createdAt
      updatedAt
      course {
        ...SimpleCoursePathFragment
      }
      status
      hoursSatisfies
      learningOutcomes
    }
  }
}
Variables
{"planID": 4, "input": PathInput}
Response
{
  "data": {
    "createPath": {
      "id": "4",
      "createdAt": "2007-12-03",
      "plan": PlanOfStudy,
      "planID": 4,
      "paths": [SimplePath]
    }
  }
}

createProgress

Response

Returns a Progress!

Arguments
Name Description
input - ProgressArgs!
enrollmentID - ID!

Example

Query
mutation CreateProgress(
  $input: ProgressArgs!,
  $enrollmentID: ID!
) {
  createProgress(
    input: $input,
    enrollmentID: $enrollmentID
  ) {
    id
    status
    completed
    createdAt
    updatedAt
    enrollment {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
  }
}
Variables
{
  "input": ProgressArgs,
  "enrollmentID": "4"
}
Response
{
  "data": {
    "createProgress": {
      "id": 4,
      "status": 987.65,
      "completed": false,
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "enrollment": SectionEnrollment
    }
  }
}

createQuestion

Description

Create a new question. This new question must be associated with a question pool to be created

Response

Returns a Question!

Arguments
Name Description
input - CreateQuestion

Example

Query
mutation CreateQuestion($input: CreateQuestion) {
  createQuestion(input: $input) {
    id
    number
    variant
    text
    points
    answers {
      id
      text
      correct
      weight
      index
      parentQuestion {
        ...QuestionFragment
      }
    }
    parent {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    instances {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"input": CreateQuestion}
Response
{
  "data": {
    "createQuestion": {
      "id": "4",
      "number": 987,
      "variant": 987,
      "text": "xyz789",
      "points": 987.65,
      "answers": [Answer],
      "parent": Quiz,
      "instances": [QuizInstance]
    }
  }
}

createQuiz

Description

Create a new quiz record and associate it with its parent Module

Response

Returns a Quiz!

Arguments
Name Description
input - CreateQuiz

Example

Query
mutation CreateQuiz($input: CreateQuiz) {
  createQuiz(input: $input) {
    id
    totalPoints
    instructions
    dueAt
    timeLimit
    numQuestions
    minScore
    parentModule {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    questionPool {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    instances {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"input": CreateQuiz}
Response
{
  "data": {
    "createQuiz": {
      "id": "4",
      "totalPoints": 987.65,
      "instructions": "abc123",
      "dueAt": "2007-12-03",
      "timeLimit": 987,
      "numQuestions": 123,
      "minScore": 123.45,
      "parentModule": Module,
      "questionPool": [Question],
      "instances": [QuizInstance]
    }
  }
}

createQuizInstance

Description

Create a new instance of a quiz. Give just the ID of the parent quiz. This will randomly select the correct number of questions using random variants of each question

Response

Returns a QuizInstance!

Arguments
Name Description
quizID - ID!

Example

Query
mutation CreateQuizInstance($quizID: ID!) {
  createQuizInstance(quizID: $quizID) {
    id
    quiz {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    questions {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    quizResult {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"quizID": "4"}
Response
{
  "data": {
    "createQuizInstance": {
      "id": "4",
      "quiz": Quiz,
      "questions": [Question],
      "quizResult": QuizResult
    }
  }
}

createThread

Description

Creates a new thread

Response

Returns a Thread

Arguments
Name Description
data - IThreadCreateInput!

Example

Query
mutation CreateThread($data: IThreadCreateInput!) {
  createThread(data: $data) {
    id
    title
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    body
    comments {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    topics
    upvotes {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    usersWatching {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    createdAt
    updatedAt
    parentThread {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    parentThreadID
  }
}
Variables
{"data": IThreadCreateInput}
Response
{
  "data": {
    "createThread": {
      "id": 4,
      "title": "abc123",
      "author": User,
      "body": "abc123",
      "comments": [Thread],
      "topics": ["xyz789"],
      "upvotes": [User],
      "usersWatching": [User],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "parentThread": Thread,
      "parentThreadID": 4
    }
  }
}

createUser

Description

Creates User

Response

Returns a User!

Arguments
Name Description
input - NewUser

Example

Query
mutation CreateUser($input: NewUser) {
  createUser(input: $input) {
    id
    openID
    email
    picURL
    createdAt
    firstName
    lastName
    middleName
    isAdmin
    isActive
    biography
    phoneNumber
    dob
    social {
      id
      twitter
      github
      linkedin
      facebook
      portfolio
      account {
        ...UserFragment
      }
    }
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    tokens
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    assignmentGraded {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    instructorProfile {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    watchedThreads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    watchedThreadIDs
    createdThreads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
  }
}
Variables
{"input": NewUser}
Response
{
  "data": {
    "createUser": {
      "id": 4,
      "openID": "4",
      "email": "xyz789",
      "picURL": "xyz789",
      "createdAt": "2007-12-03",
      "firstName": "xyz789",
      "lastName": "abc123",
      "middleName": "xyz789",
      "isAdmin": true,
      "isActive": false,
      "biography": "abc123",
      "phoneNumber": "abc123",
      "dob": "2007-12-03",
      "social": Social,
      "plan": PlanOfStudy,
      "tokens": ["4"],
      "feedback": [SectionFeedback],
      "assignmentGraded": [AssignmentResult],
      "instructorProfile": InstructorProfile,
      "watchedThreads": [Thread],
      "watchedThreadIDs": [4],
      "createdThreads": [Thread]
    }
  }
}

deleteAnswer

Description

Delete an answer record based on its document ID

Response

Returns an Answer!

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteAnswer($id: ID!) {
  deleteAnswer(id: $id) {
    id
    text
    correct
    weight
    index
    parentQuestion {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteAnswer": {
      "id": "4",
      "text": "abc123",
      "correct": false,
      "weight": 123.45,
      "index": "xyz789",
      "parentQuestion": Question
    }
  }
}

deleteAssignment

Description

Deletes assignments in Section

Response

Returns a Section

Arguments
Name Description
section - ID!
id - ID!

Example

Query
mutation DeleteAssignment(
  $section: ID!,
  $id: ID!
) {
  deleteAssignment(
    section: $section,
    id: $id
  ) {
    id
    sectionNumber
    sectionName
    description
    duration
    intro
    numSlides
    keywords
    objectives
    createdAt
    updatedAt
    assignments {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
    members {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    parentSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    subSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    courseIDs
  }
}
Variables
{
  "section": "4",
  "id": "4"
}
Response
{
  "data": {
    "deleteAssignment": {
      "id": "4",
      "sectionNumber": 987,
      "sectionName": "abc123",
      "description": "abc123",
      "duration": 987.65,
      "intro": "abc123",
      "numSlides": 987,
      "keywords": ["xyz789"],
      "objectives": ["abc123"],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "assignments": [Assignment],
      "members": [SectionEnrollment],
      "feedback": [SectionFeedback],
      "parentSections": [Section],
      "subSections": [Section],
      "collections": [Collection],
      "courseIDs": [4]
    }
  }
}

deleteAssignmentResult

Description

Assignment result is deleted

Response

Returns an AssignmentResult

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteAssignmentResult($id: ID!) {
  deleteAssignmentResult(id: $id) {
    id
    submittedAt
    result
    feedback
    submissionURL
    fileType
    student {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    gradedBy {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    assignment {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteAssignmentResult": {
      "id": "4",
      "submittedAt": "2007-12-03",
      "result": 123.45,
      "feedback": "xyz789",
      "submissionURL": "abc123",
      "fileType": "xyz789",
      "student": PlanOfStudy,
      "gradedBy": User,
      "assignment": Assignment
    }
  }
}

deleteContent

Description

Delete an existing content record

Response

Returns a Content

Arguments
Name Description
contentID - ID!

Example

Query
mutation DeleteContent($contentID: ID!) {
  deleteContent(contentID: $contentID) {
    id
    type
    link
    parent {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    primary
  }
}
Variables
{"contentID": "4"}
Response
{
  "data": {
    "deleteContent": {
      "id": 4,
      "type": "PDF",
      "link": "xyz789",
      "parent": Module,
      "primary": true
    }
  }
}

deleteCourse

Description

deletes all Courses referring id

Response

Returns a Course

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteCourse($id: ID!) {
  deleteCourse(id: $id) {
    id
    name
    number
    prefix
    sectionIDs
    required
    carnegieHours
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteCourse": {
      "id": 4,
      "name": "abc123",
      "number": 987,
      "prefix": "xyz789",
      "sectionIDs": [4],
      "required": true,
      "carnegieHours": 987
    }
  }
}

deleteLearningPath

Description

Delete an existing learning path

Response

Returns a LearningPath!

Arguments
Name Description
planID - ID!
pathID - ID!

Example

Query
mutation DeleteLearningPath(
  $planID: ID!,
  $pathID: ID!
) {
  deleteLearningPath(
    planID: $planID,
    pathID: $pathID
  ) {
    id
    createdAt
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    planID
    paths {
      id
      createdAt
      updatedAt
      course {
        ...CoursePathFragment
      }
      status
      hoursSatisfies
      learningOutcomes
    }
  }
}
Variables
{"planID": 4, "pathID": 4}
Response
{
  "data": {
    "deleteLearningPath": {
      "id": 4,
      "createdAt": "2007-12-03",
      "plan": PlanOfStudy,
      "planID": "4",
      "paths": [Path]
    }
  }
}

deleteManyModule

Response

Returns a Boolean

Arguments
Name Description
id - [String!]!

Example

Query
mutation DeleteManyModule($id: [String!]!) {
  deleteManyModule(id: $id)
}
Variables
{"id": ["abc123"]}
Response
{"data": {"deleteManyModule": false}}

deleteModule

Response

Returns a Module

Arguments
Name Description
id - String!

Example

Query
mutation DeleteModule($id: String!) {
  deleteModule(id: $id) {
    id
    prefix
    number
    name
    content {
      id
      type
      link
      parent {
        ...ModuleFragment
      }
      primary
    }
    threads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    collectionIDs
    position
    quizzes {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
    objectives
    keywords
    hours
    description
    instructor {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    instructorID
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "deleteModule": {
      "id": "4",
      "prefix": "xyz789",
      "number": 987,
      "name": "xyz789",
      "content": [Content],
      "threads": [Thread],
      "collections": [Collection],
      "collectionIDs": ["4"],
      "position": 123,
      "quizzes": [Quiz],
      "moduleProgress": [ModuleProgress],
      "objectives": ["abc123"],
      "keywords": ["abc123"],
      "hours": 987.65,
      "description": "xyz789",
      "instructor": InstructorProfile,
      "instructorID": 4
    }
  }
}

deletePlan

Description

Deleting the PlanOfStudy

Response

Returns a PlanOfStudy

Arguments
Name Description
id - ID!

Example

Query
mutation DeletePlan($id: ID!) {
  deletePlan(id: $id) {
    id
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    sections {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    sectionsLeft {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    quizResults {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deletePlan": {
      "id": 4,
      "student": User,
      "sections": [SectionEnrollment],
      "assignmentResults": [AssignmentResult],
      "sectionsLeft": [SectionEnrollment],
      "quizResults": [QuizResult]
    }
  }
}

deleteProgress

Description

Delete a progress document by the given ID. Returns true if the document was deleted, Error otherwise.

Response

Returns a Boolean!

Arguments
Name Description
id - ID! The database defined ID of the progress document to be deleted

Example

Query
mutation DeleteProgress($id: ID!) {
  deleteProgress(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteProgress": false}}

deleteQuestion

Description

Delete an existing question record give its document ID. It is important to note that deleting a question will also delete ALL associated Answer records

Response

Returns a Question!

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteQuestion($id: ID!) {
  deleteQuestion(id: $id) {
    id
    number
    variant
    text
    points
    answers {
      id
      text
      correct
      weight
      index
      parentQuestion {
        ...QuestionFragment
      }
    }
    parent {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    instances {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteQuestion": {
      "id": "4",
      "number": 987,
      "variant": 987,
      "text": "xyz789",
      "points": 123.45,
      "answers": [Answer],
      "parent": Quiz,
      "instances": [QuizInstance]
    }
  }
}

deleteQuiz

Description

Delete a quiz record given its document ID

Response

Returns a Quiz!

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteQuiz($id: ID!) {
  deleteQuiz(id: $id) {
    id
    totalPoints
    instructions
    dueAt
    timeLimit
    numQuestions
    minScore
    parentModule {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    questionPool {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    instances {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteQuiz": {
      "id": "4",
      "totalPoints": 987.65,
      "instructions": "xyz789",
      "dueAt": "2007-12-03",
      "timeLimit": 987,
      "numQuestions": 987,
      "minScore": 123.45,
      "parentModule": Module,
      "questionPool": [Question],
      "instances": [QuizInstance]
    }
  }
}

deleteQuizInstance

Description

Delete an existing quiz instance given its document ID. This will not delete the related quiz result.

Response

Returns a QuizInstance!

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteQuizInstance($id: ID!) {
  deleteQuizInstance(id: $id) {
    id
    quiz {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    questions {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    quizResult {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deleteQuizInstance": {
      "id": "4",
      "quiz": Quiz,
      "questions": [Question],
      "quizResult": QuizResult
    }
  }
}

deleteQuizResult

Description

Delete a quiz Submission given its document ID

Response

Returns a QuizResult

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteQuizResult($id: ID!) {
  deleteQuizResult(id: $id) {
    id
    score
    answers
    submittedAt
    student {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    quizInstance {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deleteQuizResult": {
      "id": "abc123",
      "score": 987.65,
      "answers": ["abc123"],
      "submittedAt": "2007-12-03",
      "student": PlanOfStudy,
      "quizInstance": QuizInstance
    }
  }
}

deleteSection

Description

Deletes the entire Section

Response

Returns a Section

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteSection($id: ID!) {
  deleteSection(id: $id) {
    id
    sectionNumber
    sectionName
    description
    duration
    intro
    numSlides
    keywords
    objectives
    createdAt
    updatedAt
    assignments {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
    members {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    parentSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    subSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    courseIDs
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deleteSection": {
      "id": "4",
      "sectionNumber": 123,
      "sectionName": "abc123",
      "description": "abc123",
      "duration": 123.45,
      "intro": "xyz789",
      "numSlides": 987,
      "keywords": ["xyz789"],
      "objectives": ["xyz789"],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "assignments": [Assignment],
      "members": [SectionEnrollment],
      "feedback": [SectionFeedback],
      "parentSections": [Section],
      "subSections": [Section],
      "collections": [Collection],
      "courseIDs": ["4"]
    }
  }
}

deleteSectionEnrollment

Description

Delete SectionEnrollment

Response

Returns a SectionEnrollment

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteSectionEnrollment($id: ID!) {
  deleteSectionEnrollment(id: $id) {
    id
    enrolledAt
    role
    status
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    inactivePlan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    progress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteSectionEnrollment": {
      "id": 4,
      "enrolledAt": "2007-12-03",
      "role": "STUDENT",
      "status": "ACTIVE",
      "section": Section,
      "plan": PlanOfStudy,
      "inactivePlan": PlanOfStudy,
      "progress": Progress,
      "moduleProgress": [ModuleProgress]
    }
  }
}

deleteSectionFeedback

Description

Section feedback is deleted

Response

Returns a SectionFeedback

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteSectionFeedback($id: ID!) {
  deleteSectionFeedback(id: $id) {
    id
    feedback
    rating
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteSectionFeedback": {
      "id": 4,
      "feedback": "xyz789",
      "rating": 123,
      "student": User,
      "section": Section
    }
  }
}

deleteSocial

Description

Deletes Social

Response

Returns a Social

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteSocial($id: ID!) {
  deleteSocial(id: $id) {
    id
    twitter
    github
    linkedin
    facebook
    portfolio
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deleteSocial": {
      "id": 4,
      "twitter": "abc123",
      "github": "xyz789",
      "linkedin": "xyz789",
      "facebook": "xyz789",
      "portfolio": "xyz789",
      "account": User
    }
  }
}

deleteThread

Response

Returns a Thread

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteThread($id: ID!) {
  deleteThread(id: $id) {
    id
    title
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    body
    comments {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    topics
    upvotes {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    usersWatching {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    createdAt
    updatedAt
    parentThread {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    parentThreadID
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deleteThread": {
      "id": "4",
      "title": "xyz789",
      "author": User,
      "body": "abc123",
      "comments": [Thread],
      "topics": ["abc123"],
      "upvotes": [User],
      "usersWatching": [User],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "parentThread": Thread,
      "parentThreadID": "4"
    }
  }
}

deleteUser

Description

deletes user

Response

Returns a User

Arguments
Name Description
openId - ID!

Example

Query
mutation DeleteUser($openId: ID!) {
  deleteUser(openId: $openId) {
    id
    openID
    email
    picURL
    createdAt
    firstName
    lastName
    middleName
    isAdmin
    isActive
    biography
    phoneNumber
    dob
    social {
      id
      twitter
      github
      linkedin
      facebook
      portfolio
      account {
        ...UserFragment
      }
    }
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    tokens
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    assignmentGraded {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    instructorProfile {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    watchedThreads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    watchedThreadIDs
    createdThreads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
  }
}
Variables
{"openId": "4"}
Response
{
  "data": {
    "deleteUser": {
      "id": "4",
      "openID": "4",
      "email": "xyz789",
      "picURL": "abc123",
      "createdAt": "2007-12-03",
      "firstName": "abc123",
      "lastName": "abc123",
      "middleName": "abc123",
      "isAdmin": false,
      "isActive": false,
      "biography": "abc123",
      "phoneNumber": "xyz789",
      "dob": "2007-12-03",
      "social": Social,
      "plan": PlanOfStudy,
      "tokens": ["4"],
      "feedback": [SectionFeedback],
      "assignmentGraded": [AssignmentResult],
      "instructorProfile": InstructorProfile,
      "watchedThreads": [Thread],
      "watchedThreadIDs": [4],
      "createdThreads": [Thread]
    }
  }
}

deleteUserSocial

Description

Deletes User social

Response

Returns a Social

Arguments
Name Description
userId - ID!

Example

Query
mutation DeleteUserSocial($userId: ID!) {
  deleteUserSocial(userId: $userId) {
    id
    twitter
    github
    linkedin
    facebook
    portfolio
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
  }
}
Variables
{"userId": "4"}
Response
{
  "data": {
    "deleteUserSocial": {
      "id": "4",
      "twitter": "abc123",
      "github": "abc123",
      "linkedin": "abc123",
      "facebook": "abc123",
      "portfolio": "abc123",
      "account": User
    }
  }
}

downvoteThread

Response

Returns a Thread

Arguments
Name Description
id - ID!
userID - ID!

Example

Query
mutation DownvoteThread(
  $id: ID!,
  $userID: ID!
) {
  downvoteThread(
    id: $id,
    userID: $userID
  ) {
    id
    title
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    body
    comments {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    topics
    upvotes {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    usersWatching {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    createdAt
    updatedAt
    parentThread {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    parentThreadID
  }
}
Variables
{"id": 4, "userID": "4"}
Response
{
  "data": {
    "downvoteThread": {
      "id": "4",
      "title": "abc123",
      "author": User,
      "body": "abc123",
      "comments": [Thread],
      "topics": ["xyz789"],
      "upvotes": [User],
      "usersWatching": [User],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "parentThread": Thread,
      "parentThreadID": 4
    }
  }
}

login

Response

Returns a String

Arguments
Name Description
code - String

Example

Query
mutation Login($code: String) {
  login(code: $code)
}
Variables
{"code": "abc123"}
Response
{"data": {"login": "abc123"}}

newGroupMessage

Description

Send a message to a group of users.

Response

Returns a Boolean!

Arguments
Name Description
groupID - ID!
message - String!
senderID - ID!

Example

Query
mutation NewGroupMessage(
  $groupID: ID!,
  $message: String!,
  $senderID: ID!
) {
  newGroupMessage(
    groupID: $groupID,
    message: $message,
    senderID: $senderID
  )
}
Variables
{
  "groupID": 4,
  "message": "xyz789",
  "senderID": "4"
}
Response
{"data": {"newGroupMessage": true}}

pairCourseSection

Response

Returns a Section!

Arguments
Name Description
courseId - ID!
sectionId - ID!

Example

Query
mutation PairCourseSection(
  $courseId: ID!,
  $sectionId: ID!
) {
  pairCourseSection(
    courseId: $courseId,
    sectionId: $sectionId
  ) {
    id
    sectionNumber
    sectionName
    description
    duration
    intro
    numSlides
    keywords
    objectives
    createdAt
    updatedAt
    assignments {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
    members {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    parentSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    subSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    courseIDs
  }
}
Variables
{"courseId": 4, "sectionId": "4"}
Response
{
  "data": {
    "pairCourseSection": {
      "id": "4",
      "sectionNumber": 987,
      "sectionName": "xyz789",
      "description": "abc123",
      "duration": 123.45,
      "intro": "xyz789",
      "numSlides": 123,
      "keywords": ["abc123"],
      "objectives": ["xyz789"],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "assignments": [Assignment],
      "members": [SectionEnrollment],
      "feedback": [SectionFeedback],
      "parentSections": [Section],
      "subSections": [Section],
      "collections": [Collection],
      "courseIDs": ["4"]
    }
  }
}

submitQuiz

Description

Submit a quiz to be graded. This will create a QuizResultRecord with the users score.

Response

Returns a QuizResult

Arguments
Name Description
input - QuizSubmission!

Example

Query
mutation SubmitQuiz($input: QuizSubmission!) {
  submitQuiz(input: $input) {
    id
    score
    answers
    submittedAt
    student {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    quizInstance {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"input": QuizSubmission}
Response
{
  "data": {
    "submitQuiz": {
      "id": "xyz789",
      "score": 123.45,
      "answers": ["xyz789"],
      "submittedAt": "2007-12-03",
      "student": PlanOfStudy,
      "quizInstance": QuizInstance
    }
  }
}

unpairCourseSection

Description

Course Section is Unpaired Relating to Course Id and mobile Id

Response

Returns a Section

Arguments
Name Description
courseId - ID!
sectionId - ID!

Example

Query
mutation UnpairCourseSection(
  $courseId: ID!,
  $sectionId: ID!
) {
  unpairCourseSection(
    courseId: $courseId,
    sectionId: $sectionId
  ) {
    id
    sectionNumber
    sectionName
    description
    duration
    intro
    numSlides
    keywords
    objectives
    createdAt
    updatedAt
    assignments {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
    members {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    parentSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    subSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    courseIDs
  }
}
Variables
{"courseId": 4, "sectionId": "4"}
Response
{
  "data": {
    "unpairCourseSection": {
      "id": 4,
      "sectionNumber": 987,
      "sectionName": "xyz789",
      "description": "abc123",
      "duration": 987.65,
      "intro": "abc123",
      "numSlides": 123,
      "keywords": ["xyz789"],
      "objectives": ["abc123"],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "assignments": [Assignment],
      "members": [SectionEnrollment],
      "feedback": [SectionFeedback],
      "parentSections": [Section],
      "subSections": [Section],
      "collections": [Collection],
      "courseIDs": ["4"]
    }
  }
}

updateAnswer

Description

Update a single answer record given its document ID. Most fields can be updated through this query.

Response

Returns [Answer!]!

Arguments
Name Description
id - ID!
values - UpdateAnswer!

Example

Query
mutation UpdateAnswer(
  $id: ID!,
  $values: UpdateAnswer!
) {
  updateAnswer(
    id: $id,
    values: $values
  ) {
    id
    text
    correct
    weight
    index
    parentQuestion {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"id": 4, "values": UpdateAnswer}
Response
{
  "data": {
    "updateAnswer": [
      {
        "id": 4,
        "text": "xyz789",
        "correct": true,
        "weight": 123.45,
        "index": "abc123",
        "parentQuestion": Question
      }
    ]
  }
}

updateAssignment

Description

Updates Assignements

Response

Returns an Assignment

Arguments
Name Description
id - ID!
input - AssignmentInput

Example

Query
mutation UpdateAssignment(
  $id: ID!,
  $input: AssignmentInput
) {
  updateAssignment(
    id: $id,
    input: $input
  ) {
    id
    updatedAt
    name
    dueAt
    contentURL
    contentType
    acceptedTypes
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "input": AssignmentInput
}
Response
{
  "data": {
    "updateAssignment": {
      "id": 4,
      "updatedAt": "2007-12-03",
      "name": "xyz789",
      "dueAt": "2007-12-03",
      "contentURL": "xyz789",
      "contentType": "abc123",
      "acceptedTypes": "DOCX",
      "section": Section,
      "assignmentResults": [AssignmentResult]
    }
  }
}

updateAssignmentResult

Description

Updated the results of an Assignment

Response

Returns an AssignmentResult

Arguments
Name Description
id - ID!
result - Float!

Example

Query
mutation UpdateAssignmentResult(
  $id: ID!,
  $result: Float!
) {
  updateAssignmentResult(
    id: $id,
    result: $result
  ) {
    id
    submittedAt
    result
    feedback
    submissionURL
    fileType
    student {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    gradedBy {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    assignment {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
  }
}
Variables
{"id": "4", "result": 987.65}
Response
{
  "data": {
    "updateAssignmentResult": {
      "id": 4,
      "submittedAt": "2007-12-03",
      "result": 987.65,
      "feedback": "abc123",
      "submissionURL": "xyz789",
      "fileType": "xyz789",
      "student": PlanOfStudy,
      "gradedBy": User,
      "assignment": Assignment
    }
  }
}

updateCollection

Description

Update a collection given its ID and the new data to update

Response

Returns a Collection!

Arguments
Name Description
id - ID!
data - CollectionFields!

Example

Query
mutation UpdateCollection(
  $id: ID!,
  $data: CollectionFields!
) {
  updateCollection(
    id: $id,
    data: $data
  ) {
    id
    name
    createdAt
    updatedAt
    modules {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    moduleIDs
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    sectionID
    position
  }
}
Variables
{"id": 4, "data": CollectionFields}
Response
{
  "data": {
    "updateCollection": {
      "id": 4,
      "name": "xyz789",
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "modules": [Module],
      "moduleIDs": ["4"],
      "section": Section,
      "sectionID": 4,
      "position": 987
    }
  }
}

updateContent

Description

Update a content Record

Response

Returns [Content!]

Arguments
Name Description
input - ContentFields!

Example

Query
mutation UpdateContent($input: ContentFields!) {
  updateContent(input: $input) {
    id
    type
    link
    parent {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    primary
  }
}
Variables
{"input": ContentFields}
Response
{
  "data": {
    "updateContent": [
      {
        "id": 4,
        "type": "PDF",
        "link": "abc123",
        "parent": Module,
        "primary": true
      }
    ]
  }
}

updateCourse

Description

Updates Courses

Response

Returns a Course

Arguments
Name Description
id - ID!
input - CourseInput

Example

Query
mutation UpdateCourse(
  $id: ID!,
  $input: CourseInput
) {
  updateCourse(
    id: $id,
    input: $input
  ) {
    id
    name
    number
    prefix
    sectionIDs
    required
    carnegieHours
  }
}
Variables
{"id": 4, "input": CourseInput}
Response
{
  "data": {
    "updateCourse": {
      "id": 4,
      "name": "abc123",
      "number": 123,
      "prefix": "xyz789",
      "sectionIDs": ["4"],
      "required": true,
      "carnegieHours": 123
    }
  }
}

updateInstructorProfile

Description

Updates the instructor profile of the user given the user ID

Response

Returns an InstructorProfile

Arguments
Name Description
id - ID! The unique ID of the user that relates to the instructor profile
input - InstructorProfileInput!

Example

Query
mutation UpdateInstructorProfile(
  $id: ID!,
  $input: InstructorProfileInput!
) {
  updateInstructorProfile(
    id: $id,
    input: $input
  ) {
    id
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    title
    officeLocation
    officeHours
    contactPolicy
    background
    researchInterest
    selectedPapersAndPublications
  }
}
Variables
{
  "id": "4",
  "input": InstructorProfileInput
}
Response
{
  "data": {
    "updateInstructorProfile": {
      "id": "4",
      "account": User,
      "title": "xyz789",
      "officeLocation": "xyz789",
      "officeHours": ["abc123"],
      "contactPolicy": "xyz789",
      "background": "abc123",
      "researchInterest": ["abc123"],
      "selectedPapersAndPublications": [
        "abc123"
      ]
    }
  }
}

updateLearningPath

Description

Update an existing learning path with the given program structure

Response

Returns a LearningPath!

Arguments
Name Description
planID - ID!
pathID - ID!
input - PathInput!

Example

Query
mutation UpdateLearningPath(
  $planID: ID!,
  $pathID: ID!,
  $input: PathInput!
) {
  updateLearningPath(
    planID: $planID,
    pathID: $pathID,
    input: $input
  ) {
    id
    createdAt
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    planID
    paths {
      id
      createdAt
      updatedAt
      course {
        ...CoursePathFragment
      }
      status
      hoursSatisfies
      learningOutcomes
    }
  }
}
Variables
{
  "planID": 4,
  "pathID": "4",
  "input": PathInput
}
Response
{
  "data": {
    "updateLearningPath": {
      "id": "4",
      "createdAt": "2007-12-03",
      "plan": PlanOfStudy,
      "planID": 4,
      "paths": [Path]
    }
  }
}

updateModule

Description

Update a module given its ID The input parameter is the data that will be updated in the module as well as the ID of the module to be updated. The replaceObj parameter specifies the mode in which module objectives should be updated. A true value will repalce existing objectives with the new list passed in, whereas a false value (default) will add the strings in the list to the existing data.

Response

Returns a Module

Arguments
Name Description
input - ModuleFields
replaceObj - Boolean

Example

Query
mutation UpdateModule(
  $input: ModuleFields,
  $replaceObj: Boolean
) {
  updateModule(
    input: $input,
    replaceObj: $replaceObj
  ) {
    id
    prefix
    number
    name
    content {
      id
      type
      link
      parent {
        ...ModuleFragment
      }
      primary
    }
    threads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    collectionIDs
    position
    quizzes {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
    objectives
    keywords
    hours
    description
    instructor {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    instructorID
  }
}
Variables
{"input": ModuleFields, "replaceObj": true}
Response
{
  "data": {
    "updateModule": {
      "id": 4,
      "prefix": "xyz789",
      "number": 123,
      "name": "abc123",
      "content": [Content],
      "threads": [Thread],
      "collections": [Collection],
      "collectionIDs": [4],
      "position": 123,
      "quizzes": [Quiz],
      "moduleProgress": [ModuleProgress],
      "objectives": ["abc123"],
      "keywords": ["xyz789"],
      "hours": 987.65,
      "description": "xyz789",
      "instructor": InstructorProfile,
      "instructorID": "4"
    }
  }
}

updatePlan

Description

Updating the PlanOfStudy

Response

Returns a PlanOfStudy

Arguments
Name Description
id - ID!
input - PlanInput

Example

Query
mutation UpdatePlan(
  $id: ID!,
  $input: PlanInput
) {
  updatePlan(
    id: $id,
    input: $input
  ) {
    id
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    sections {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    assignmentResults {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    sectionsLeft {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    quizResults {
      id
      score
      answers
      submittedAt
      student {
        ...PlanOfStudyFragment
      }
      quizInstance {
        ...QuizInstanceFragment
      }
    }
  }
}
Variables
{"id": 4, "input": PlanInput}
Response
{
  "data": {
    "updatePlan": {
      "id": "4",
      "student": User,
      "sections": [SectionEnrollment],
      "assignmentResults": [AssignmentResult],
      "sectionsLeft": [SectionEnrollment],
      "quizResults": [QuizResult]
    }
  }
}

updateProgress

Description

Update a progress document by either the Progress document's ID or by the enrollmentID. Returns the updated document if successful, Error otherwise.

Response

Returns a Progress!

Arguments
Name Description
status - Float! The status of the progress in a Float or Int
id - ID The database defined ID of the progress document to be updated. If this is given, the enrollmentID parameters will be ignored.
enrollmentID - ID The database defined ID of the enrollment document that holds the progress to be updated. If this is given, the id parameter will be ignored.

Example

Query
mutation UpdateProgress(
  $status: Float!,
  $id: ID,
  $enrollmentID: ID
) {
  updateProgress(
    status: $status,
    id: $id,
    enrollmentID: $enrollmentID
  ) {
    id
    status
    completed
    createdAt
    updatedAt
    enrollment {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
  }
}
Variables
{"status": 987.65, "id": 4, "enrollmentID": 4}
Response
{
  "data": {
    "updateProgress": {
      "id": "4",
      "status": 123.45,
      "completed": true,
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "enrollment": SectionEnrollment
    }
  }
}

updateQuestion

Description

Update a single question record given its document ID. Most fields can be updated through this query.

Response

Returns [Question!]!

Arguments
Name Description
id - ID!
values - UpdateQuestion!

Example

Query
mutation UpdateQuestion(
  $id: ID!,
  $values: UpdateQuestion!
) {
  updateQuestion(
    id: $id,
    values: $values
  ) {
    id
    number
    variant
    text
    points
    answers {
      id
      text
      correct
      weight
      index
      parentQuestion {
        ...QuestionFragment
      }
    }
    parent {
      id
      totalPoints
      instructions
      dueAt
      timeLimit
      numQuestions
      minScore
      parentModule {
        ...ModuleFragment
      }
      questionPool {
        ...QuestionFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    instances {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "values": UpdateQuestion
}
Response
{
  "data": {
    "updateQuestion": [
      {
        "id": "4",
        "number": 123,
        "variant": 123,
        "text": "xyz789",
        "points": 123.45,
        "answers": [Answer],
        "parent": Quiz,
        "instances": [QuizInstance]
      }
    ]
  }
}

updateQuiz

Description

Update a single quiz record given its document ID. Most fields can be updated through this query.

Response

Returns [Quiz!]!

Arguments
Name Description
id - ID!
values - UpdateQuiz!

Example

Query
mutation UpdateQuiz(
  $id: ID!,
  $values: UpdateQuiz!
) {
  updateQuiz(
    id: $id,
    values: $values
  ) {
    id
    totalPoints
    instructions
    dueAt
    timeLimit
    numQuestions
    minScore
    parentModule {
      id
      prefix
      number
      name
      content {
        ...ContentFragment
      }
      threads {
        ...ThreadFragment
      }
      collections {
        ...CollectionFragment
      }
      collectionIDs
      position
      quizzes {
        ...QuizFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
      objectives
      keywords
      hours
      description
      instructor {
        ...InstructorProfileFragment
      }
      instructorID
    }
    questionPool {
      id
      number
      variant
      text
      points
      answers {
        ...AnswerFragment
      }
      parent {
        ...QuizFragment
      }
      instances {
        ...QuizInstanceFragment
      }
    }
    instances {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "values": UpdateQuiz
}
Response
{
  "data": {
    "updateQuiz": [
      {
        "id": "4",
        "totalPoints": 987.65,
        "instructions": "xyz789",
        "dueAt": "2007-12-03",
        "timeLimit": 123,
        "numQuestions": 987,
        "minScore": 123.45,
        "parentModule": Module,
        "questionPool": [Question],
        "instances": [QuizInstance]
      }
    ]
  }
}

updateQuizScore

Description

Update the score of a Quiz Result. Takes the quiz id and the new score.

Response

Returns a QuizResult

Arguments
Name Description
id - ID!
newScore - Float!

Example

Query
mutation UpdateQuizScore(
  $id: ID!,
  $newScore: Float!
) {
  updateQuizScore(
    id: $id,
    newScore: $newScore
  ) {
    id
    score
    answers
    submittedAt
    student {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    quizInstance {
      id
      quiz {
        ...QuizFragment
      }
      questions {
        ...QuestionFragment
      }
      quizResult {
        ...QuizResultFragment
      }
    }
  }
}
Variables
{"id": 4, "newScore": 987.65}
Response
{
  "data": {
    "updateQuizScore": {
      "id": "xyz789",
      "score": 123.45,
      "answers": ["abc123"],
      "submittedAt": "2007-12-03",
      "student": PlanOfStudy,
      "quizInstance": QuizInstance
    }
  }
}

updateSection

Description

updates a Section

Response

Returns a Section

Arguments
Name Description
input - UpdateSection

Example

Query
mutation UpdateSection($input: UpdateSection) {
  updateSection(input: $input) {
    id
    sectionNumber
    sectionName
    description
    duration
    intro
    numSlides
    keywords
    objectives
    createdAt
    updatedAt
    assignments {
      id
      updatedAt
      name
      dueAt
      contentURL
      contentType
      acceptedTypes
      section {
        ...SectionFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
    }
    members {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    parentSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    subSections {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    collections {
      id
      name
      createdAt
      updatedAt
      modules {
        ...ModuleFragment
      }
      moduleIDs
      section {
        ...SectionFragment
      }
      sectionID
      position
    }
    courseIDs
  }
}
Variables
{"input": UpdateSection}
Response
{
  "data": {
    "updateSection": {
      "id": "4",
      "sectionNumber": 123,
      "sectionName": "abc123",
      "description": "xyz789",
      "duration": 123.45,
      "intro": "xyz789",
      "numSlides": 123,
      "keywords": ["xyz789"],
      "objectives": ["abc123"],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "assignments": [Assignment],
      "members": [SectionEnrollment],
      "feedback": [SectionFeedback],
      "parentSections": [Section],
      "subSections": [Section],
      "collections": [Collection],
      "courseIDs": ["4"]
    }
  }
}

updateSectionEnrollment

Response

Returns a SectionEnrollment

Arguments
Name Description
id - ID! Section enrollment is updated relating to id
input - SectionEnrollmentInput Section enrollment input

Example

Query
mutation UpdateSectionEnrollment(
  $id: ID!,
  $input: SectionEnrollmentInput
) {
  updateSectionEnrollment(
    id: $id,
    input: $input
  ) {
    id
    enrolledAt
    role
    status
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    inactivePlan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    progress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
    }
    moduleProgress {
      id
      status
      completed
      createdAt
      updatedAt
      enrollment {
        ...SectionEnrollmentFragment
      }
      module {
        ...ModuleFragment
      }
    }
  }
}
Variables
{"id": 4, "input": SectionEnrollmentInput}
Response
{
  "data": {
    "updateSectionEnrollment": {
      "id": "4",
      "enrolledAt": "2007-12-03",
      "role": "STUDENT",
      "status": "ACTIVE",
      "section": Section,
      "plan": PlanOfStudy,
      "inactivePlan": PlanOfStudy,
      "progress": Progress,
      "moduleProgress": [ModuleProgress]
    }
  }
}

updateSectionFeedback

Description

Section feedback is updated

Response

Returns a SectionFeedback

Arguments
Name Description
id - ID!
input - SectionFeedbackUpdate

Example

Query
mutation UpdateSectionFeedback(
  $id: ID!,
  $input: SectionFeedbackUpdate
) {
  updateSectionFeedback(
    id: $id,
    input: $input
  ) {
    id
    feedback
    rating
    student {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    section {
      id
      sectionNumber
      sectionName
      description
      duration
      intro
      numSlides
      keywords
      objectives
      createdAt
      updatedAt
      assignments {
        ...AssignmentFragment
      }
      members {
        ...SectionEnrollmentFragment
      }
      feedback {
        ...SectionFeedbackFragment
      }
      parentSections {
        ...SectionFragment
      }
      subSections {
        ...SectionFragment
      }
      collections {
        ...CollectionFragment
      }
      courseIDs
    }
  }
}
Variables
{
  "id": "4",
  "input": SectionFeedbackUpdate
}
Response
{
  "data": {
    "updateSectionFeedback": {
      "id": "4",
      "feedback": "abc123",
      "rating": 123,
      "student": User,
      "section": Section
    }
  }
}

updateSocial

Description

Updates Social to the user

Response

Returns a Social

Arguments
Name Description
id - ID!
input - SocialInput!

Example

Query
mutation UpdateSocial(
  $id: ID!,
  $input: SocialInput!
) {
  updateSocial(
    id: $id,
    input: $input
  ) {
    id
    twitter
    github
    linkedin
    facebook
    portfolio
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "input": SocialInput
}
Response
{
  "data": {
    "updateSocial": {
      "id": "4",
      "twitter": "abc123",
      "github": "xyz789",
      "linkedin": "abc123",
      "facebook": "xyz789",
      "portfolio": "xyz789",
      "account": User
    }
  }
}

updateThread

Response

Returns a Thread

Arguments
Name Description
id - ID!
data - IThreadCreateInput!

Example

Query
mutation UpdateThread(
  $id: ID!,
  $data: IThreadCreateInput!
) {
  updateThread(
    id: $id,
    data: $data
  ) {
    id
    title
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    body
    comments {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    topics
    upvotes {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    usersWatching {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    createdAt
    updatedAt
    parentThread {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    parentThreadID
  }
}
Variables
{"id": 4, "data": IThreadCreateInput}
Response
{
  "data": {
    "updateThread": {
      "id": 4,
      "title": "abc123",
      "author": User,
      "body": "xyz789",
      "comments": [Thread],
      "topics": ["xyz789"],
      "upvotes": [User],
      "usersWatching": [User],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "parentThread": Thread,
      "parentThreadID": "4"
    }
  }
}

updateUser

Description

Updates user

Response

Returns a User

Arguments
Name Description
input - UpdateUser

Example

Query
mutation UpdateUser($input: UpdateUser) {
  updateUser(input: $input) {
    id
    openID
    email
    picURL
    createdAt
    firstName
    lastName
    middleName
    isAdmin
    isActive
    biography
    phoneNumber
    dob
    social {
      id
      twitter
      github
      linkedin
      facebook
      portfolio
      account {
        ...UserFragment
      }
    }
    plan {
      id
      student {
        ...UserFragment
      }
      sections {
        ...SectionEnrollmentFragment
      }
      assignmentResults {
        ...AssignmentResultFragment
      }
      sectionsLeft {
        ...SectionEnrollmentFragment
      }
      quizResults {
        ...QuizResultFragment
      }
    }
    tokens
    feedback {
      id
      feedback
      rating
      student {
        ...UserFragment
      }
      section {
        ...SectionFragment
      }
    }
    assignmentGraded {
      id
      submittedAt
      result
      feedback
      submissionURL
      fileType
      student {
        ...PlanOfStudyFragment
      }
      gradedBy {
        ...UserFragment
      }
      assignment {
        ...AssignmentFragment
      }
    }
    instructorProfile {
      id
      account {
        ...UserFragment
      }
      title
      officeLocation
      officeHours
      contactPolicy
      background
      researchInterest
      selectedPapersAndPublications
    }
    watchedThreads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    watchedThreadIDs
    createdThreads {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
  }
}
Variables
{"input": UpdateUser}
Response
{
  "data": {
    "updateUser": {
      "id": "4",
      "openID": "4",
      "email": "abc123",
      "picURL": "xyz789",
      "createdAt": "2007-12-03",
      "firstName": "abc123",
      "lastName": "abc123",
      "middleName": "xyz789",
      "isAdmin": true,
      "isActive": true,
      "biography": "xyz789",
      "phoneNumber": "abc123",
      "dob": "2007-12-03",
      "social": Social,
      "plan": PlanOfStudy,
      "tokens": [4],
      "feedback": [SectionFeedback],
      "assignmentGraded": [AssignmentResult],
      "instructorProfile": InstructorProfile,
      "watchedThreads": [Thread],
      "watchedThreadIDs": [4],
      "createdThreads": [Thread]
    }
  }
}

updateUserSocial

Description

updates user social

Response

Returns a Social

Arguments
Name Description
userId - ID!
input - SocialInput!

Example

Query
mutation UpdateUserSocial(
  $userId: ID!,
  $input: SocialInput!
) {
  updateUserSocial(
    userId: $userId,
    input: $input
  ) {
    id
    twitter
    github
    linkedin
    facebook
    portfolio
    account {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
  }
}
Variables
{"userId": 4, "input": SocialInput}
Response
{
  "data": {
    "updateUserSocial": {
      "id": "4",
      "twitter": "abc123",
      "github": "xyz789",
      "linkedin": "abc123",
      "facebook": "xyz789",
      "portfolio": "xyz789",
      "account": User
    }
  }
}

upvoteThread

Response

Returns a Thread

Arguments
Name Description
id - ID!
userID - ID!

Example

Query
mutation UpvoteThread(
  $id: ID!,
  $userID: ID!
) {
  upvoteThread(
    id: $id,
    userID: $userID
  ) {
    id
    title
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    body
    comments {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    topics
    upvotes {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    usersWatching {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    createdAt
    updatedAt
    parentThread {
      id
      title
      author {
        ...UserFragment
      }
      body
      comments {
        ...ThreadFragment
      }
      topics
      upvotes {
        ...UserFragment
      }
      usersWatching {
        ...UserFragment
      }
      createdAt
      updatedAt
      parentThread {
        ...ThreadFragment
      }
      parentThreadID
    }
    parentThreadID
  }
}
Variables
{"id": 4, "userID": "4"}
Response
{
  "data": {
    "upvoteThread": {
      "id": 4,
      "title": "xyz789",
      "author": User,
      "body": "xyz789",
      "comments": [Thread],
      "topics": ["abc123"],
      "upvotes": [User],
      "usersWatching": [User],
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "parentThread": Thread,
      "parentThreadID": 4
    }
  }
}

waiveSection

Response

Returns a Progress!

Arguments
Name Description
args - ProgressWaiveArgs!

Example

Query
mutation WaiveSection($args: ProgressWaiveArgs!) {
  waiveSection(args: $args) {
    id
    status
    completed
    createdAt
    updatedAt
    enrollment {
      id
      enrolledAt
      role
      status
      section {
        ...SectionFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      inactivePlan {
        ...PlanOfStudyFragment
      }
      progress {
        ...ProgressFragment
      }
      moduleProgress {
        ...ModuleProgressFragment
      }
    }
  }
}
Variables
{"args": ProgressWaiveArgs}
Response
{
  "data": {
    "waiveSection": {
      "id": "4",
      "status": 123.45,
      "completed": true,
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "enrollment": SectionEnrollment
    }
  }
}

Subscriptions

newDirectMessage

Description

Subscribe to new messages in a group. If the receiverID is not matched by the receiverID of the message, the message is not caught by WS.

Response

Returns a DirectMessageResponse!

Arguments
Name Description
receiverID - ID

Example

Query
subscription NewDirectMessage($receiverID: ID) {
  newDirectMessage(receiverID: $receiverID) {
    id
    createdAt
    updatedAt
    body
    authorID
    recipientID
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    recipient {
      ... on User {
        ...UserFragment
      }
      ... on Group {
        ...GroupFragment
      }
    }
  }
}
Variables
{"receiverID": "4"}
Response
{
  "data": {
    "newDirectMessage": {
      "id": "4",
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "body": "abc123",
      "authorID": "4",
      "recipientID": 4,
      "author": User,
      "recipient": User
    }
  }
}

newGroupMessage

Response

Returns a DirectMessageResponse!

Arguments
Name Description
groupID - ID

Example

Query
subscription NewGroupMessage($groupID: ID) {
  newGroupMessage(groupID: $groupID) {
    id
    createdAt
    updatedAt
    body
    authorID
    recipientID
    author {
      id
      openID
      email
      picURL
      createdAt
      firstName
      lastName
      middleName
      isAdmin
      isActive
      biography
      phoneNumber
      dob
      social {
        ...SocialFragment
      }
      plan {
        ...PlanOfStudyFragment
      }
      tokens
      feedback {
        ...SectionFeedbackFragment
      }
      assignmentGraded {
        ...AssignmentResultFragment
      }
      instructorProfile {
        ...InstructorProfileFragment
      }
      watchedThreads {
        ...ThreadFragment
      }
      watchedThreadIDs
      createdThreads {
        ...ThreadFragment
      }
    }
    recipient {
      ... on User {
        ...UserFragment
      }
      ... on Group {
        ...GroupFragment
      }
    }
  }
}
Variables
{"groupID": 4}
Response
{
  "data": {
    "newGroupMessage": {
      "id": 4,
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "body": "xyz789",
      "authorID": 4,
      "recipientID": 4,
      "author": User,
      "recipient": User
    }
  }
}

Types

Answer

Fields
Field Name Description
id - ID! The document ID of this answer
text - String! The actual human readable text of this answer
correct - Boolean! If this possible is marked as a correct response
weight - Float The weight towards total points this answer will have default is evenly distributed for each correct answer in a question
index - String The index of the answer when listed (A, B, C, D, etc.) If no value is specified then the order will be random when queried
parentQuestion - Question! The question that this answer belongs to
Example
{
  "id": 4,
  "text": "xyz789",
  "correct": false,
  "weight": 987.65,
  "index": "xyz789",
  "parentQuestion": Question
}

AnswerFields

Fields
Input Field Description
id - ID The document ID of this answer
text - String The actual human readable text of this answer
correct - Boolean If this possible is marked as a correct response
weight - Float The weight towards total points this answer will have default is evenly distributed for each correct answer in a question
index - String The index of the answer when listed (A, B, C, D, etc.)
parentQuestion - ID The question that this answer belongs to
Example
{
  "id": "4",
  "text": "abc123",
  "correct": false,
  "weight": 987.65,
  "index": "xyz789",
  "parentQuestion": 4
}

Assignment

Fields
Field Name Description
id - ID! Assignment id
updatedAt - Date! date and time at which assignment is updated
name - String! Name of the assignment
dueAt - Date due of the assignment
contentURL - String s3 id of the content
contentType - String File type that the assignment is submitted in
acceptedTypes - FileType Accepted file types for assignments
section - Section! Assignment belonging to the Section
assignmentResults - [AssignmentResult] Assignment Result
Example
{
  "id": "4",
  "updatedAt": "2007-12-03",
  "name": "abc123",
  "dueAt": "2007-12-03",
  "contentURL": "xyz789",
  "contentType": "abc123",
  "acceptedTypes": "DOCX",
  "section": Section,
  "assignmentResults": [AssignmentResult]
}

AssignmentFields

Fields
Input Field Description
id - ID
updatedAt - Date
name - String
dueAt - Date
contentURL - String
contentType - String
acceptedTypes - FileType
section - ID
assignmentResult - ID
Example
{
  "id": "4",
  "updatedAt": "2007-12-03",
  "name": "xyz789",
  "dueAt": "2007-12-03",
  "contentURL": "xyz789",
  "contentType": "xyz789",
  "acceptedTypes": "DOCX",
  "section": 4,
  "assignmentResult": 4
}

AssignmentInput

Fields
Input Field Description
name - String New Name of the Assignment
dueAt - Date New Due date and time of the Assignement
section - ID Updated section linkage
Example
{
  "name": "abc123",
  "dueAt": "2007-12-03",
  "section": 4
}

AssignmentResFields

Fields
Input Field Description
id - ID
submittedAt - Date
result - Float
feedback - String
submissionURL - String
fileType - String
student - ID
gradedBy - ID
assignment - ID
Example
{
  "id": 4,
  "submittedAt": "2007-12-03",
  "result": 123.45,
  "feedback": "abc123",
  "submissionURL": "xyz789",
  "fileType": "xyz789",
  "student": 4,
  "gradedBy": "4",
  "assignment": 4
}

AssignmentResult

Fields
Field Name Description
id - ID! id of AssignmentResult
submittedAt - Date! Time at which the Assignment Result is given
result - Float! result of the Assignment
feedback - String feedback given on the Assignment
submissionURL - String s3 id of the submitted file
fileType - String File type that the submission is in
student - PlanOfStudy Assignment Result of the student
gradedBy - User Assignment graded by the User
assignment - Assignment Assignment to which result is given
Example
{
  "id": 4,
  "submittedAt": "2007-12-03",
  "result": 123.45,
  "feedback": "xyz789",
  "submissionURL": "xyz789",
  "fileType": "xyz789",
  "student": PlanOfStudy,
  "gradedBy": User,
  "assignment": Assignment
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

Collection

Fields
Field Name Description
id - ID! id of the collection
name - String! Name of the collection
createdAt - Date! Date and Time of the collection created at
updatedAt - Date! Date and Time of the collection updated at
modules - [Module] List of modules in the collection
moduleIDs - [ID!]
section - Section! The Section that this collection belongs to
sectionID - ID! The Section's unique ID that this collection belongs to
position - Int The position index of the collection in a Section
Example
{
  "id": 4,
  "name": "abc123",
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "modules": [Module],
  "moduleIDs": ["4"],
  "section": Section,
  "sectionID": "4",
  "position": 123
}

CollectionFields

Fields
Input Field Description
id - ID
name - String
sectionID - ID
modules - [ID]
positionIndex - Int
Example
{
  "id": "4",
  "name": "xyz789",
  "sectionID": 4,
  "modules": ["4"],
  "positionIndex": 987
}

CollectionPath

Fields
Field Name Description
id - ID!
name - String!
modules - [ModulePath!]!
Example
{
  "id": "4",
  "name": "xyz789",
  "modules": [ModulePath]
}

CollectionPathInput

Fields
Input Field Description
id - ID!
modules - [ModulePathInput!]!
Example
{"id": 4, "modules": [ModulePathInput]}

Content

Fields
Field Name Description
id - ID! Document ID for this content
type - ContentType! The type of content that this link/id references
link - String! The URL or other access point for the content being referenced. This will typically be an AWS s3 bucket ID
parent - Module! The module that this content belongs to.
primary - Boolean! Boolean property that marks each element in the content array of a module as either the primary content type or secondary resources
Example
{
  "id": "4",
  "type": "PDF",
  "link": "abc123",
  "parent": Module,
  "primary": true
}

ContentFields

Fields
Input Field Description
id - ID Document ID for this content
type - ContentType The type of content that this link/id references
link - String The URL or other access point for the content being referenced. This will typically be an AWS s3 bucket ID
parent - ID The module that this content belongs to.
primary - Boolean Boolean property that marks each element in the content array of a module as either the primary content type or secondary resources
Example
{
  "id": "4",
  "type": "PDF",
  "link": "abc123",
  "parent": 4,
  "primary": true
}

ContentType

Values
Enum Value Description

PDF

DOC

DOCX

VIDEO

CAPTION

TRANSCRIPT

QUIZ

TEXT

Example
"PDF"

Course

Fields
Field Name Description
id - ID! course id
name - String! Name of the course
number - Int
prefix - String
sectionIDs - [ID] Sections in the course
required - Boolean! Boolean value to check if the course is required/core or an elective
carnegieHours - Int! Number of Carnegie Unit and Student Hours that the course is worth
Example
{
  "id": 4,
  "name": "xyz789",
  "number": 123,
  "prefix": "xyz789",
  "sectionIDs": [4],
  "required": false,
  "carnegieHours": 987
}

CourseFields

Fields
Input Field Description
id - ID
name - String
number - Int
prefix - String
section - ID
required - Boolean
carnegieHours - Int
Example
{
  "id": 4,
  "name": "abc123",
  "number": 987,
  "prefix": "xyz789",
  "section": 4,
  "required": true,
  "carnegieHours": 123
}

CourseInput

Fields
Input Field Description
name - String! The name of the given Course
number - Int
prefix - String
section - ID Additional section to be related to the course
required - Boolean The boolean attribute to decide weather the course is part of core courses or electives
carnegieHours - Int The Carnegie Hours of the Course
Example
{
  "name": "abc123",
  "number": 123,
  "prefix": "xyz789",
  "section": "4",
  "required": true,
  "carnegieHours": 123
}

CoursePath

Fields
Field Name Description
id - ID! course id
name - String! Name of the course
prefix - String
number - Int
required - Boolean! Boolean value to check if the course is required/core or an elective
carnegieHours - Int! Number of Carnegie Unit and Student Hours that the course is worth
sections - [SectionPath!]!
Example
{
  "id": 4,
  "name": "xyz789",
  "prefix": "abc123",
  "number": 123,
  "required": true,
  "carnegieHours": 987,
  "sections": [SectionPath]
}

CoursePathInput

Fields
Input Field Description
id - ID!
sections - [SectionPathInput!]!
Example
{"id": 4, "sections": [SectionPathInput]}

CreateAnswer

Fields
Input Field Description
text - String! The actual human readable text of this answer
correct - Boolean! If this possible is marked as a correct response
weight - Float The weight towards total points this answer will have default is evenly distributed for each correct answer in a question
index - String The index of the answer when listed (A, B, C, D, etc.)
parentQuestion - ID! The question that this answer belongs to
Example
{
  "text": "abc123",
  "correct": true,
  "weight": 123.45,
  "index": "abc123",
  "parentQuestion": "4"
}

CreateCollectionArgs

Fields
Input Field Description
name - String!
sectionID - ID!
modules - [ID!]
positionIndex - Int!
Example
{
  "name": "abc123",
  "sectionID": "4",
  "modules": [4],
  "positionIndex": 123
}

CreateContentArgs

Fields
Input Field Description
type - ContentType! The type of content that this link/id references
link - String! The URL or other access point for the content being referenced. This will typically be an AWS s3 bucket ID
parent - ID! The module that this content belongs to.
primary - Boolean! Boolean property that marks each element in the content array of a module as either the primary content type or secondary resources
Example
{
  "type": "PDF",
  "link": "xyz789",
  "parent": "4",
  "primary": true
}

CreateLearningPathInput

Fields
Input Field Description
path - PathInput
paths - [PathInput!]
Example
{
  "path": PathInput,
  "paths": [PathInput]
}

CreateQuestion

Fields
Input Field Description
number - Int! The question number on the quiz/in the pool
variant - Int! The variant of the question number that this question is
text - String! The text of the question (the readable question itself)
points - Float The amount of points this question is worth
parentQuiz - ID! The quiz this question belongs to
Example
{
  "number": 987,
  "variant": 987,
  "text": "abc123",
  "points": 987.65,
  "parentQuiz": "4"
}

CreateQuiz

Fields
Input Field Description
totalPoints - Float! The total amount of points possible on this quiz
instructions - String The instruction field for this quiz
dueAt - Date The time the Quiz is due
timeLimit - Int The allotted time to take this quiz in ms
numQuestions - Int! The number of questions on this quiz
minScore - Float The minimum passing score for this quiz
parentModule - ID! The module that this quiz belongs to
Example
{
  "totalPoints": 987.65,
  "instructions": "xyz789",
  "dueAt": "2007-12-03",
  "timeLimit": 987,
  "numQuestions": 123,
  "minScore": 123.45,
  "parentModule": "4"
}

Date

Example
"2007-12-03"

DirectMessageResponse

Fields
Field Name Description
id - ID!
createdAt - Date!
updatedAt - Date!
body - String!
authorID - ID!
recipientID - ID!
author - User!
recipient - Members!
Example
{
  "id": "4",
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "body": "abc123",
  "authorID": 4,
  "recipientID": 4,
  "author": User,
  "recipient": User
}

EnrollmentStatus

Values
Enum Value Description

ACTIVE

INACTIVE

Example
"ACTIVE"

FileType

Values
Enum Value Description

DOCX

DOC

PDF

TTT

TXT

Example
"DOCX"

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

Group

Fields
Field Name Description
id - ID!
name - String!
members - [User!]!
public - Boolean!
messages - [DirectMessageResponse!]!
Example
{
  "id": "4",
  "name": "xyz789",
  "members": [User],
  "public": true,
  "messages": [DirectMessageResponse]
}

ICommentCreateInput

Fields
Input Field Description
id - ID
body - String! The content body of the comment. Currently only supports text.
author - ID! The ID of the user that is creating the comment. The comment's ID will be added to the user's list of watched threads.
Example
{
  "id": "4",
  "body": "abc123",
  "author": 4
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

IThreadByParams

Fields
Input Field Description
id - ID The ID of the thread to be exactly equal to the given value. If this parameter is given, all other parameters are ignored. The returned thread is guaranteed to be unique, but still returned as an array.
title - String The title of the thread to be partially matched to the given value. Upper and lower case characters are not treated equally.
body - String The content body of the thread to be partially matched to the given value. Upper and lower case characters are not treated equally.
topics - [String] The topic tags associated with the thread
parentThread - ID The ID of the parent thread to be exactly equal to the given value.
comments - ID The ID of a comment to be exactly equal to the given value. The query will look through all Threads that are comments and return the parent thread and the entire comments array that matches the given ID.
author - ID The ID of the user to be exactly equal to the given value.
Example
{
  "id": 4,
  "title": "xyz789",
  "body": "abc123",
  "topics": ["abc123"],
  "parentThread": 4,
  "comments": 4,
  "author": "4"
}

IThreadCreateInput

Fields
Input Field Description
title - String The title of the thread. If this parameter is not given, the thread will be created as a comment to another thread, but only if the parentThread parameter is given. If this parameter is not given, the thread will be created as a new thread.
body - String! The content body of the thread. Currently only supports text.
topics - [String] The topic tags associated with the thread
parentThread - ID The ID of the parent thread that this comment belongs to. If this parameter is not given, the thread will be created as a new thread, and not as a comment. If this parameter is not given, the title parameter must be given.
author - ID! The ID of the user that is creating the thread. The thread's ID will be added to the user's list of watched threads.
Example
{
  "title": "abc123",
  "body": "abc123",
  "topics": ["abc123"],
  "parentThread": "4",
  "author": "4"
}

InstructorProfile

Fields
Field Name Description
id - ID! Instructor Profile id
account - User Account pointing to User
title - String Title of the Instructor Profile
officeLocation - String office location of the user
officeHours - [String] office hours of the user
contactPolicy - String contract policy needed
background - String Background of the Profile
researchInterest - [String] Research interest of the User
selectedPapersAndPublications - [String] The papers and publications selected
Example
{
  "id": 4,
  "account": User,
  "title": "xyz789",
  "officeLocation": "abc123",
  "officeHours": ["abc123"],
  "contactPolicy": "xyz789",
  "background": "xyz789",
  "researchInterest": ["abc123"],
  "selectedPapersAndPublications": [
    "abc123"
  ]
}

InstructorProfileInput

Fields
Input Field Description
title - String Instructor profile title
officeLocation - String Office-location of Instructor Profile
officeHours - [String] Office hours of Instructor Profile
contactPolicy - String Contact Policy of Instructor Profile
background - String Background of Profile
researchInterest - [String] Research Interest of the Instructor
selectedPapersAndPublications - [String] Selected Papers and Publications of the Instructor
Example
{
  "title": "xyz789",
  "officeLocation": "abc123",
  "officeHours": ["xyz789"],
  "contactPolicy": "xyz789",
  "background": "abc123",
  "researchInterest": ["xyz789"],
  "selectedPapersAndPublications": [
    "abc123"
  ]
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

LearningPath

Fields
Field Name Description
id - ID!
createdAt - Date!
plan - PlanOfStudy!
planID - ID!
paths - [Path!]!
Example
{
  "id": 4,
  "createdAt": "2007-12-03",
  "plan": PlanOfStudy,
  "planID": 4,
  "paths": [Path]
}

Members

Types
Union Types

User

Group

Example
User

ModEnrollmentFields

Fields
Input Field Description
id - ID
enrolledAt - Date
role - UserRole
section - ID
plan - ID
Example
{
  "id": "4",
  "enrolledAt": "2007-12-03",
  "role": "STUDENT",
  "section": "4",
  "plan": 4
}

ModFeedbackFields

Fields
Input Field Description
id - ID
feedback - String
rating - Int
student - ID
section - ID
Example
{
  "id": "4",
  "feedback": "abc123",
  "rating": 123,
  "student": 4,
  "section": 4
}

Module

Fields
Field Name Description
id - ID! document ID
prefix - String
number - Int
name - String! Module Name
content - [Content] The link/id of the actual content data itself
threads - [Thread] The list of threads related to the module
collections - [Collection] The collection that the module belongs to
collectionIDs - [ID!]
position - Int The position index of the module in the collection it belongs to.
quizzes - [Quiz!] The quizzes that belong to this module
moduleProgress - [ModuleProgress] The progress model that is associated with this module
objectives - [String!]! A list of learning objectives being covered in this Section
keywords - [String!]! A list of keywords that most accurately describe the content of this Module
hours - Float! The number of carnige hours granted for completion of this Section
description - String
instructor - InstructorProfile
instructorID - ID
Example
{
  "id": "4",
  "prefix": "abc123",
  "number": 123,
  "name": "xyz789",
  "content": [Content],
  "threads": [Thread],
  "collections": [Collection],
  "collectionIDs": [4],
  "position": 987,
  "quizzes": [Quiz],
  "moduleProgress": [ModuleProgress],
  "objectives": ["abc123"],
  "keywords": ["xyz789"],
  "hours": 987.65,
  "description": "xyz789",
  "instructor": InstructorProfile,
  "instructorID": "4"
}

ModuleFields

Fields
Input Field Description
id - ID document ID
name - String Module Name
number - Int
prefix - String
content - ID The link/id of the actual content data itself
thread - ID The list of ids to threads related to the module (Only a single value is supported)
collection - ID The ID of the parent collection
position - Int The index of the module in the collection
objectives - [String!] Learning objectives that are taught in this Section
keywords - [String!]
hours - Float The number of carnige hours granted for completing this Section
description - String
instructor - ID
Example
{
  "id": "4",
  "name": "xyz789",
  "number": 123,
  "prefix": "abc123",
  "content": "4",
  "thread": 4,
  "collection": 4,
  "position": 987,
  "objectives": ["abc123"],
  "keywords": ["abc123"],
  "hours": 123.45,
  "description": "xyz789",
  "instructor": 4
}

ModuleFlow

Fields
Field Name Description
previousModule - Module
previousCollection - Collection
nextModule - Module
nextCollection - Collection
currentModule - Module
currentCollection - Collection
currentSection - Section
Example
{
  "previousModule": Module,
  "previousCollection": Collection,
  "nextModule": Module,
  "nextCollection": Collection,
  "currentModule": Module,
  "currentCollection": Collection,
  "currentSection": Section
}

ModuleInput

Fields
Input Field Description
name - String! Module Name
prefix - String
number - Int
content - ID The link/id of the actual content data itself
collection - ID The ID of the parent collection
position - Int The index of the Module in the collection
objectives - [String!] The list of learning objectives for this Section
keywords - [String!]
hours - Float! The number of carnige hours granted for completing this Section
description - String
instructor - ID
Example
{
  "name": "xyz789",
  "prefix": "abc123",
  "number": 987,
  "content": "4",
  "collection": "4",
  "position": 123,
  "objectives": ["xyz789"],
  "keywords": ["abc123"],
  "hours": 123.45,
  "description": "xyz789",
  "instructor": 4
}

ModulePath

Fields
Field Name Description
id - ID! document ID
name - String! Module Name
number - Int
prefix - String
content - [Content] The link/id of the actual content data itself
threads - [Thread] The list of threads related to the module
collections - [Collection] The collection that the module belongs to
collectionIDs - [ID!]
position - Int The position index of the module in the collection it belongs to.
quizzes - [Quiz!] The quizzes that belong to this module
moduleProgress - [ModuleProgress] The progress model that is associated with this module
objectives - [String!]! A list of learning objectives being covered in this Section
keywords - [String!]! A list of keywords that most accurately describe the content of this Module
hours - Float! The number of carnige hours granted for completion of this Section
enrollmentID - ID
description - String
instructor - InstructorProfile
instructorID - ID
Example
{
  "id": 4,
  "name": "xyz789",
  "number": 123,
  "prefix": "xyz789",
  "content": [Content],
  "threads": [Thread],
  "collections": [Collection],
  "collectionIDs": [4],
  "position": 987,
  "quizzes": [Quiz],
  "moduleProgress": [ModuleProgress],
  "objectives": ["xyz789"],
  "keywords": ["xyz789"],
  "hours": 123.45,
  "enrollmentID": "4",
  "description": "xyz789",
  "instructor": InstructorProfile,
  "instructorID": 4
}

ModulePathInput

Fields
Input Field Description
id - ID!
Example
{"id": 4}

ModuleProgress

Fields
Field Name Description
id - ID! The database defined ID of the progress document
status - Float! The numerical status of the progress 0% - 100%
completed - Boolean! A boolean to conveniently check if the progress is completed
createdAt - Date! The date the progress was created
updatedAt - Date! The date the progress was last updated
enrollment - SectionEnrollment! The enrollment that this progress is associated with (one-to-one)
module - Module! The module that this progress is associated with (one-to-one)
Example
{
  "id": 4,
  "status": 123.45,
  "completed": false,
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "enrollment": SectionEnrollment,
  "module": Module
}

NewAssignment

Fields
Input Field Description
name - String! Name of the NewAssignement
dueAt - Date! Due date and Time of NewAssignment
section - ID! Section to which the NewAssignement Belongs to
contentType - String! File type that the assignment is submitted in
contentURL - String! s3 id of the content
acceptedTypes - FileType! Accepted file types for assignments
Example
{
  "name": "xyz789",
  "dueAt": "2007-12-03",
  "section": 4,
  "contentType": "abc123",
  "contentURL": "xyz789",
  "acceptedTypes": "DOCX"
}

NewAssignmentResult

Fields
Input Field Description
assignment - ID! Relating assignment result to assignment
student - ID! Relating Assignment Result to Student
grader - ID! Relating Assignment Result to Grader
result - Float! result of the NewAssignement
submissionURL - String! s3 id of the submitted file
fileType - String! File type that the submission is in
Example
{
  "assignment": 4,
  "student": 4,
  "grader": "4",
  "result": 123.45,
  "submissionURL": "xyz789",
  "fileType": "abc123"
}

NewSection

Fields
Input Field Description
sectionNumber - Int! Number of the Section
sectionName - String! Name of the Section
description - String! description of the section
duration - Float! Duration of the NewSection
intro - String! Introduction of the NewSection
numSlides - Int! Number of Slides in NewSection
keywords - [String!]! keywords of the NewSection
Example
{
  "sectionNumber": 123,
  "sectionName": "xyz789",
  "description": "xyz789",
  "duration": 123.45,
  "intro": "abc123",
  "numSlides": 123,
  "keywords": ["xyz789"]
}

NewUser

Fields
Input Field Description
openID - String! openID of New user
email - String! email fo the New user
picURL - String! picUrl of the New user
firstName - String! firstname of the New user
lastName - String! last name of the new user
middleName - String! middle name of new user
biography - String user biography
phoneNumber - String user phoneNumber
Example
{
  "openID": "xyz789",
  "email": "xyz789",
  "picURL": "abc123",
  "firstName": "xyz789",
  "lastName": "xyz789",
  "middleName": "xyz789",
  "biography": "abc123",
  "phoneNumber": "abc123"
}

Path

Fields
Field Name Description
id - ID!
createdAt - Date!
updatedAt - Date!
course - CoursePath!
status - PathStatus!
hoursSatisfies - Float!
learningOutcomes - [String!]!
Example
{
  "id": 4,
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "course": CoursePath,
  "status": "DRAFT",
  "hoursSatisfies": 987.65,
  "learningOutcomes": ["abc123"]
}

PathInput

Fields
Input Field Description
course - CoursePathInput!
status - PathStatus
hoursSatisfies - Float
learningOutcomes - [String!]
Example
{
  "course": CoursePathInput,
  "status": "DRAFT",
  "hoursSatisfies": 123.45,
  "learningOutcomes": ["xyz789"]
}

PathStatus

Values
Enum Value Description

DRAFT

LIVE

Example
"DRAFT"

PlanFields

Fields
Input Field Description
id - String
student - String
section - String
assignmentResult - String
sectionsLeft - String
Example
{
  "id": "abc123",
  "student": "xyz789",
  "section": "xyz789",
  "assignmentResult": "xyz789",
  "sectionsLeft": "xyz789"
}

PlanInput

Fields
Input Field Description
student - ID
Example
{"student": "4"}

PlanOfStudy

Fields
Field Name Description
id - ID!
student - User Name of the Student Account
sections - [SectionEnrollment] Sections that are enrolled by the Student
assignmentResults - [AssignmentResult!] Results obtained for the Assignement Taken
sectionsLeft - [SectionEnrollment] Sections to be completed
quizResults - [QuizResult!] Results on quizzes taken
Example
{
  "id": "4",
  "student": User,
  "sections": [SectionEnrollment],
  "assignmentResults": [AssignmentResult],
  "sectionsLeft": [SectionEnrollment],
  "quizResults": [QuizResult]
}

Progress

Fields
Field Name Description
id - ID! The database defined ID of the progress document
status - Float! The numerical status of the progress 0% - 100%
completed - Boolean! A boolean to conveniently check if the progress is completed
createdAt - Date! The date the progress was created
updatedAt - Date! The date the progress was last updated
enrollment - SectionEnrollment! The enrollment that this progress is associated with (one-to-one)
Example
{
  "id": 4,
  "status": 987.65,
  "completed": true,
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "enrollment": SectionEnrollment
}

ProgressArgs

Fields
Input Field Description
id - ID The database defined ID of the progress document
completed - Boolean
status - Float
createdAt - Date
updatedAt - Date
enrollmentID - ID
Example
{
  "id": "4",
  "completed": true,
  "status": 987.65,
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "enrollmentID": 4
}

ProgressWaiveArgs

Fields
Input Field Description
enrollmentID - ID The database defined ID of the enrollment document that holds the progress to be waived. If this is given, the other parameters will be ignored.
sectionID - ID The database defined ID of the section that holds the enrollment to be accredited.
planID - ID The database defined ID of the plan of study that holds the enrollment to be accredited.
Example
{
  "enrollmentID": 4,
  "sectionID": 4,
  "planID": "4"
}

Question

Fields
Field Name Description
id - ID! The document ID of the question
number - Int! The question number on the quiz/in the pool
variant - Int Which variant of the question is this record
text - String! The text of the question (the readable question itself)
points - Float! The amount of points this question is worth
answers - [Answer!]! The possible answers to this question
parent - Quiz! The parent Quiz of this question
instances - [QuizInstance!]! The quiz instances that this question/variant is used in
Example
{
  "id": 4,
  "number": 987,
  "variant": 123,
  "text": "abc123",
  "points": 123.45,
  "answers": [Answer],
  "parent": Quiz,
  "instances": [QuizInstance]
}

QuestionFields

Fields
Input Field Description
id - ID The document ID of the question
number - Int The question number on the quiz/in the pool
variant - Int The variant (unique to question number) of a question
text - String The text of a question (the readable question itself)
points - Float The amount of points a question is worth
parent - ID The Quiz that a question belongs to
Example
{
  "id": 4,
  "number": 123,
  "variant": 123,
  "text": "abc123",
  "points": 987.65,
  "parent": "4"
}

Quiz

Fields
Field Name Description
id - ID! The document ID For this quiz
totalPoints - Float! The total amount of points possible on the quiz
instructions - String The instruction field for this quiz
dueAt - Date The time the Quiz is due
timeLimit - Int The allotted time to take this quiz in ms
numQuestions - Int! The number of questions on this quiz
minScore - Float! The minimum passing score for this quiz
parentModule - Module! The module that this quiz belongs to
questionPool - [Question!]! The possible questions and variants of for this quiz
instances - [QuizInstance!]! The list of actual quiz instances students are taking
Example
{
  "id": "4",
  "totalPoints": 123.45,
  "instructions": "abc123",
  "dueAt": "2007-12-03",
  "timeLimit": 123,
  "numQuestions": 987,
  "minScore": 123.45,
  "parentModule": Module,
  "questionPool": [Question],
  "instances": [QuizInstance]
}

QuizFields

Fields
Input Field Description
id - ID The document ID For this quiz
totalPoints - Float The total amount of points possible on this quiz
instructions - String The instruction field for this quiz
dueAt - Date The time the Quiz is due
timeLimit - Int The allotted time to take this quiz in ms
numQuestions - Int The number of questions on this quiz
minScore - Float The minimum passing score for this quiz
parentModule - ID The module that this quiz belongs to
Example
{
  "id": "4",
  "totalPoints": 123.45,
  "instructions": "abc123",
  "dueAt": "2007-12-03",
  "timeLimit": 987,
  "numQuestions": 123,
  "minScore": 987.65,
  "parentModule": "4"
}

QuizInstance

Fields
Field Name Description
id - ID! The document ID for this QuizInstance
quiz - Quiz! The quiz template this is an instance of
questions - [Question!]! The list of questions in this instance of a quiz. One variant for each question number will be selected
quizResult - QuizResult! The submission for this instance
Example
{
  "id": 4,
  "quiz": Quiz,
  "questions": [Question],
  "quizResult": QuizResult
}

QuizInstanceFields

Fields
Input Field Description
id - ID The document id of a quiz instance
quiz - ID The quiz that an instance is derived from
Example
{"id": 4, "quiz": 4}

QuizResult

Fields
Field Name Description
id - String! The document ID of the quiz result
score - Float! The score received on this quiz
answers - [String!]! The list of answers provided for questions on this quiz
submittedAt - Date The time and date that this result was submitted at.
student - PlanOfStudy! The plan of study of the user who took the quiz
quizInstance - QuizInstance! The quiz this result is for. This field relation is immutable to protect the grading algorithm
Example
{
  "id": "xyz789",
  "score": 123.45,
  "answers": ["abc123"],
  "submittedAt": "2007-12-03",
  "student": PlanOfStudy,
  "quizInstance": QuizInstance
}

QuizResultFields

Fields
Input Field Description
id - String The document ID of the quiz result
score - Float The score received on this quiz
student - ID The plan of study of the user who took the quiz
quizInstance - ID The quiz instance that this is a submission for.
Example
{
  "id": "xyz789",
  "score": 987.65,
  "student": "4",
  "quizInstance": 4
}

QuizSubmission

Fields
Input Field Description
student - ID! The student who submitted the quiz
quizInstance - ID! The quiz Instance this is a submission for.
answers - [ID!]! The list of answers that were provided for this quiz
Example
{
  "student": "4",
  "quizInstance": 4,
  "answers": ["4"]
}

Section

Fields
Field Name Description
id - ID! Section Id
sectionNumber - Int! Number of the Section
sectionName - String! Name of hte Section
description - String! Description of the Section
duration - Float! Duration of the Section
intro - String! Introduction of the Section
numSlides - Int! No of slides in the Section
keywords - [String!]! Keywords in the Sections
objectives - [String!]! objectives in the Sections
createdAt - Date! Date and Time of the Section Created at
updatedAt - Date! Date and Time of the Section Updated at
assignments - [Assignment!]! Assignement in the Section
members - [SectionEnrollment!]! Memebers enrolled in the Section
feedback - [SectionFeedback!]! Feedback of the Section
parentSections - [Section!]! Parent Sections of the Section
subSections - [Section!]! Child Sections in the Section
collections - [Collection!]! A list of collections that have this Section's materials
courseIDs - [ID!]! courseIDs set
Example
{
  "id": 4,
  "sectionNumber": 987,
  "sectionName": "xyz789",
  "description": "abc123",
  "duration": 987.65,
  "intro": "abc123",
  "numSlides": 987,
  "keywords": ["xyz789"],
  "objectives": ["xyz789"],
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "assignments": [Assignment],
  "members": [SectionEnrollment],
  "feedback": [SectionFeedback],
  "parentSections": [Section],
  "subSections": [Section],
  "collections": [Collection],
  "courseIDs": ["4"]
}

SectionEnrollment

Fields
Field Name Description
id - ID! id of the SectionEnrollment
enrolledAt - Date! TimeStamp at which the Section is enrolledAt
role - UserRole! Role of the user:Either Student, Teacher or Grader
status - EnrollmentStatus! Status of the enrollment: Either Active or Inactive
section - Section! Current Section
plan - PlanOfStudy Plan of study Chosen
inactivePlan - PlanOfStudy Inactive plan of study
progress - Progress! The progress that this enrollment is associated with (one-to-one)
moduleProgress - [ModuleProgress] The progress model that is associated with this module
Example
{
  "id": 4,
  "enrolledAt": "2007-12-03",
  "role": "STUDENT",
  "status": "ACTIVE",
  "section": Section,
  "plan": PlanOfStudy,
  "inactivePlan": PlanOfStudy,
  "progress": Progress,
  "moduleProgress": [ModuleProgress]
}

SectionEnrollmentInput

Fields
Input Field Description
section - ID! Relating Section to SectionEnrollment
plan - ID! Relating Plan to Section enrollment
role - UserRole! Relating role to SectionEnrollment
status - EnrollmentStatus! The status of the current enrollment
Example
{"section": 4, "plan": 4, "role": "STUDENT", "status": "ACTIVE"}

SectionFeedback

Fields
Field Name Description
id - ID! id of SectionFeedback
feedback - String! Feedback fo the Section
rating - Int! Rating given in the feedback
student - User Section feedback given by the student
section - Section Section in which Section feedback is given
Example
{
  "id": "4",
  "feedback": "abc123",
  "rating": 987,
  "student": User,
  "section": Section
}

SectionFeedbackInput

Fields
Input Field Description
feedback - String! New Feedback of the Section
rating - Int! New Rating of the Section
Example
{"feedback": "abc123", "rating": 987}

SectionFeedbackUpdate

Fields
Input Field Description
feedback - String Updated feedback of Section
rating - Int Updated feedback of Section
Example
{"feedback": "xyz789", "rating": 987}

SectionFields

Fields
Input Field Description
id - ID
sectionNumber - Int
sectionName - String
description - String
duration - Float
intro - String
numSlides - Int
keywords - [String!]
createdAt - Date
updatedAt - Date
objectives - [String!]
assignments - ID
members - [ID!]
feedback - ID
parentSections - [ID!]
subSections - [ID!]
Example
{
  "id": "4",
  "sectionNumber": 987,
  "sectionName": "xyz789",
  "description": "xyz789",
  "duration": 123.45,
  "intro": "abc123",
  "numSlides": 123,
  "keywords": ["abc123"],
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "objectives": ["xyz789"],
  "assignments": "4",
  "members": [4],
  "feedback": "4",
  "parentSections": ["4"],
  "subSections": ["4"]
}

SectionPath

Fields
Field Name Description
name - String!
collections - [CollectionPath!]! A list of collections that have this Section's materials
id - ID! Section Id
sectionNumber - Int! Number of the Section
sectionName - String! Name of hte Section
description - String! Description of the Section
duration - Float! Duration of the Section
intro - String! Introduction of the Section
numSlides - Int! No of slides in the Section
keywords - [String!]! Keywords in the Sections
objectives - [String!]! objectives in the Sections
createdAt - Date! Date and Time of the Section Created at
updatedAt - Date! Date and Time of the Section Updated at
assignments - [Assignment!]! Assignement in the Section
members - [SectionEnrollment!]! Memebers enrolled in the Section
feedback - [SectionFeedback!]! Feedback of the Section
parentSections - [Section!]! Parent Sections of the Section
subSections - [Section!]! Child Sections in the Section
courseIDs - [ID!]! courseIDs set
Example
{
  "name": "xyz789",
  "collections": [CollectionPath],
  "id": "4",
  "sectionNumber": 123,
  "sectionName": "abc123",
  "description": "xyz789",
  "duration": 987.65,
  "intro": "abc123",
  "numSlides": 987,
  "keywords": ["xyz789"],
  "objectives": ["abc123"],
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "assignments": [Assignment],
  "members": [SectionEnrollment],
  "feedback": [SectionFeedback],
  "parentSections": [Section],
  "subSections": [Section],
  "courseIDs": [4]
}

SectionPathInput

Fields
Input Field Description
id - ID!
collections - [CollectionPathInput!]!
Example
{
  "id": "4",
  "collections": [CollectionPathInput]
}

SimpleCollection

Fields
Field Name Description
modules - [SimpleModule!]! List of modules in the collection
id - ID! id of the collection
name - String! Name of the collection
createdAt - Date! Date and Time of the collection created at
updatedAt - Date! Date and Time of the collection updated at
section - Section! The Section that this collection belongs to
sectionID - ID! The Section's unique ID that this collection belongs to
position - Int The position index of the collection in a Section
Example
{
  "modules": [SimpleModule],
  "id": 4,
  "name": "abc123",
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "section": Section,
  "sectionID": 4,
  "position": 987
}

SimpleCoursePath

Fields
Field Name Description
id - ID!
sections - [SimpleSection!]!
Example
{"id": 4, "sections": [SimpleSection]}

SimpleLearningPath

Fields
Field Name Description
id - ID!
createdAt - Date!
plan - PlanOfStudy!
planID - ID!
paths - [SimplePath!]!
Example
{
  "id": 4,
  "createdAt": "2007-12-03",
  "plan": PlanOfStudy,
  "planID": "4",
  "paths": [SimplePath]
}

SimpleModule

Fields
Field Name Description
id - ID!
name - String!
collections - [SimpleCollection!]!
Example
{
  "id": 4,
  "name": "xyz789",
  "collections": [SimpleCollection]
}

SimplePath

Fields
Field Name Description
id - ID!
createdAt - Date!
updatedAt - Date!
course - SimpleCoursePath!
status - PathStatus!
hoursSatisfies - Float!
learningOutcomes - [String!]!
Example
{
  "id": 4,
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "course": SimpleCoursePath,
  "status": "DRAFT",
  "hoursSatisfies": 123.45,
  "learningOutcomes": ["xyz789"]
}

SimpleSection

Fields
Field Name Description
id - ID!
name - String!
collections - [SimpleCollection!]!
Example
{
  "id": "4",
  "name": "abc123",
  "collections": [SimpleCollection]
}

Social

Fields
Field Name Description
id - ID! Document id
twitter - String Url Pointing to Twitter
github - String Url pointing to github
linkedin - String Url pointing to linkedin
facebook - String Url pointing to Facebook
portfolio - String Url pointing to portfolio
account - User! relating social to the user account
Example
{
  "id": 4,
  "twitter": "abc123",
  "github": "xyz789",
  "linkedin": "abc123",
  "facebook": "xyz789",
  "portfolio": "xyz789",
  "account": User
}

SocialFields

Fields
Input Field Description
id - String
twitter - String
github - String
linkedin - String
facebook - String
portfolio - String
account - String
Example
{
  "id": "abc123",
  "twitter": "abc123",
  "github": "abc123",
  "linkedin": "xyz789",
  "facebook": "xyz789",
  "portfolio": "abc123",
  "account": "abc123"
}

SocialInput

Fields
Input Field Description
twitter - String Url pointing to Twitter
github - String Url pointing to github
linkedin - String Url pointing to github
facebook - String Url pointing to facebook
portfolio - String Url pointing to portfolio
Example
{
  "twitter": "abc123",
  "github": "abc123",
  "linkedin": "xyz789",
  "facebook": "xyz789",
  "portfolio": "xyz789"
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

Thread

Description

A thread is a collection of messages posted to a particular topic.

Fields
Field Name Description
id - ID! The ID of the document object
title - String The title of the thread
author - User! The author of the thread
body - String! The content body of the thread
comments - [Thread] The comments added to the thread
topics - [String] The topic tags associated with the thread
upvotes - [User!] The number of upvotes for the thread
usersWatching - [User!] The list of users who are subscribed to changes/notifications on the thread
createdAt - Date! The timestamp when the thread was created
updatedAt - Date! The timestamp when the thread was last updated or interacted with
parentThread - Thread The thread that this comment belongs to
parentThreadID - ID The ID of the thread that this comment belongs to
Example
{
  "id": "4",
  "title": "xyz789",
  "author": User,
  "body": "abc123",
  "comments": [Thread],
  "topics": ["abc123"],
  "upvotes": [User],
  "usersWatching": [User],
  "createdAt": "2007-12-03",
  "updatedAt": "2007-12-03",
  "parentThread": Thread,
  "parentThreadID": "4"
}

UpdateAnswer

Fields
Input Field Description
text - String The actual human readable text of this answer
correct - Boolean If this possible is marked as a correct response
weight - Float The weight towards total points this answer will have default is evenly distributed for each correct answer in a question
index - String The index of the answer when listed (A, B, C, D, etc.)
parentQuestion - ID The question that this answer belongs to
Example
{
  "text": "abc123",
  "correct": true,
  "weight": 987.65,
  "index": "xyz789",
  "parentQuestion": 4
}

UpdateQuestion

Fields
Input Field Description
number - Int The question number on the quiz/in the pool
variant - Int The variant of the question number that this question is
text - String The text of the question (the readable question itself)
points - Float The amount of points this question is worth
parentQuiz - ID The quiz this question belongs to
Example
{
  "number": 987,
  "variant": 987,
  "text": "abc123",
  "points": 987.65,
  "parentQuiz": "4"
}

UpdateQuiz

Fields
Input Field Description
totalPoints - Float The total amount of points possible on this quiz
instructions - String The instruction field for this quiz
dueAt - Date The time the Quiz is due
timeLimit - Int The allotted time to take this quiz in ms
numQuestions - Int The number of questions on this quiz
minScore - Float The minimum passing score for this quiz
parentModule - ID The module that this quiz belongs to
Example
{
  "totalPoints": 123.45,
  "instructions": "abc123",
  "dueAt": "2007-12-03",
  "timeLimit": 987,
  "numQuestions": 123,
  "minScore": 123.45,
  "parentModule": "4"
}

UpdateSection

Fields
Input Field Description
id - ID! UpdateSection id
sectionName - String Section Name of the UpdateSection
sectionNumber - Int Section NUmber of the UpdateSection
intro - String Introduction of the UpdateSection
description - String Decription of the UpdateSection
duration - Float Duration of the UpdateSection
numSlides - Int Number of slides in UpdateSection
keywords - [String!] Keywords in UpdateSection
objectives - [String!] The objective to be added to the Section
Example
{
  "id": 4,
  "sectionName": "abc123",
  "sectionNumber": 123,
  "intro": "abc123",
  "description": "abc123",
  "duration": 987.65,
  "numSlides": 987,
  "keywords": ["xyz789"],
  "objectives": ["xyz789"]
}

UpdateUser

Fields
Input Field Description
id - ID! The document's unique ID field
openID - String! Google's Open ID field that is unique to each Google Account
email - String The email of the update user
picURL - String Picture URL of update user
firstName - String firstname fo the update user
lastName - String lastname of the update user
middleName - String middle name of the update user
biography - String user biography
phoneNumber - String user phoneNumber
dob - Date dob of the update user
isAdmin - Boolean to check if the update user is admin
isActive - Boolean to check if the update user is active
instructorProfile - ID The ID of the instructor profile that needs to be updated
Example
{
  "id": 4,
  "openID": "abc123",
  "email": "abc123",
  "picURL": "xyz789",
  "firstName": "abc123",
  "lastName": "xyz789",
  "middleName": "abc123",
  "biography": "xyz789",
  "phoneNumber": "abc123",
  "dob": "2007-12-03",
  "isAdmin": false,
  "isActive": false,
  "instructorProfile": 4
}

User

Fields
Field Name Description
id - ID! User ID
openID - ID! User OpenID
email - String! User Email
picURL - String User picURL
createdAt - Date User CreatedAt
firstName - String Firstname of the user
lastName - String lastname of the user
middleName - String Middle name of the user
isAdmin - Boolean to check if the user is admin
isActive - Boolean to check if the user is active
biography - String user biography
phoneNumber - String user phoneNumber
dob - Date user dob
social - Social User social
plan - PlanOfStudy User plan of study
tokens - [ID!] Token pointing to id
feedback - [SectionFeedback!] feedback of the user pointing to section feedback
assignmentGraded - [AssignmentResult!] assignment graded pointing to assignment result of the user
instructorProfile - InstructorProfile Instructor profile of the user
watchedThreads - [Thread!] The list of threads that the user is subscribed to
watchedThreadIDs - [ID!]
createdThreads - [Thread!] The list of threads that the user has created
Example
{
  "id": "4",
  "openID": "4",
  "email": "abc123",
  "picURL": "xyz789",
  "createdAt": "2007-12-03",
  "firstName": "xyz789",
  "lastName": "abc123",
  "middleName": "abc123",
  "isAdmin": false,
  "isActive": false,
  "biography": "xyz789",
  "phoneNumber": "xyz789",
  "dob": "2007-12-03",
  "social": Social,
  "plan": PlanOfStudy,
  "tokens": ["4"],
  "feedback": [SectionFeedback],
  "assignmentGraded": [AssignmentResult],
  "instructorProfile": InstructorProfile,
  "watchedThreads": [Thread],
  "watchedThreadIDs": [4],
  "createdThreads": [Thread]
}

UserFields

Fields
Input Field Description
id - String
openID - String
email - String
picURL - String
createdAt - String
firstName - String
lastName - String
middleName - String
isAdmin - Boolean
isActive - Boolean
biography - String
phoneNumber - String
dob - Date
social - String
plan - String
feedback - String
assignmentGraded - String
Example
{
  "id": "abc123",
  "openID": "xyz789",
  "email": "abc123",
  "picURL": "xyz789",
  "createdAt": "xyz789",
  "firstName": "xyz789",
  "lastName": "abc123",
  "middleName": "xyz789",
  "isAdmin": false,
  "isActive": false,
  "biography": "abc123",
  "phoneNumber": "abc123",
  "dob": "2007-12-03",
  "social": "abc123",
  "plan": "xyz789",
  "feedback": "abc123",
  "assignmentGraded": "xyz789"
}

UserRole

Values
Enum Value Description

STUDENT

TEACHER

GRADER

Example
"STUDENT"