turboself-api 0.1.5 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +28 -14
  2. package/dist/api/balanceGet.d.ts +2 -0
  3. package/dist/api/balanceGet.js +27 -0
  4. package/dist/api/bookDay.d.ts +2 -0
  5. package/dist/api/bookDay.js +58 -0
  6. package/dist/api/bookingGet.d.ts +2 -0
  7. package/dist/api/bookingGet.js +43 -0
  8. package/dist/api/canBookEveningGet.d.ts +1 -0
  9. package/dist/api/canBookEveningGet.js +18 -0
  10. package/dist/api/establishmentGet.d.ts +2 -0
  11. package/dist/api/establishmentGet.js +43 -0
  12. package/dist/api/establishmentSearch.d.ts +2 -0
  13. package/dist/api/establishmentSearch.js +21 -0
  14. package/dist/api/historyGet.d.ts +2 -0
  15. package/dist/api/historyGet.js +26 -0
  16. package/dist/api/hostGet.d.ts +2 -0
  17. package/dist/api/hostGet.js +53 -0
  18. package/dist/api/lastPaymentGet.d.ts +2 -0
  19. package/dist/api/lastPaymentGet.js +21 -0
  20. package/dist/api/siblingsGet.d.ts +2 -0
  21. package/dist/api/siblingsGet.js +56 -0
  22. package/dist/authenticate/index.d.ts +3 -0
  23. package/dist/authenticate/index.js +25 -0
  24. package/dist/client/Turboself.d.ts +53 -0
  25. package/dist/client/Turboself.js +119 -0
  26. package/dist/index.d.ts +8 -5
  27. package/dist/index.js +9 -6
  28. package/dist/index.mjs +8 -4
  29. package/dist/interfaces/AuthFlow.d.ts +24 -0
  30. package/dist/interfaces/AuthFlow.js +3 -0
  31. package/dist/interfaces/Balance.d.ts +16 -0
  32. package/dist/{types → interfaces}/Balance.js +1 -1
  33. package/dist/interfaces/Bookings.d.ts +144 -0
  34. package/dist/interfaces/Bookings.js +3 -0
  35. package/dist/interfaces/Establishment.d.ts +95 -0
  36. package/dist/interfaces/Establishment.js +3 -0
  37. package/dist/interfaces/Fetcher.d.ts +9 -0
  38. package/dist/interfaces/Fetcher.js +3 -0
  39. package/dist/interfaces/Home.d.ts +27 -0
  40. package/dist/{types → interfaces}/Home.js +1 -1
  41. package/dist/interfaces/Host.d.ts +38 -0
  42. package/dist/{types/School.js → interfaces/Host.js} +1 -1
  43. package/dist/parser/Balance.d.ts +17 -0
  44. package/dist/parser/Balance.js +20 -0
  45. package/dist/parser/BookedMeal.d.ts +29 -0
  46. package/dist/parser/BookedMeal.js +28 -0
  47. package/dist/parser/BookingDay.d.ts +32 -0
  48. package/dist/parser/BookingDay.js +39 -0
  49. package/dist/parser/BookingPrice.d.ts +7 -0
  50. package/dist/parser/BookingPrice.js +13 -0
  51. package/dist/parser/BookingTerminal.d.ts +32 -0
  52. package/dist/parser/BookingTerminal.js +30 -0
  53. package/dist/parser/BookingWeek.d.ts +17 -0
  54. package/dist/parser/BookingWeek.js +19 -0
  55. package/dist/parser/Establishment.d.ts +117 -0
  56. package/dist/parser/Establishment.js +84 -0
  57. package/dist/parser/History.d.ts +17 -0
  58. package/dist/parser/History.js +20 -0
  59. package/dist/parser/Host.d.ts +70 -0
  60. package/dist/parser/Host.js +67 -0
  61. package/dist/parser/LatestPayment.d.ts +26 -0
  62. package/dist/parser/LatestPayment.js +27 -0
  63. package/dist/utils/endpoints.d.ts +10 -0
  64. package/dist/utils/endpoints.js +24 -0
  65. package/dist/utils/fetcher.d.ts +7 -0
  66. package/dist/utils/fetcher.js +25 -0
  67. package/dist/utils/weekNumber.d.ts +1 -0
  68. package/dist/utils/weekNumber.js +14 -0
  69. package/package.json +5 -4
  70. package/dist/auth/index.d.ts +0 -7
  71. package/dist/auth/index.js +0 -35
  72. package/dist/rest/RESTManager.d.ts +0 -7
  73. package/dist/rest/RESTManager.js +0 -15
  74. package/dist/rest/RequestHandler.d.ts +0 -5
  75. package/dist/rest/RequestHandler.js +0 -27
  76. package/dist/rest/endpoints.d.ts +0 -10
  77. package/dist/rest/endpoints.js +0 -23
  78. package/dist/routes/School.d.ts +0 -19
  79. package/dist/routes/School.js +0 -55
  80. package/dist/routes/User.d.ts +0 -74
  81. package/dist/routes/User.js +0 -237
  82. package/dist/structures/Client.d.ts +0 -26
  83. package/dist/structures/Client.js +0 -195
  84. package/dist/types/Balance.d.ts +0 -24
  85. package/dist/types/Booking.d.ts +0 -73
  86. package/dist/types/Booking.js +0 -3
  87. package/dist/types/Home.d.ts +0 -42
  88. package/dist/types/Login.d.ts +0 -14
  89. package/dist/types/Login.js +0 -3
  90. package/dist/types/School.d.ts +0 -103
  91. package/dist/types/User.d.ts +0 -69
  92. package/dist/types/User.js +0 -3
