Skip to content
This repository has been archived by the owner on Jan 3, 2024. It is now read-only.

Commit

Permalink
feat: add notBeforeDate for travailAFaire endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
maelgangloff committed Sep 29, 2021
1 parent 3ce996f commit 5652b3f
Show file tree
Hide file tree
Showing 5 changed files with 109 additions and 31 deletions.
58 changes: 58 additions & 0 deletions OpenAPI/kdecole.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -603,6 +603,64 @@ paths:
403:
$ref: '#/components/responses/badAuthenticationData'

/travailAFaire/idetablissement/{idetablissement}/{notBeforeDate}/:
get:
summary: Consulter les devoirs à faire de l'élève sélectionné par défaut.
operationId: getHomeworksNotBefore
tags:
- Eleve
parameters:
- in: path
description: L'identifiant de l'établissement.
name: idetablissement
required: true
schema:
type: string
- in: path
description: Un timestamp pour ne sélectionner que les devoirs postérieurs à une date.
name: notBeforeDate
required: true
schema:
type: string
responses:
200:
description: Le serveur renvoit le travail à faire.
content:
application/json:
schema:
$ref: '#/components/schemas/eleveConsulterTravailAFaire'
403:
$ref: '#/components/responses/badAuthenticationData'

/travailAFaire/ideleve/{ideleve}/{notBeforeDate}:
get:
summary: Consulter les devoirs à faire d'un élève précis.
operationId: getHomeworksStudentNotBefore
tags:
- Eleve
parameters:
- in: path
description: L'identifiant alphanumérique de l'élève.
name: ideleve
required: true
schema:
type: string
- in: path
description: Un timestamp pour ne sélectionner que les devoirs postérieurs à une date.
name: notBeforeDate
required: true
schema:
type: string
responses:
200:
description: Le serveur renvoit les travaux à faire.
content:
application/json:
schema:
$ref: '#/components/schemas/eleveConsulterTravailAFaire'
403:
$ref: '#/components/responses/badAuthenticationData'

