API del Tutor

Códigos de error

Si la llamada al método fue exitosa, el código HTTP de estado de respuesta es 200 (OK). Si se intenta acceder a alguna llamada que requiere autenticación, sin pasar las credenciales apropiadas, el código de error será 401 (Unauthorized). Si el objeto con el que se va a interactuar no existe, el código será 404 (Not Found). Si se presenta un error de la plataforma, el código de error será 500 (Internal Server Error).

A continuación se describen los códigos de error y los mensajes respectivos que pueden emitir los servicios en caso de que el código de estado sea 500.

  • NO_BOOK_ID: 1 No hay un libro con el id recibido
  • NO_VERSION: 2 La versión no está presente
  • MALFORMED_JSON: 3 Json mal formado
  • MISSING_JSON: 4 Hace falta el json
  • ONLY_POST_ALLOWED: 5 Solamente se acepta método post
  • NO_RECIPE_FOR_BOOK: 6 No hay receta publicada para este libro
  • VERSION_RANGE_ERROR: 8 La versión debe estar entre 0 y 32000
  • VERSION_FROM_RANGE_ERROR: 9 La versión debe estar entre 0 y 32000
  • NO_PLANNING_FOR_COURSE_SUBJECT: 11 No hay planeación publicada para el curso asignatura
  • MISSING_DATA: 12 el método espera parámetros pero no los recibió, o no tienen el formato apropiado.
  • NO_USER: 13 no se encontró el usuario con la dirección de correo dada.
  • CRED_CHECK_FAILED: 14 la autenticación con las credenciales dadas falló.
  • NOT_A_TEACHER: 15 el usuario no es profesor.
  • NO_CSUBJECT: 16 la asignatura con el ID dado no existe.
  • NO_SUBJECT: 17 el área con el ID dado no existe.
  • WRONG_SCHOOL: 18 el profesor no está asociado al colegio indicado.

Autenticación

Para poder usar la API, debe obtener un token, y pasar dicho token como parte del encabezado de las solicitudes HTTP que haga para usar la API.

Para obtener un token, debe usar el método getProfesor, que se describe a continuación.

Para autenticarse, debe pasar el token como parte del encabezado (header) Authorization, así:

Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

Dependiendo del framework/herramienta que se utilice para acceder a la API, puede que el header anterior no funcione. Si obtiene el mensaje de error Authentication credentials were not provided., pruebe usando el siguiente encabezado:

HTTP_AUTHORIZATION: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

getProfesor

Este método ofrece dos funcionalidades: permite obtener información básica del profesor, dadas las credenciales del mismo, y entrega como resultado, además de dicha información, un token de autenticación, que es necesario para usar todas las otras llamadas de la API.

El método requiere los siguientes argumentos, en una solicitud de tipo POST:

  • email: dirección de correo con la cual que se encuentra registrado el profesor en el sistema.
  • password: contraseña del profesor.

Puede probar la API con una llamada similar a la siguiente:

curl -X POST https://sabios.librosylibros.co/api/tutor/teacher_info/ -d '{"email": "teacher_email@school.com", "password": "TRUSTNO1"}' -H "Content-Type: application/json"

Obtendrá una respuesta en formato JSON similar a lo siguiente:

{"id": 3, "name": "Sosa D\u00edaz Bros", "avatar_url": "http://sabios-dev.s3.amazonaws.com/uploads/user/3/d2992fca-f4b9-400d-8285-267688fe8f90/tokyo_panorama_dual_monitor-wide.jpg", "auth_token": "270ac92d149487afcbd462ddb8325fab06c3e28f"}

De especial importancia es la entrada auth_token, en la que se encuentra el token que se debe usar para autenticarse al usar todas las otras llamadas de la API del Tutor.

Solicitudes de información

Puede acceder al índice de los métodos expuestos para el tutor en

https://sabios.librosylibros.co/api/tutor/

getColegio

Este método permite obtener el listado de colegios a los cuales está asociado un profesor. El método no recibe parámetros.

Puede probar la API con la siguiente llamada:

curl -X GET https://sabios.librosylibros.co/api/tutor/teacher/1/schools/ -H "Content-Type: application/json"  -H 'Authorization: Token 9bd4631e7bced8a73e6e7c5e736928c8bdadd749'