package/README.md CHANGED
@@ -1,26 +1,40 @@
1
- # 🔧 Utilisation
2
- ### Connexion par identifiants
3
- ```javascript
4
- const TurboSelf = require('turboself-api')
1
+ # turboself-api
5
2
 
6
- async function main() {
7
- let client = await TurboSelf.authTurboselfWithCredentials("your_email", "your_password")
8
- console.log(client)
9
- }
3
+ [![npm](https://img.shields.io/npm/l/turboself-api)](https://www.npmjs.com/package/turboself-api)
4
+ [![npm version](https://badge.fury.io/js/turboself-api.svg)](https://badge.fury.io/js/turboself-api)
5
+ [![npm](https://img.shields.io/npm/dw/turboself-api)](https://www.npmjs.com/package/turboself-api)
6
+ [![npm](https://img.shields.io/npm/dt/turboself-api)](https://www.npmjs.com/package/turboself-api)
10
7
 
11
- main()
8
+ A simple wrapper to interact with the TurboSelf API.
9
+
10
+ > [!warning]
11
+ > This project is not affiliated with TurboSelf or INCB in any way.
12
+
13
+ ## 📦 Installation
14
+
15
+ ```bash
16
+ npm install turboself-api
12
17
  ```
13
- ### Réserver un déjeuner pour lundi prochain
18
+
19
+ ## 🔧 Usage
20
+ ### Authentification with credentials
14
21
  ```javascript
15
22
  const TurboSelf = require('turboself-api')
16
23
 
17
24
  async function main() {
18
- let client = await TurboSelf.authTurboselfWithCredentials("your_email", "your_password")
19
- client.bookDay(1, await client.getCurrentBookingWeekNumber()+1, 1)
25
+ let client = await TurboSelf.authenticateWithCredentials({ username: "your_email", password: "your_password" })
26
+ console.log(client)
20
27
  }
21
28
 
22
29
  main()