/contenuActivite/idetablissement/{idetablissement}/{seance}/{travail}/:
get:
summary: Consulter les détails d'un devoir à faire.
Expand Down
32 changes: 17 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ npx kdecole-api -u USERNAME -p CODE -ent PROD_MON_BUREAU_NUMERIQUE
* [.getReleve(idEleve)](#Kdecole+getReleve) ⇒ <code>Promise.&lt;Releve&gt;</code>
* [.getActualites(idEleve)](#Kdecole+getActualites) ⇒ <code>Promise.&lt;Array.&lt;Actualite&gt;&gt;</code>
* [.getContenuArticle(uid)](#Kdecole+getContenuArticle) ⇒ <code>Promise.&lt;ContenuArticle&gt;</code>
* [.getTravailAFaire(idEleve)](#Kdecole+getTravailAFaire) ⇒ <code>Promise.&lt;TravailAFaire&gt;</code>
* [.getTravailAFaire(idEleve, notBeforeDate)](#Kdecole+getTravailAFaire) ⇒ <code>Promise.&lt;TravailAFaire&gt;</code>
* [.getContenuActivite(uidSeance, uid, idEleve)](#Kdecole+getContenuActivite) ⇒ <code>Promise.&lt;ContenuActivite&gt;</code>
* [.setActiviteFinished(uidSeance, uid, flagRealise)](#Kdecole+setActiviteFinished) ⇒ <code>Promise.&lt;void&gt;</code>
* [.getAbsences(idEleve)](#Kdecole+getAbsences) ⇒ <code>Promise.&lt;AbsencesList&gt;</code>
Expand Down Expand Up @@ -134,8 +134,9 @@ kdecole.getReleve(idEleve) //Retourne le relevé d'un élève précis
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getReleve(idEleve).then((releve)=>{
user.getReleve(idEleve).then(releve => {
// Votre code
releve.toCSV() // Exporter son relevé des notes dans un objet contenant les devoirs au format CSV
})
```
<a name="Kdecole+getActualites"></a>
Expand All @@ -154,7 +155,7 @@ Retourne un tableau des actualités de l'établissement de l'utilisateur
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getActualites(idEleve).then((actualites)=>{
user.getActualites(idEleve).then(actualites => {
// Votre code
})
```
Expand All @@ -174,27 +175,28 @@ Retourne le contenu d'un article
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getContenuArticle(uid).then((contenuArticle)=>{
user.getContenuArticle(uid).then(contenuArticle => {
// Votre code
})
```
<a name="Kdecole+getTravailAFaire"></a>

### kdecole.getTravailAFaire(idEleve) ⇒ <code>Promise.&lt;TravailAFaire&gt;</code>
### kdecole.getTravailAFaire(idEleve, notBeforeDate) ⇒ <code>Promise.&lt;TravailAFaire&gt;</code>
Retourne la liste des devoirs de l'élève

**Kind**: instance method of [<code>Kdecole</code>](#Kdecole)

| Param | Type | Description |
| --- | --- | --- |
| idEleve | <code>string</code> | Identifiant d'un élève |
| notBeforeDate | <code>Date</code> | Un objet Date pour ne sélectionner que les devoirs postérieurs à une date |

**Example**
```js
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getTravailAFaire(idEleve).then((taf)=>{
user.getTravailAFaire(idEleve).then(taf => {
// Votre code
})
```
Expand All @@ -216,7 +218,7 @@ Retourne les détails d'un devoir à faire
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getContenuActivite(uidSeance, uid, idEleve).then((contenuActivite)=>{
user.getContenuActivite(uidSeance, uid, idEleve).then(contenuActivite => {
// Votre code
})
```
Expand Down Expand Up @@ -256,7 +258,7 @@ Retourne la liste des absences d'un élève
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getAbsences(idEleve).then((absences)=>{
user.getAbsences(idEleve).then(absences => {
// Votre code
})
```
Expand All @@ -276,7 +278,7 @@ Retourne les informations d'un utilisateur (type de compte, nom complet, numéro
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getInfoUtilisateur(idEleve).then((infoUtilisateur)=>{
user.getInfoUtilisateur(idEleve).then(infoUtilisateur => {
// Votre code
})
```
Expand All @@ -296,7 +298,7 @@ Retourne l'emploi du temps de l'élève à J-7 et J+7
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getCalendrier(idEleve).then((calendrier)=>{
user.getCalendrier(idEleve).then(calendrier => {
// Votre code
})
```
Expand All @@ -316,7 +318,7 @@ Retourne la liste des récentes notes de l'élève
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getNotes(idEleve).then((notes)=>{
user.getNotes(idEleve).then(notes => {
// Votre code
})
```
Expand All @@ -331,7 +333,7 @@ Retourne l'état de la messagerie de l'utilisateur (nombre de mails non lus)
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getMessagerieInfo().then((messagerieInfo)=>{
user.getMessagerieInfo().then(messagerieInfo => {
// Votre code
})
```
Expand All @@ -352,7 +354,7 @@ Le paramètre `pagination` permet de remonter dans le passé dans la liste des f
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getMessagerieBoiteReception().then((messagerieBoiteReception)=>{
user.getMessagerieBoiteReception().then(messagerieBoiteReception => {
// Votre code
})
```
Expand All @@ -372,7 +374,7 @@ Retourne les détails d'un fil de discussion
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.getCommunication(id).then((communication)=>{
user.getCommunication(id).then(communication => {
// Votre code
})
```
Expand Down Expand Up @@ -461,7 +463,7 @@ Retourne les feuilles d'appel.
const { Kdecole } = require('kdecole-api')

const user = new Kdecole(AUTH_TOKEN)
user.gestionAppels().then((gestionAppels)=>{
user.gestionAppels().then(gestionAppels => {
// Votre code
})
```
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "kdecole-api",
"version": "1.2.7",
"version": "1.2.8",
"main": "dist/Kdecole.js",
"types": "types/Kdecole.d.ts",
"bin": {
Expand Down
32 changes: 17 additions & 15 deletions src/Kdecole.ts
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,9 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getReleve(idEleve).then((releve)=>{
* user.getReleve(idEleve).then(releve => {
* // Votre code
* releve.toCSV() // Exporter son relevé des notes dans un objet contenant les devoirs au format CSV
* })
* ```
*/
Expand All @@ -223,7 +224,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getActualites(idEleve).then((actualites)=>{
* user.getActualites(idEleve).then(actualites => {
* // Votre code
* })
* ```
Expand All @@ -247,7 +248,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getContenuArticle(uid).then((contenuArticle)=>{
* user.getContenuArticle(uid).then(contenuArticle => {
* // Votre code
* })
* ```
Expand All @@ -262,20 +263,21 @@ export class Kdecole {
/**
* Retourne la liste des devoirs de l'élève
* @param {string} idEleve Identifiant d'un élève
* @param notBeforeDate {Date} Un objet Date pour ne sélectionner que les devoirs postérieurs à une date
* @return {Promise<TravailAFaire>}
* @example ```js
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getTravailAFaire(idEleve).then((taf)=>{
* user.getTravailAFaire(idEleve).then(taf => {
* // Votre code
* })
* ```
*/
public async getTravailAFaire (idEleve?: string): Promise<TravailAFaire> {
public async getTravailAFaire (idEleve?: string, notBeforeDate?: Date): Promise<TravailAFaire> {
return new TravailAFaire(await Kdecole.kdecole(this, {
service: 'travailAFaire',
parameters: idEleve ? `ideleve/${idEleve}` : undefined
parameters: idEleve ? `ideleve/${idEleve}${notBeforeDate ? '/' + notBeforeDate.getTime().toString() : ''}` : `idetablissement/${this.idEtablissement}${notBeforeDate ? '/' + notBeforeDate.getTime().toString() : ''}`
}))
}

Expand All @@ -289,7 +291,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getContenuActivite(uidSeance, uid, idEleve).then((contenuActivite)=>{
* user.getContenuActivite(uidSeance, uid, idEleve).then(contenuActivite => {
* // Votre code
* })
* ```
Expand Down Expand Up @@ -333,7 +335,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getAbsences(idEleve).then((absences)=>{
* user.getAbsences(idEleve).then(absences => {
* // Votre code
* })
* ```
Expand All @@ -353,7 +355,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getInfoUtilisateur(idEleve).then((infoUtilisateur)=>{
* user.getInfoUtilisateur(idEleve).then(infoUtilisateur => {
* // Votre code
* })
* ```
Expand All @@ -373,7 +375,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getCalendrier(idEleve).then((calendrier)=>{
* user.getCalendrier(idEleve).then(calendrier => {
* // Votre code
* })
* ```
Expand All @@ -393,7 +395,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getNotes(idEleve).then((notes)=>{
* user.getNotes(idEleve).then(notes => {
* // Votre code
* })
* ```
Expand All @@ -412,7 +414,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getMessagerieInfo().then((messagerieInfo)=>{
* user.getMessagerieInfo().then(messagerieInfo => {
* // Votre code
* })
* ```
Expand All @@ -430,7 +432,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getMessagerieBoiteReception().then((messagerieBoiteReception)=>{
* user.getMessagerieBoiteReception().then(messagerieBoiteReception => {
* // Votre code
* })
* ```
Expand All @@ -450,7 +452,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.getCommunication(id).then((communication)=>{
* user.getCommunication(id).then(communication => {
* // Votre code
* })
* ```
Expand Down Expand Up @@ -553,7 +555,7 @@ export class Kdecole {
* const { Kdecole } = require('kdecole-api')
*
* const user = new Kdecole(AUTH_TOKEN)
* user.gestionAppels().then((gestionAppels)=>{
* user.gestionAppels().then(gestionAppels => {
* // Votre code
* })
* ```
Expand Down
16 changes: 16 additions & 0 deletions tests/Taf/TravailAFaire.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,22 @@ describe('Test TravailAFaire', () => {
})
})

it('should call the right url if notBeforeDate is specified', async () => {
mockedAxios.request.mockResolvedValue({
data: require('../fakeData/Taf/fakeTravailAFaire.json')
})
expect(await user.getTravailAFaire(undefined, new Date(1609714800000))).toBeInstanceOf(TravailAFaire)
expect(mockedAxios.request).toHaveBeenCalledWith({
baseURL: ApiUrl.PROD_MON_BUREAU_NUMERIQUE,
data: undefined,
headers: { 'X-Kdecole-Auth': authToken, 'X-Kdecole-Vers': ApiVersion.PROD_MON_BUREAU_NUMERIQUE },
validateStatus: expect.any(Function),
method: 'get',
responseType: 'json',
url: '/travailAFaire/idetablissement/10485/1609714800000/'
})
})

it('should return taf of a specific student', async () => {
mockedAxios.request.mockResolvedValue({
data: require('../fakeData/Taf/fakeTravailAFaire.json')
Expand Down

0 comments on commit 5652b3f

Please sign in to comment.