Obtendrá una respuesta en formato JSON similar a lo siguiente:

[{"id": 11, "name": "Colegio Piloto", "ini_date": "2013-07-01", "end_date": "2014-06-30", "image_url": "http://sabios-dev.s3.amazonaws.com/uploads/school/11/5a99aec7-c562-4e3a-88c5-3dd2c7512bd9/Wallpaper-l-010.jpg"}, {"id": 1, "name": "LICEO CAMBRIDGE A", "ini_date": "2014-01-01", "end_date": "2014-11-30", "image_url": "http://sabios-dev.s3.amazonaws.com/uploads/school/1/d5d14ccd-6422-424c-97ea-6c65fa9dc42f/Wallpaper-l-010.jpg"}]

getMateria

Este método permite obtener el listado de asignaturas a cargo del profesor en el período actual. El método no recibe parámetros.

Puede probar la API con la siguiente llamada:

curl -X GET https://sabios.librosylibros.co/api/tutor/teacher/<ID_PROFESOR>/coursesubjects/ -H "Content-Type: application/json" -H "Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b"

Obtendrá una respuesta en formato JSON similar a lo siguiente:

[{"id": 111, "name": "Naturales Segundo", "url_coursesubject": "http://sabios-dev.s3.amazonaws.com/uploads/subject/3/82149519-7059-4dcf-9f41-37b3660e55f5/ciencias.png", "id_subject": 3, "id_school": 22}, {"id": 114, "name": "Naturales Tercero", "url_coursesubject": "http://sabios-dev.s3.amazonaws.com/uploads/subject/3/82149519-7059-4dcf-9f41-37b3660e55f5/ciencias.png", "id_subject": 3, "id_school": 22}, {"id": 117, "name": "Naturales Cuarto", "url_coursesubject": "http://sabios-dev.s3.amazonaws.com/uploads/subject/3/82149519-7059-4dcf-9f41-37b3660e55f5/ciencias.png", "id_subject": 3, "id_school": 22}]

getClases

Este método permite obtener el listado de lecciones (clases) asociadas a una asignatura particular. El método no recibe parámetros.

Puede probar la API con la siguiente llamada:

curl -X GET https://sabios.librosylibros.co/api/tutor/coursesubject/<ID-MATERIA>/lessons/ -H "Content-Type: application/json" -H "Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b"

Obtendrá una respuesta en formato JSON similar a lo siguiente:

[{"id": 56, "name": "Oea y Tutela", "planned_date": null, "mobile_resources": []}, {"id": 67, "name": "Derechos Humanos 2", "planned_date": null, "mobile_resources": []}, {"id": 57, "name": "LA Republica", "planned_date": null, "mobile_resources": []}, {"id": 44, "name": "Pa\u00eds Privilegiado", "planned_date": null, "mobile_resources": []}, {"id": 54, "name": "Economia", "planned_date": null, "mobile_resources": []}, {"id": 47, "name": "Poblaci\u00f3n de Colombia", "planned_date": "2013-12-05T05:00:00Z", "mobile_resources": []}]

getCursos

Este método permite obtener el listado de cursos en los que se dicta alguna asignatura del área indicada.

Tenga en cuenta que:

  • Sólo se listan cursos del colegio actual del usuario con el cual se autenticó para hacer esta llamada.
  • Sólo se listan cursos que hacen parte del período (año lectivo) vigente del colegio.

El método no recibe parámetros.

Puede probar la API con la siguiente llamada:

curl -X GET https://sabios.librosylibros.co/api/tutor/subject/<ID-AREA>/courses/ -H "Content-Type: application/json" -H "Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b"

Obtendrá una respuesta en formato JSON similar a lo siguiente:

[{"id": 31, "name": "Cuarto", "id_tier": 34, "id_school": 1}, {"id": 28, "name": "QUINTO ", "id_tier": 25, "id_school": 1}, {"id": 29, "name": "NOVENO", "id_tier": 26, "id_school": 1}]

getRecursosDidacticos

Este método entrega un listado de los recursos didácticos aptos para móvil.