23
30
  ```
24
31
 
25
- ### Autre exemples
26
- Pour voir d'autre exemples d'utilisation, vous pouvez regarder le dossier ``examples``
32
+ ### Other exemples
33
+ To see more examples, check the [examples](https://github.com/raphckrman/turboself-api/tree/dev/examples) folder.
34
+
35
+ ## ௷ Credits
36
+
37
+ Thanks to the following people for their contributions to this project:
38
+
39
+ - [Remy Godet](https://github.com/godetremy)
40
+ - [Tom Theret](https://github.com/tom-theret)
@@ -0,0 +1,2 @@
1
+ import { Balance } from "../parser/Balance";
2
+ export declare const getBalance: (token: string, id: number) => Promise<Balance>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBalance = void 0;
4
+ const Balance_1 = require("../parser/Balance");
5
+ const endpoints_1 = require("../utils/endpoints");
6
+ const fetcher_1 = require("../utils/fetcher");
7
+ const getBalance = async (token, id) => {
8
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.GET_HOST_BALANCE)(id), {
9
+ method: "GET",
10
+ headers: {
11
+ "Content-Type": "application/json",
12
+ "Authorization": "Bearer " + token
13
+ }
14
+ });
15
+ const raw = await response.json();
16
+ const estimatedAt = new Date();
17
+ estimatedAt.setFullYear(parseInt(raw[0].montantEstimeMsg.replace("Montant estimé au ", "").split("/")[2]));
18
+ estimatedAt.setMonth(parseInt(raw[0].montantEstimeMsg.replace("Montant estimé au ", "").split("/")[1]) - 1);
19
+ estimatedAt.setDate(parseInt(raw[0].montantEstimeMsg.replace("Montant estimé au ", "").split("/")[0]));
20
+ estimatedAt.setHours(12);
21
+ estimatedAt.setMinutes(0);
22
+ estimatedAt.setSeconds(0);
23
+ estimatedAt.setMilliseconds(0);
24
+ return new Balance_1.Balance(token, id, raw[0].montant, raw[0].montantEstime, estimatedAt);
25
+ };
26
+ exports.getBalance = getBalance;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFsYW5jZUdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hcGkvYmFsYW5jZUdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBNEM7QUFDNUMsa0RBQXNEO0FBQ3RELDhDQUFvRDtBQUU3QyxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsS0FBYSxFQUFFLEVBQVUsRUFBb0IsRUFBRTtJQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsMEJBQWdCLEVBQUMsK0JBQStCLEdBQUcsSUFBQSw0QkFBZ0IsRUFBQyxFQUFFLENBQUMsRUFBRTtRQUM5RixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLO1NBQ25DO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUE2QixDQUFDO0lBQzdELE1BQU0sV0FBVyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7SUFDckMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNHLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFL0IsT0FBTyxJQUFJLGlCQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDbkYsQ0FBQyxDQUFDO0FBcEJXLFFBQUEsVUFBVSxjQW9CckIifQ==
@@ -0,0 +1,2 @@
1
+ import { BookedMeal } from "../parser/BookedMeal";
2
+ export declare const bookMeal: (token: string, id: number, bookId: string, book: number, bookEvening: number, day: number) => Promise<BookedMeal>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bookMeal = void 0;
4
+ const BookedMeal_1 = require("../parser/BookedMeal");
5
+ const Establishment_1 = require("../parser/Establishment");
6
+ const Host_1 = require("../parser/Host");
7
+ const endpoints_1 = require("../utils/endpoints");
8
+ const fetcher_1 = require("../utils/fetcher");
9
+ const bookMeal = async (token, id, bookId, book, bookEvening, day) => {
10
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.PUT_BOOK_MEAL)(id), {
11
+ method: "PUT",
12
+ headers: {
13
+ "Content-Type": "application/json",
14
+ "Authorization": "Bearer " + token
15
+ },
16
+ body: JSON.stringify({
17
+ dayOfWeek: day,
18
+ dayReserv: book,
19
+ web: {
20
+ id: bookId
21
+ },
22
+ hasHoteResaSoirActive: bookEvening
23
+ })
24
+ });
25
+ const raw = await response.json();
26
+ const establishment = new Establishment_1.Establishment(raw.web.hote.etab.code2p5, raw.web.hote.etab.nom, raw.web.hote.etab.versionTS, raw.web.hote.etab.id, raw.web.hote.etab.idTurboself, raw.web.hote.etab.currencySymbol, raw.web.hote.etab.configuration?.nbRepasMini ?? 0, raw.web.hote.etab.configuration?.creanceMini ?? 0, raw.web.hote.etab.configuration?.montantCreditMini ?? 0, raw.web.hote.etab.configuration?.msgAccueil ?? "", raw.web.hote.etab.desactive, raw.web.hote.etab.numEtab, raw.web.hote.etab.pcServeur, raw.web.hote.etab.configurationsReservation?.map((data) => {
27
+ return {
28
+ id: data.id,
29
+ usage: data.usage,
30
+ elecom: data.elecom,
31
+ endReservation: data.finReserv
32
+ };
33
+ }), {
34
+ address1: raw.web.hote.etab.adr1 ?? "",
35
+ address2: raw.web.hote.etab.adr2 ?? "",
36
+ zipCode: raw.web.hote.etab.cp ?? "",
37
+ city: raw.web.hote.etab.ville ?? ""
38
+ }, {
39
+ phoneNumber: raw.web.hote.etab.tel ?? "",
40
+ website: raw.web.hote.etab.configuration?.url ?? "",
41
+ email: raw.web.hote.etab.configuration?.email ?? ""
42
+ }, {
43
+ canStudentUseQrCode: raw.web.hote.etab.configuration?.autoriseQrCodeEleve ?? false,
44
+ canCompanionUseQrCode: raw.web.hote.etab.configuration?.autoriseQrCodeCommensal ?? false,
45
+ canInternUseQrCode: raw.web.hote.etab.configuration?.autoriseQrCodeStagiaire ?? false,
46
+ canStudentSeeHistory: raw.web.hote.etab.configuration?.cacherHistorique ?? false
47
+ }, {
48
+ firstSync: raw.web.hote.etab.datePremSynchro ?? "",
49
+ lastSync: raw.web.hote.etab.dateDernSynchro ?? "",
50
+ lastSelfSync: raw.web.hote.etab.configurationSelf?.dateDernSynchro ?? ""
51
+ });
52
+ const host = new Host_1.Host(raw.web.hote.id, raw.web.hote.prenom, raw.web.hote.nom, raw.web.hote.qualite, raw.web.hote.division, raw.web.hote.prixDej, establishment, undefined, {
53
+ lastSync: raw.web.hote.dateDernSynchro ?? ""
54
+ }, raw.web.hote.carteCodee ?? -1, token);
55
+ return new BookedMeal_1.BookedMeal(raw.id, raw.dayReserv === 0 ? false : true, raw.reservHorsKiosk === 0 ? false : true, raw.reservDernSynchro === 0 ? false : true, raw.rsvwebid, raw.msg, host);
56
+ };
57
+ exports.bookMeal = bookMeal;
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va0RheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hcGkvYm9va0RheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBa0Q7QUFDbEQsMkRBQXdEO0FBQ3hELHlDQUFzQztBQUN0QyxrREFBcUU7QUFDckUsOENBQW9EO0FBRzdDLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBVSxFQUFFLE1BQWMsRUFBRSxJQUFZLEVBQUUsV0FBbUIsRUFBRSxHQUFXLEVBQXVCLEVBQUU7SUFDL0ksTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDBCQUFnQixFQUFDLCtCQUErQixHQUFHLElBQUEseUJBQWEsRUFBQyxFQUFFLENBQUMsRUFBRTtRQUMzRixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLO1NBQ25DO1FBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDbkIsU0FBUyxFQUFFLEdBQUc7WUFDZCxTQUFTLEVBQUUsSUFBSTtZQUNmLEdBQUcsRUFBRTtnQkFDSCxFQUFFLEVBQUUsTUFBTTthQUNYO1lBQ0QscUJBQXFCLEVBQUUsV0FBVztTQUNuQyxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0lBR0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFpQixDQUFDO0lBQ2pELE1BQU0sYUFBYSxHQUFHLElBQUksNkJBQWEsQ0FDckMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFDekIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFDckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFDM0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxD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
@@ -0,0 +1,2 @@
1
+ import { BookingWeek } from "../parser/BookingWeek";
2
+ export declare const getBookingWeek: (token: string, id: number, weekNumber?: number) => Promise<BookingWeek>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBookingWeek = void 0;
4
+ const BookingDay_1 = require("../parser/BookingDay");
5
+ const BookingPrice_1 = require("../parser/BookingPrice");
6
+ const BookingTerminal_1 = require("../parser/BookingTerminal");
7
+ const BookingWeek_1 = require("../parser/BookingWeek");
8
+ const weekNumber_1 = require("../utils/weekNumber");
9
+ const endpoints_1 = require("../utils/endpoints");
10
+ const fetcher_1 = require("../utils/fetcher");
11
+ const getBookingWeek = async (token, id, weekNumber) => {
12
+ if (!weekNumber) {
13
+ weekNumber = (0, weekNumber_1.getWeekNumber)(new Date());
14
+ }
15
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.GET_BOOKING_WEEK)(id, weekNumber ?? 0), {
16
+ method: "GET",
17
+ headers: {
18
+ "Content-Type": "application/json",
19
+ "Authorization": "Bearer " + token
20
+ }
21
+ });
22
+ const raw = await response.json();
23
+ const weekDate = new Date(raw.dateSemaine);
24
+ const terminals = await Promise.all(raw.rsvWebDto.map(async (terminal) => {
25
+ let prices = terminal.borne.prix.map((price) => {
26
+ return new BookingPrice_1.BookingPrice(price.id, price.borneId, price.prix);
27
+ });
28
+ let days = await Promise.all(terminal.jours.map(async (day) => {
29
+ let month = weekDate.getMonth();
30
+ let dayNumber = parseInt(day.dayLabel.split(" ")[1]) + 1;
31
+ let firstDayOfWeek = parseInt(terminal.jours[0].dayLabel.split(" ")[1]);
32
+ if (firstDayOfWeek > dayNumber) {
33
+ month = month + 1;
34
+ }
35
+ let date = new Date(weekDate.getFullYear(), month, dayNumber);
36
+ return new BookingDay_1.BookingDay(token, id, terminal.id, day.dayReserv === 0 ? false : true, day.reservDernSynchro === 0 ? false : true, day.autorise, day.msg ?? null, date);
37
+ }));
38
+ return new BookingTerminal_1.BookingTerminal(terminal.borne.id, terminal.id, terminal.annee, terminal.semaine, terminal.borne.lib, terminal.joursAutorises, terminal.usage, prices, days);
39
+ }));
40
+ return new BookingWeek_1.BookingWeek(terminals, raw.numSemaines, raw.isResaSoirActive, weekDate);
41
+ };
42
+ exports.getBookingWeek = getBookingWeek;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZ0dldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hcGkvYm9va2luZ0dldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBa0Q7QUFDbEQseURBQXNEO0FBQ3RELCtEQUE0RDtBQUM1RCx1REFBb0Q7QUFDcEQsb0RBQW9EO0FBQ3BELGtEQUFzRDtBQUN0RCw4Q0FBb0Q7QUFFN0MsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFVLEVBQUUsVUFBbUIsRUFBd0IsRUFBRTtJQUMzRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsVUFBVSxHQUFHLElBQUEsMEJBQWEsRUFBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSwwQkFBZ0IsRUFBQywrQkFBK0IsR0FBRyxJQUFBLDRCQUFnQixFQUFDLEVBQUUsRUFBRSxVQUFVLElBQUksQ0FBQyxDQUFDLEVBQUU7UUFDL0csTUFBTSxFQUFFLEtBQUs7UUFDYixPQUFPLEVBQUU7WUFDUCxjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLGVBQWUsRUFBRSxTQUFTLEdBQUcsS0FBSztTQUNuQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBMEIsQ0FBQztJQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsTUFBTSxTQUFTLEdBQUksTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUN4RSxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM3QyxPQUFPLElBQUksMkJBQVksQ0FDckIsS0FBSyxDQUFDLEVBQUUsRUFDUixLQUFLLENBQUMsT0FBTyxFQUNiLEtBQUssQ0FBQyxJQUFJLENBQ1gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM1RCxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1lBQ3ZELElBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4RSxJQUFJLGNBQWMsR0FBRyxTQUFTLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxHQUFHLEtBQUssR0FBQyxDQUFDLENBQUM7WUFDbEIsQ0FBQztZQUNELElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFOUQsT0FBTyxJQUFJLHVCQUFVLENBQ25CLEtBQUssRUFDTCxFQUFFLEVBQ0YsUUFBUSxDQUFDLEVBQUUsRUFDWCxHQUFHLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ2xDLEdBQUcsQ0FBQyxpQkFBaUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUMxQyxHQUFHLENBQUMsUUFBUSxFQUNaLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUNmLElBQUksQ0FDTCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sSUFBSSxpQ0FBZSxDQUN4QixRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFDakIsUUFBUSxDQUFDLEVBQUUsRUFDWCxRQUFRLENBQUMsS0FBSyxFQUNkLFFBQVEsQ0FBQyxPQUFPLEVBRWhCLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUNsQixRQUFRLENBQUMsY0FBYyxFQUN2QixRQUFRLENBQUMsS0FBSyxFQUNkLE1BQU0sRUFDTixJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPLElBQUkseUJBQVcsQ0FDcEIsU0FBUyxFQUNULEdBQUcsQ0FBQyxXQUFXLEVBQ2YsR0FBRyxDQUFDLGdCQUFnQixFQUNwQixRQUFRLENBQ1QsQ0FBQztBQUNKLENBQUMsQ0FBQztBQWpFVyxRQUFBLGNBQWMsa0JBaUV6QiJ9
@@ -0,0 +1 @@
1
+ export declare const getCanBookEvening: (token: string, id: number) => Promise<boolean>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCanBookEvening = void 0;
4
+ const endpoints_1 = require("../utils/endpoints");
5
+ const fetcher_1 = require("../utils/fetcher");
6
+ const getCanBookEvening = async (token, id) => {
7
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.GET_HOST_CAN_BOOK_EVENING)(id), {
8
+ method: "GET",
9
+ headers: {
10
+ "Content-Type": "application/json",
11
+ "Authorization": "Bearer " + token
12
+ }
13
+ });
14
+ const raw = await response.json();
15
+ return raw;
16
+ };
17
+ exports.getCanBookEvening = getCanBookEvening;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuQm9va0V2ZW5pbmdHZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXBpL2NhbkJvb2tFdmVuaW5nR2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtEQUErRDtBQUMvRCw4Q0FBb0Q7QUFFN0MsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsS0FBYSxFQUFFLEVBQVUsRUFBb0IsRUFBRTtJQUNyRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsMEJBQWdCLEVBQUMsK0JBQStCLEdBQUcsSUFBQSxxQ0FBeUIsRUFBQyxFQUFFLENBQUMsRUFBRTtRQUN2RyxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLO1NBQ25DO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFhLENBQUM7SUFDN0MsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFYVyxRQUFBLGlCQUFpQixxQkFXNUIifQ==
@@ -0,0 +1,2 @@
1
+ import { Establishment } from "../parser/Establishment";
2
+ export declare const getEtablishment: (id: number) => Promise<Establishment>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEtablishment = void 0;
4
+ const Establishment_1 = require("../parser/Establishment");
5
+ const endpoints_1 = require("../utils/endpoints");
6
+ const fetcher_1 = require("../utils/fetcher");
7
+ const getEtablishment = async (id) => {
8
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.GET_ETABLISHMENT)(id), {
9
+ method: "GET",
10
+ headers: {
11
+ "Content-Type": "application/json"
12
+ }
13
+ });
14
+ const raw = await response.json();
15
+ return new Establishment_1.Establishment(raw.code2p5, raw.nom, raw.versionTS, raw.id, raw.idTurboself, raw.currencySymbol, raw.configuration?.nbRepasMini ?? 0, raw.configuration?.creanceMini ?? 0, raw.configuration?.montantCreditMini ?? 0, raw.configuration?.msgAccueil ?? "", raw.desactive, raw.numEtab, raw.pcServeur, raw.configurationsReservation?.map((data) => {
16
+ return {
17
+ id: data.id,
18
+ usage: data.usage,
19
+ elecom: data.elecom,
20
+ endReservation: data.finReserv
21
+ };
22
+ }), {
23
+ address1: raw.adr1 ?? "",
24
+ address2: raw.adr2 ?? "",
25
+ zipCode: raw.cp ?? "",
26
+ city: raw.ville ?? ""
27
+ }, {
28
+ phoneNumber: raw.tel ?? "",
29
+ website: raw.configuration?.url ?? "",
30
+ email: raw.configuration?.email ?? ""
31
+ }, {
32
+ canStudentUseQrCode: raw.configuration?.autoriseQrCodeEleve ?? false,
33
+ canCompanionUseQrCode: raw.configuration?.autoriseQrCodeCommensal ?? false,
34
+ canInternUseQrCode: raw.configuration?.autoriseQrCodeStagiaire ?? false,
35
+ canStudentSeeHistory: raw.configuration?.cacherHistorique ?? false
36
+ }, {
37
+ firstSync: raw.datePremSynchro ?? "",
38
+ lastSync: raw.dateDernSynchro ?? "",
39
+ lastSelfSync: raw.configurationSelf?.dateDernSynchro ?? ""
40
+ });
41
+ };
42
+ exports.getEtablishment = getEtablishment;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXN0YWJsaXNobWVudEdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hcGkvZXN0YWJsaXNobWVudEdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyREFBd0Q7QUFDeEQsa0RBQXNEO0FBQ3RELDhDQUFvRDtBQUU3QyxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQUUsRUFBVSxFQUEwQixFQUFFO0lBQzFFLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSwwQkFBZ0IsRUFBQywrQkFBK0IsR0FBRyxJQUFBLDRCQUFnQixFQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQzlGLE1BQU0sRUFBRSxLQUFLO1FBQ2IsT0FBTyxFQUFFO1lBQ1AsY0FBYyxFQUFFLGtCQUFrQjtTQUNuQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBMkIsQ0FBQztJQUUzRCxPQUFPLElBQUksNkJBQWEsQ0FDdEIsR0FBRyxDQUFDLE9BQU8sRUFDWCxHQUFHLENBQUMsR0FBRyxFQUNQLEdBQUcsQ0FBQyxTQUFTLEVBQ2IsR0FBRyxDQUFDLEVBQUUsRUFDTixHQUFHLENBQUMsV0FBVyxFQUVmLEdBQUcsQ0FBQyxjQUFjLEVBQ2xCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLENBQUMsRUFDbkMsR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLElBQUcsQ0FBQyxFQUNsQyxHQUFHLENBQUMsYUFBYSxFQUFFLGlCQUFpQixJQUFHLENBQUMsRUFFeEMsR0FBRyxDQUFDLGFBQWEsRUFBRSxVQUFVLElBQUksRUFBRSxFQUVuQyxHQUFHLENBQUMsU0FBUyxFQUNiLEdBQUcsQ0FBQyxPQUFPLEVBQ1gsR0FBRyxDQUFDLFNBQVMsRUFDYixHQUFHLENBQUMseUJBQXlCLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDMUMsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQy9CLENBQUM7SUFDSixDQUFDLENBQUMsRUFDRjtRQUNFLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDeEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRTtRQUN4QixPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFO1FBQ3JCLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7S0FDdEIsRUFDRDtRQUNFLFdBQVcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUU7UUFDMUIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLEVBQUU7UUFDckMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLEVBQUU7S0FDdEMsRUFDRDtRQUNFLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLElBQUcsS0FBSztRQUNuRSxxQkFBcUIsRUFBRSxHQUFHLENBQUMsYUFBYSxFQUFFLHVCQUF1QixJQUFHLEtBQUs7UUFDekUsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsSUFBRyxLQUFLO1FBQ3RFLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLElBQUcsS0FBSztLQUNsRSxFQUNEO1FBQ0UsU0FBUyxFQUFFLEdBQUcsQ0FBQyxlQUFlLElBQUksRUFBRTtRQUNwQyxRQUFRLEVBQUUsR0FBRyxDQUFDLGVBQWUsSUFBSSxFQUFFO1FBQ25DLFlBQVksRUFBRSxHQUFHLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxJQUFJLEVBQUU7S0FDM0QsQ0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBMURXLFFBQUEsZUFBZSxtQkEwRDFCIn0=
@@ -0,0 +1,2 @@
1
+ import { Establishment } from "../parser/Establishment";
2
+ export declare const searchEstablishment: (city: string, limit: number) => Promise<Array<Establishment>>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.searchEstablishment = void 0;
4
+ const Establishment_1 = require("../parser/Establishment");
5
+ const endpoints_1 = require("../utils/endpoints");
6
+ const fetcher_1 = require("../utils/fetcher");
7
+ const searchEstablishment = async (city, limit) => {
8
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.SEARCH_ETABLISHMENT)(city, limit), {
9
+ method: "GET",
10
+ headers: {
11
+ "Content-Type": "application/json"
12
+ }
13
+ });
14
+ const raw = await response.json();
15
+ const result = raw.map((data) => {
16
+ return new Establishment_1.Establishment(data.code2p5, data.nom, data.versionTS);
17
+ });
18
+ return result;
19
+ };
20
+ exports.searchEstablishment = searchEstablishment;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXN0YWJsaXNobWVudFNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hcGkvZXN0YWJsaXNobWVudFNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyREFBd0Q7QUFDeEQsa0RBQXlEO0FBQ3pELDhDQUFvRDtBQUU3QyxNQUFNLG1CQUFtQixHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsS0FBYSxFQUFpQyxFQUFFO0lBQ3RHLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSwwQkFBZ0IsRUFBQywrQkFBK0IsR0FBRyxJQUFBLCtCQUFtQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtRQUMxRyxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQWtDLENBQUM7SUFDbEUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzlCLE9BQU8sSUFBSSw2QkFBYSxDQUN0QixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxHQUFHLEVBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FDZixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFsQlcsUUFBQSxtQkFBbUIsdUJBa0I5QiJ9
@@ -0,0 +1,2 @@
1
+ import { History } from "../parser/History";
2
+ export declare const getHistory: (token: string, id: number) => Promise<History[]>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHistory = void 0;
4
+ const History_1 = require("../parser/History");
5
+ const endpoints_1 = require("../utils/endpoints");
6
+ const fetcher_1 = require("../utils/fetcher");
7
+ const getHistory = async (token, id) => {
8
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.GET_HOST_HOME)(id), {
9
+ method: "GET",
10
+ headers: {
11
+ "Content-Type": "application/json",
12
+ "Authorization": "Bearer " + token
13
+ }
14
+ });
15
+ const raw = await response.json();
16
+ const result = raw.historiques?.map((data) => {
17
+ let date = new Date(data.date);
18
+ return new History_1.History(data.id, date, data.detail, data.debit ?? 0, data.credit ?? 0);
19
+ });
20
+ if (result) {
21
+ return result;
22
+ }
23
+ return [];
24
+ };
25
+ exports.getHistory = getHistory;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeUdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hcGkvaGlzdG9yeUdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBNEM7QUFDNUMsa0RBQW1EO0FBQ25ELDhDQUFvRDtBQUU3QyxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsS0FBYSxFQUFFLEVBQVUsRUFBc0IsRUFBRTtJQUNoRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsMEJBQWdCLEVBQUMsK0JBQStCLEdBQUcsSUFBQSx5QkFBYSxFQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQzNGLE1BQU0sRUFBRSxLQUFLO1FBQ2IsT0FBTyxFQUFFO1lBQ1AsY0FBYyxFQUFFLGtCQUFrQjtZQUNsQyxlQUFlLEVBQUUsU0FBUyxHQUFHLEtBQUs7U0FDbkM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQW1CLENBQUM7SUFDbkQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUMzQyxJQUFJLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLGlCQUFPLENBQ2hCLElBQUksQ0FBQyxFQUFFLEVBQ1AsSUFBSSxFQUNKLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQ2YsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQ2pCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUM7QUExQlcsUUFBQSxVQUFVLGNBMEJyQiJ9
@@ -0,0 +1,2 @@
1
+ import { Host } from "../parser/Host";
2
+ export declare const getHost: (token: string, id: number) => Promise<Host>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHost = void 0;
4
+ const Establishment_1 = require("../parser/Establishment");
5
+ const Host_1 = require("../parser/Host");
6
+ const endpoints_1 = require("../utils/endpoints");
7
+ const fetcher_1 = require("../utils/fetcher");
8
+ const getHost = async (token, id) => {
9
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.GET_HOST)(id), {
10
+ method: "GET",
11
+ headers: {
12
+ "Content-Type": "application/json",
13
+ "Authorization": "Bearer " + token
14
+ }
15
+ });
16
+ const raw = await response.json();
17
+ const etablishment = new Establishment_1.Establishment(raw.etab.code2p5, raw.etab.nom, raw.etab.versionTS, raw.etab.id, raw.etab.idTurboself, raw.etab.currencySymbol, raw.etab.configuration?.nbRepasMini ?? 0, raw.etab.configuration?.creanceMini ?? 0, raw.etab.configuration?.montantCreditMini ?? 0, raw.etab.configuration?.msgAccueil ?? "", raw.etab.desactive, raw.etab.numEtab, raw.etab.pcServeur, raw.etab.configurationsReservation?.map((data) => {
18
+ return {
19
+ id: data.id,
20
+ usage: data.usage,
21
+ elecom: data.elecom,
22
+ endReservation: data.finReserv
23
+ };
24
+ }), {
25
+ address1: raw.etab.adr1 ?? "",
26
+ address2: raw.etab.adr2 ?? "",
27
+ zipCode: raw.etab.cp ?? "",
28
+ city: raw.etab.ville ?? ""
29
+ }, {
30
+ phoneNumber: raw.etab.tel ?? "",
31
+ website: raw.etab.configuration?.url ?? "",
32
+ email: raw.etab.configuration?.email ?? ""
33
+ }, {
34
+ canStudentUseQrCode: raw.etab.configuration?.autoriseQrCodeEleve ?? false,
35
+ canCompanionUseQrCode: raw.etab.configuration?.autoriseQrCodeCommensal ?? false,
36
+ canInternUseQrCode: raw.etab.configuration?.autoriseQrCodeStagiaire ?? false,
37
+ canStudentSeeHistory: raw.etab.configuration?.cacherHistorique ?? false
38
+ }, {
39
+ firstSync: raw.etab.datePremSynchro ?? "",
40
+ lastSync: raw.etab.dateDernSynchro ?? "",
41
+ lastSelfSync: raw.etab.configurationSelf?.dateDernSynchro ?? ""
42
+ });
43
+ return new Host_1.Host(raw.id, raw.prenom, raw.nom, raw.qualite, raw.division, raw.prixDej, etablishment, {
44
+ canPay: raw.droitPaiement ?? false,
45
+ canBookMeal: raw.droitReservation ?? false,
46
+ canBookCafeteria: raw.droitCafeteria ?? false,
47
+ canBookIfBalanceInsufficient: raw.autoriseReservSoldeIns ?? false
48
+ }, {
49
+ lastSync: raw.dateDernSynchro ?? ""
50
+ }, raw.carteCodee ?? -1, token);
51
+ };
52
+ exports.getHost = getHost;
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdEdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hcGkvaG9zdEdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyREFBd0Q7QUFDeEQseUNBQXNDO0FBQ3RDLGtEQUFtRTtBQUNuRSw4Q0FBb0Q7QUFFN0MsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFVLEVBQWlCLEVBQUU7SUFDeEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDBCQUFnQixFQUFDLCtCQUErQixHQUFHLElBQUEsb0JBQVEsRUFBQyxFQUFFLENBQUMsRUFBRTtRQUN0RixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLO1NBQ25DO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFtQixDQUFDO0lBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksNkJBQWEsQ0FDcEMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQ2hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUNaLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUNsQixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFDWCxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFFcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQ3ZCLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBSSxDQUFDLEVBQ3hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBRyxDQUFDLEVBQ3ZDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQixJQUFHLENBQUMsRUFFN0MsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxJQUFJLEVBQUUsRUFFeEMsR0FB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
@@ -0,0 +1,2 @@
1
+ import { LatestPayment } from "../parser/LatestPayment";
2
+ export declare const getLatestPayment: (token: string, id: number) => Promise<LatestPayment>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLatestPayment = void 0;
4
+ const LatestPayment_1 = require("../parser/LatestPayment");
5
+ const endpoints_1 = require("../utils/endpoints");
6
+ const fetcher_1 = require("../utils/fetcher");
7
+ const getLatestPayment = async (token, id) => {
8
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.GET_HOST_HOME)(id), {
9
+ method: "GET",
10
+ headers: {
11
+ "Content-Type": "application/json",
12
+ "Authorization": "Bearer " + token
13
+ }
14
+ });
15
+ const raw = await response.json();
16
+ let date = new Date(raw.latestPaiement?.date ?? "");
17
+ let updateDate = new Date(raw.latestPaiement?.dateMaj ?? "");
18
+ return new LatestPayment_1.LatestPayment(raw.latestPaiement?.id ?? 0, date, updateDate, raw.latestPaiement?.type ?? null, raw.latestPaiement?.montant ?? 0, raw.latestPaiement?.statut ?? "", raw.latestPaiement?.idTransaction ?? "", raw.latestPaiement?.token ?? "");
19
+ };
20
+ exports.getLatestPayment = getLatestPayment;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdFBheW1lbnRHZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXBpL2xhc3RQYXltZW50R2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJEQUF3RDtBQUN4RCxrREFBbUQ7QUFDbkQsOENBQW9EO0FBRTdDLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFVLEVBQTBCLEVBQUU7SUFDMUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDBCQUFnQixFQUFDLCtCQUErQixHQUFHLElBQUEseUJBQWEsRUFBQyxFQUFFLENBQUMsRUFBRTtRQUMzRixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLO1NBQ25DO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFtQixDQUFDO0lBQ25ELElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELElBQUksVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE9BQU8sSUFBSSw2QkFBYSxDQUN0QixHQUFHLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQzNCLElBQUksRUFDSixVQUFVLEVBQ1YsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksSUFBSSxFQUNoQyxHQUFHLENBQUMsY0FBYyxFQUFFLE9BQU8sSUFBSSxDQUFDLEVBQ2hDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFDaEMsR0FBRyxDQUFDLGNBQWMsRUFBRSxhQUFhLElBQUksRUFBRSxFQUN2QyxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQ2hDLENBQUM7QUFDSixDQUFDLENBQUM7QUF0QlcsUUFBQSxnQkFBZ0Isb0JBc0IzQiJ9
@@ -0,0 +1,2 @@
1
+ import { Host } from "../parser/Host";
2
+ export declare const getSiblings: (token: string, id: number) => Promise<Host[]>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSiblings = void 0;
4
+ const Establishment_1 = require("../parser/Establishment");
5
+ const Host_1 = require("../parser/Host");
6
+ const endpoints_1 = require("../utils/endpoints");
7
+ const fetcher_1 = require("../utils/fetcher");
8
+ const getSiblings = async (token, id) => {
9
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.GET_SIBLINGS)(id), {
10
+ method: "GET",
11
+ headers: {
12
+ "Content-Type": "application/json",
13
+ "Authorization": "Bearer " + token
14
+ }
15
+ });
16
+ const raw = await response.json();
17
+ const result = raw.map((data) => {
18
+ let establishment = new Establishment_1.Establishment(data.etab.code2p5, data.etab.nom, data.etab.versionTS, data.etab.id, data.etab.idTurboself, data.etab.currencySymbol, data.etab.configuration?.nbRepasMini ?? 0, data.etab.configuration?.creanceMini ?? 0, data.etab.configuration?.montantCreditMini ?? 0, data.etab.configuration?.msgAccueil ?? "", data.etab.desactive, data.etab.numEtab, data.etab.pcServeur, data.etab.configurationsReservation?.map((data) => {
19
+ return {
20
+ id: data.id,
21
+ usage: data.usage,
22
+ elecom: data.elecom,
23
+ endReservation: data.finReserv
24
+ };
25
+ }), {
26
+ address1: data.etab.adr1 ?? "",
27
+ address2: data.etab.adr2 ?? "",
28
+ zipCode: data.etab.cp ?? "",
29
+ city: data.etab.ville ?? ""
30
+ }, {
31
+ phoneNumber: data.etab.tel ?? "",
32
+ website: data.etab.configuration?.url ?? "",
33
+ email: data.etab.configuration?.email ?? ""
34
+ }, {
35
+ canStudentUseQrCode: data.etab.configuration?.autoriseQrCodeEleve ?? false,
36
+ canCompanionUseQrCode: data.etab.configuration?.autoriseQrCodeCommensal ?? false,
37
+ canInternUseQrCode: data.etab.configuration?.autoriseQrCodeStagiaire ?? false,
38
+ canStudentSeeHistory: data.etab.configuration?.cacherHistorique ?? false
39
+ }, {
40
+ firstSync: data.etab.datePremSynchro ?? "",
41
+ lastSync: data.etab.dateDernSynchro ?? "",
42
+ lastSelfSync: data.etab.configurationSelf?.dateDernSynchro ?? ""
43
+ });
44
+ return new Host_1.Host(data.id, data.prenom, data.nom, data.qualite, data.division, data.prixDej, establishment, {
45
+ canPay: data.droitPaiement ?? false,
46
+ canBookMeal: data.droitReservation ?? false,
47
+ canBookCafeteria: data.droitCafeteria ?? false,
48
+ canBookIfBalanceInsufficient: data.autoriseReservSoldeIns ?? false
49
+ }, {
50
+ lastSync: data.dateDernSynchro ?? ""
51
+ }, data.carteCodee ?? -1);
52
+ });
53
+ return result;
54
+ };
55
+ exports.getSiblings = getSiblings;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2libGluZ3NHZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXBpL3NpYmxpbmdzR2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJEQUF3RDtBQUN4RCx5Q0FBc0M7QUFDdEMsa0RBQWtEO0FBQ2xELDhDQUFvRDtBQUU3QyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsS0FBYSxFQUFFLEVBQVUsRUFBbUIsRUFBRTtJQUM5RSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsMEJBQWdCLEVBQUMsK0JBQStCLEdBQUcsSUFBQSx3QkFBWSxFQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQzFGLE1BQU0sRUFBRSxLQUFLO1FBQ2IsT0FBTyxFQUFFO1lBQ1AsY0FBYyxFQUFFLGtCQUFrQjtZQUNsQyxlQUFlLEVBQUUsU0FBUyxHQUFHLEtBQUs7U0FDbkM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQXFCLENBQUM7SUFFckQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzlCLElBQUksYUFBYSxHQUFHLElBQUksNkJBQWEsQ0FDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFFckIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBSSxDQUFDLEVBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBRyxDQUFDLEVBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGlCQUFpQixJ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
@@ -0,0 +1,3 @@
1
+ import Turboself from "../client/Turboself";
2
+ import { AuthFlowBody } from "../interfaces/AuthFlow";
3
+ export declare const authenticateWithCredentials: (options: AuthFlowBody) => Promise<Turboself>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authenticateWithCredentials = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const Turboself_1 = tslib_1.__importDefault(require("../client/Turboself"));
6
+ const endpoints_1 = require("../utils/endpoints");
7
+ const fetcher_1 = require("../utils/fetcher");
8
+ const authenticateWithCredentials = async (options) => {
9
+ const response = await (0, fetcher_1.TurboselfFetcher)("https://api-rest-prod.incb.fr" + (0, endpoints_1.LOGIN)(), {
10
+ method: "POST",
11
+ body: JSON.stringify(options),
12
+ headers: {
13
+ "Content-Type": "application/json"
14
+ }
15
+ });
16
+ const raw = await response.json();
17
+ return new Turboself_1.default(raw.access_token, {
18
+ hoteId: raw.hoteId,
19
+ userId: raw.userId,
20
+ username: options.username,
21
+ password: options.password
22
+ });
23
+ };
24
+ exports.authenticateWithCredentials = authenticateWithCredentials;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXV0aGVudGljYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw0RUFBNEM7QUFFNUMsa0RBQTJDO0FBQzNDLDhDQUFvRDtBQUU3QyxNQUFNLDJCQUEyQixHQUFHLEtBQUssRUFBRSxPQUFxQixFQUFzQixFQUFFO0lBQzdGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSwwQkFBZ0IsRUFBQywrQkFBK0IsR0FBRyxJQUFBLGlCQUFLLEdBQUUsRUFBRTtRQUNqRixNQUFNLEVBQUUsTUFBTTtRQUNkLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUM3QixPQUFPLEVBQUU7WUFDUCxjQUFjLEVBQUUsa0JBQWtCO1NBQ25DO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFvQixDQUFDO0lBRXBELE9BQU8sSUFBSSxtQkFBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUU7UUFDckMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO1FBQ2xCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtRQUNsQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7UUFDMUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO0tBQzNCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQWpCVyxRQUFBLDJCQUEyQiwrQkFpQnRDIn0=
@@ -0,0 +1,53 @@
1
+ import { AuthFlowData } from "../interfaces/AuthFlow";
2
+ import { Balance } from "../parser/Balance";
3
+ import { BookedMeal } from "../parser/BookedMeal";
4
+ import { BookingWeek } from "../parser/BookingWeek";
5
+ import { Establishment } from "../parser/Establishment";
6
+ import { History } from "../parser/History";
7
+ import { Host } from "../parser/Host";
8
+ import { LatestPayment } from "../parser/LatestPayment";
9
+ export default class Turboself {
10
+ token: string;
11
+ private loginData;
12
+ tokenExpires: number;
13
+ constructor(token: string, loginData: AuthFlowData);
14
+ private refreshToken;
15
+ /** This method is used to search schools from all schools using Turboself.
16
+ * @param query The query to search for.
17
+ * @param limit The maximum number of results to return.
18
+ */
19
+ searchEstablishments(query: string, limit: number): Promise<Establishment[]>;
20
+ /** This method is used to get an Establishment from Turboself.
21
+ * @param code The code of the establishment.
22
+ */
23
+ getEstablishment(code: string): Promise<Establishment>;
24
+ /** This method is used to get the host of a Turboself user.
25
+ */
26
+ getHost(): Promise<Host>;
27
+ /** This method is used to get the balance of a Turboself user.
28
+ */
29
+ getBalance(): Promise<Balance>;
30
+ /** This method is used to get the siblings of a Turboself user.
31
+ */
32
+ getSiblings(): Promise<Host[]>;
33
+ /** This method is used to get the latest payment of a Turboself user.
34
+ */
35
+ getHistory(): Promise<History[]>;
36
+ /** This method is used to get the latest payment of a Turboself user.
37
+ */
38
+ getLatestPayment(): Promise<LatestPayment>;
39
+ /** This method is used to get if the user can book evening.
40
+ */
41
+ canBookEvening(): Promise<boolean>;
42
+ /** This method is used to get a booking week.
43
+ * @param weekNumber The number of the week.
44
+ */
45
+ getBookingWeek(weekNumber?: number): Promise<BookingWeek>;
46
+ /** This method is used to book a meal.
47
+ * @param id The id of the associated to the terminal.
48
+ * @param book If the meal should be booked.
49
+ * @param bookEvening If the meal should be booked evening.
50
+ * @param dayOfWeek The day of the week the meal should be booked.
51
+ */
52
+ bookDay(id: string, book: boolean, bookEvening?: boolean, dayOfWeek?: number): Promise<BookedMeal>;
53
+ }