Giter VIP home page Giter VIP logo

kdecole-api-dart's Introduction

This is an UNOFFICIAL wrapper for the kdecole api

How to use ?

Login

First, you need to create a Client() object :

LOGIN AND PASSWORD ARE NOT YOUR ENT ONES. TEMPORARY USERNAME AND PASSWORD GIVEN TO INIT THE MOBILE APP SHALL BE USED

var client = Client(url: '<your CAS url', username: '<your username>', password: '<your password');

or if you already have a token :

var client = Client.fromToken(token: '<your token', url: 'your CAS url');

Now you're logged in !

To logout :

await client.logout();

Messaging

Get the mail box

Of course, you need to have a Client() object,
Next, just get an email list :

var list = await client.getEmails();

It returns you a list of emails which first lines of the first message can be seen. This contains the id, the expeditor and the receivers. WARNING you can't get the full messages body by this way

Get details of an email

From your email object, you just need to do :

await client.getFullEmail(youremail);

It will return you another email which contains all the data from the given one, plus the whole discussion, in a list of Message objects

The message object

You can get from it :

  • The sender
  • The date
  • The message

Homeworks

Get the homeworks

As well as the messaging, this method only return you the first lines of the homework :

var homeworksList = await client.getHomeworks();

It will return you a list of homeworks

Get the full homework

var hw = await client.getFullHomework(oldHw);

It will return you the new Hw with the full body

Homework object

You can get from it :

  • The content
  • The type
  • The subject
  • The estimated time (if given by the professor)
  • The status (is realised)
  • The uuid
  • The uuid of the session
  • the Date

Timetable

Get the timetable

There is only one method :

var tt = await client.getTimetable();

It will return to you a list of Course

The course object

You can get from it :

  • The subject
  • A list of homeworks (only theuid, just get the sessionUid and use the getFullHomework method)
  • The content (if given)
  • The start date (Datetime)
  • The end date (Datetime too)

kdecole-api-dart's People

Contributors

florian-lefebvre avatar freezman31 avatar maelgangloff avatar theskyblockman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

theskyblockman

kdecole-api-dart's Issues

Change how library works

I didn't know to name this issue xd but basically instead of importing types in each file, use the part and part of keywords. You can have a look there and there.

Refactor `invokeApi`

I inspected the code of the Client and it looks like the invokeApi uses an url parameter. This parameter is always provided as url + something so this url that is a class attribute could be used directly within invokeApi.
Also it should be a private method I think.

Change url handling (proposal)

I find the name Urls for the enum is not adapted.
I think it should be renamed to casUrl.

Also, the Client would be different:

class Client {
  final casUrl _url;
  late String token;
  Map<String, String> header = {};
  late UserInfo info;

  String get url => _enumToUrl(_url);

  Client(this._url, username, password) {
    login(username, password);
  }

  ///Create this object if you already have a token
  Client.fromToken(this.token, this._url) {
    header.addAll({'X-Kdecole-Auth': token, 'X-Kdecole-Vers': '3.7.14'});
  }
...

What do you think about it @Freezman31?

Use named parameters

For example at

Email(this._title, this._body, this._sender, this._receivers, this._id, this._messages);
, it would be better to use named parameters like:

Email({required this._title, required this._body, required this._sender, required this._receivers, required this._id, required this._messages}); 

Also, what is the interest of using private attributes along getters there @Freezman31?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.