Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

FenixEdu/fenixedu-python-sdk

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fenix_python_sdk

Installation

pip install fenixedu

Usage

Instantiating the client

  • Import python sdk

import fenixedu

Instantiating a configuration object

Using a configuration file
  • Clone this repository or just download fenixedu.sample.ini file

  • Copy file fenixedu.sample.ini to a new one named 'fenixedu.ini' or with another name if you want

cp fenixedu.sample.ini FILENAME

  • Edit the file according to your application info

  • Instantiate a configuration object using the file

config = fenixedu.FenixEduConfiguration.fromConfigFile('FILENAME')

  • If no FILENAME is provided it will use 'fenixedu.ini'
Without a configuration file

config = fenixedu.FenixEduConfiguration('CLIENT_ID, 'REDIRECT_URI', 'CLIENT_SECRET', 'BASE_URL')

Instantiating the client

  • Instantiate an API client object in your source code

client = fenixedu.FenixEduClient(config)

Authentication

  • Get the authentication URL

url = client.get_authentication_url()

  • Redirect your user to that URL

  • If the user authorizes your application he will be redirected to an URL like this:

redirect_uri?code=CODE

  • Get the code parameter in URL and get an object with the user details:

user = client.get_user_by_code(CODE)

  • It will request an access token and returns no errors if everything is fine

  • This user object now can be used to make requests that belong to the private scope like this one:

person = client.get_person(user)

Examples of usage

Get degrees

degrees = client.get_degrees()

Get spaces

spaces = client.get_spaces()

Get information about the user

person = client.get_person(user)

Get user's classes calendar

classes = client.get_person_calendar_classes(user)

Get user's payments

payments = client.get_person_payments(user)

Full endpoint list

  • '[x]' - Optional parameters

  • All endpoints in FenixEdu API have a method in this SDK

  • Mapping between FenixAPISingleton api methods and original API endpoints

  • API endpoint -> SDK FenixAPISingleton Methods

Public methods

  • GET /about -> get_about

  • GET /academicterms -> get_academic_terms

  • GET /courses/{id} -> get_course(id)

  • GET /courses/{id}/evaluations -> get_course_evaluations(id)

  • GET /courses/{id}/groups -> get_course_groups(id)

  • GET /courses/{id}/schedule -> get_course_schedule(id)

  • GET /courses/{id}/students -> get_course_students(id)

  • GET /degrees -> get_degrees([year])

  • GET /degrees/{id} -> get_degree(id, [year])

  • GET /degrees/{id}/courses -> get_degree_courses(id, [year])

  • GET /spaces -> get_spaces()

  • GET /spaces/{id} -> get_space(id,[day])

Private methods (You need to get an access token before calling one of these methods)

  • GET /person -> get_person(user)

  • GET /person/calendar/classes -> get_person_classes_calendar(user)

  • GET /person/calendar/evaluations -> get_person_evaluations_calendar(user)

  • GET /person/courses -> get_person_courses(user, [academicTerm])

  • GET /person/evaluations -> get_person_evaluations(user)

  • GET /person/payments -> get_person_payments(user)

  • PUT /person/evaluations/{id} -> enrol_in_evaluation(user, id, [enrol_action])

  • GET /person/curriculum -> get_person_curriculum(user)

More info about all available endpoints in FenixEdu API website

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.