El método recibe un único parámetro, opcional:

is_active: booleano (opcional) que indica qué tipo de recursos se desean. Si se pasa como valor false, se entregan los recursos inactivos. En otro caso, se entregan los recursos activos.

Puede probar la API con la siguiente llamada:

curl -X GET https://sabios.librosylibros.co/api/tutor/school/1/didacticresources/ -H "Content-Type: application/json" -H 'Authorization: Token 0430cb4a634e52d7cde618491cfdae12da59f511' -d '{"is_active": false}'

Obtendrá una respuesta en formato JSON similar a lo siguiente:

[{"id": 601, "name": "Corrige el disparate", "description": "<iframe height=\" 636px\" src=\"https://01sabios.s3.amazonaws.com/uploads/game/bin/actividades/posiciones/corrige_el_disparate.html?config=assets/Corrige el disparate prueba.json&amp;fullScreen=true&amp;fullScreen=true\" width=\"100%\">\r\n                            &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/a&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;\r\n</iframe>\n<iframe height=\" 636px\" src=\"javascript:window.onload=function() {document.getelementbyid('wrapper').innerhtml='&lt;h3&gt;\r\n          ACTIVIDAD: Actividad jhjkhk&lt;/h3&gt;\r\n&lt;p&gt;\r\n\t&lt;a href=\\'#\\' onclick=\\'javascript:var a=document.getElementsByTagName(\\'header\\')[0];a.style.zIndex=\\'-1\\';\\'&gt;Pantalla Completa&lt;/a&gt;'}\" style=\"border:none;display:none\" width=\"100%\">\n</iframe>", "authors": "", "id_tier": 25, "subject": [2], "is_active": true, "kind": 8, "image_url": "http://sabios-dev.s3.amazonaws.com/img/default_resource.png", "resource_url": ""}, {"id": 602, "name": "ejemplo con inicio y fin", "description": "<iframe allowfullscreen=\"\" height=\"670px\" src=\"https://01sabios.s3.amazonaws.com/uploads/game/bin/videos_youtube/video.html?datos=3eVFGYMsSjg&amp;titulo=Convivencia en la Escuela&amp;inicio=20&amp;fin=31\" style=\"border:none\" width=\"100%\">\n</iframe>", "authors": "", "id_tier": 25, "subject": [2], "is_active": true, "kind": 7, "image_url": "http://sabios-dev.s3.amazonaws.com/img/default_resource.png", "resource_url": ""}]

getRecursosDidacticosColegio

Este método entrega un listado de los recursos didácticos generados por el colegio en la planeación.

El método no recibe parámetros

Puede probar la API con la siguiente llamada:

curl -X GET http://localhost:8005/api/tutor/school/1/didacticschoolresources/ -H "Content-Type: application/json" -H 'Authorization: Token cdff22a113d4982637c3d1800473f2acce72b33d'

Obtendrá una respuesta en formato JSON similar a lo siguiente:

[{"id": 158, "name": "region", "plan_info": "ffff", "authors": "Camilo Sierra", "id_tier": 2, "subject": "CIENCIAS SOCIALES", "is_active": true, "tipo": "recurso_colegio", "image_url": "http://02sabios-dev.s3.amazonaws.com/uploads/lesson/0/a27fd561-d43f-45d6-9604-11d4c6a3020b/cotizacion_horas_sabios_002.pdf", "resource_url": "http://02sabios-dev.s3.amazonaws.com/uploads/lesson/0/a27fd561-d43f-45d6-9604-11d4c6a3020b/cotizacion_horas_sabios_002.pdf"}, {"id": 55, "name": "Colombia", "plan_info": "todos", "authors": "Camilo Sierra", "id_tier": 2, "subject": "Ciencias Sociales", "is_active": true, "tipo": "recurso_colegio", "image_url": "http://02sabios-dev.s3.amazonaws.com/uploads/lesson/0/5f02d11b-4037-4d49-8ed2-385044ab2612/Mapa.jpg", "resource_url": "http://02sabios-dev.s3.amazonaws.com/uploads/lesson/0/5f02d11b-4037-4d49-8ed2-385044ab2612/Mapa.jpg"}]