mutation {
createUserForMobile(
input: {
name: "Santo Agostinho",
email: "[email protected]",
cellphone: "(12) 99999-9999",
password: "88533146Jr",
country: "280"
}
) {
user {
email
}
jwt
}
}
mutation{
resetPassword(input:{email: "[email protected]"}){
user{
email
}
}
}
mutation{
login(input:{email: "email.com", password: "senha"}){
user{
name
}
token
}
}
mutation{
courseProgress(
input: {
lessonId: "1890",
userId: 280874,
currentTime: 201.58,
status: "uncompleted",
courseId: 235,
lessonDuration: 1872
}
) {
courseProgress
}
}
mutation {
createComment(input: {
content: "Hello World",
userId: "280884",
commentableId: "1921",
commentableType: "Lesson"
}){
content
}
}
{
comments(commentableType: "Lesson", commentableId: 1921) {
edges{
node{
content
}
}
}
}
# Tipos disponívels: "Episódios", "Aulas", "Posts"
search(by: "Jesus") {
edges {
node {
title
}
}
}
# Tipos disponívels: "Episódios", "Aulas", "Posts"
search(by: "Jesus", type: "Aulas") {
edges {
node {
title
}
}
}
Com um user logado, pode ser buscado o histórico de aulas. Para realizar a autenticação dois headers são necessários:
- X-Api-Key: Informado na URL de produção para acessar o GraphiQL
- Authorization: Token retornado depois de executar a mutation de login
user{
name
courseProgress
}
Esses dados são obtidos a partir do user quando está logado, existe um atributo chamado courseProgress que trás os dados do histórico do aluno dentro da plataforma.
Aqui temos um json com os dados dos cursos e aulas assistidas pelo aluno no seguinte formato:
{
"235": {
"total_lessons":16,
"lessons":
[
{
"lesson_id":"1888",
"current_time":121.744,
"status":"uncompleted",
"created_at":"2022-05-12T22:53:02.453-03:00",
"watched_at":1652406782
}
],
"progress":6.25
}
}
O nó inicial é o ID do curso, total_lessons é a quantidade de aulas do curso, lessons é o nó com as aulas assistidas pelos alunos e progress é o progresso geral do aluno no curso.
Pegando as últimas 10 categorias de cursos incluindo os seus respectivos cursos aninhados. O parâmetro pode ser alterado para first para buscar os 10 primeiros ou o número passado pode ser diferente.
{
courseCategories(last: 10) {
edges{
node{
id
name
courses{
edges{
node{
name
}
}
}
}
}
}
}
{
courses(last: 10) {
edges{
node{
name
}
}
}
}
{
course(id: 236) {
name
materials{
edges{
node{
name
file
}
}
}
}
}
{
course(id: 236) {
name
resume
lessons{
edges{
node{
name
}
}
}
}
}
{
course(id: 236) {
name
resume
lessons{
edges{
node{
name
}
}
}
}
}
{
courses(last: 1) {
edges{
node{
name
category
related{
edges{
node{
name
category
}
}
}
}
}
}
}
{
lesson(slug: "a-importancia-da-literatura") {
name
comments {
edges {
node {
content
user {
name
}
}
}
}
}
}
{
remarkableLessons(first: 5) {
pageInfo {
hasPreviousPage
hasNextPage
endCursor
startCursor
}
edges{
node{
lesson{
name
}
published
publishedAt
}
}
}
}
Isso gera duas chaves, endCursor e startCursor, desta forma é possível ir adiante ou voltar os registros. Isso serve para todos as queries que possuem edges e nodes.
{
remarkableLessons(first: 5, after: "NQ") {
pageInfo {
hasPreviousPage
hasNextPage
endCursor
startCursor
}
edges{
node{
lesson{
name
}
published
publishedAt
}
}
}
}
{
programs(last: 10) {
edges{
node{
name
}
}
}
}
{
program(slug: "homilia-diaria") {
name
episodes(last: 10) {
edges{
node{
name
slug
}
}
}
}
}
{
episode(slug: "a-importancia-da-literatura") {
name
comments {
edges {
node {
content
user {
name
}
}
}
}
}
}
{
posts(last: 10) {
edges{
node{
title
subtitle
}
}
}
}
{
post(slug: "as-licoes-do-menino-mexicano-que-queria-morrer-por-cristo-rei") {
id
title
subtitle
desktopHeaderImage
content
}
}
{
topHighlights(last: 2) {
edges{
node{
categoryName
title
}
}
}
}
{
shorts(last: 1) {
edges{
node{
title
video
}
}
}
}
{
phrases(last: 2){
edges{
node{
title
}
}
}
}