1
0
Fork 0
mirror of https://github.com/classchartsapi/classcharts-api-js.git synced 2026-05-14 19:59:37 +00:00

feat: parse cookies properly (#15)

This commit is contained in:
James Cook 2022-08-03 16:53:46 +01:00 committed by GitHub
parent 70bf79e019
commit 64909d82b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 23 deletions

View file

@ -3,6 +3,7 @@ import type { GetPupilsResponse } from "./types";
import { ClasschartsClient } from "./baseClient";
import { API_BASE_PARENT, BASE_URL } from "./consts";
import { parseCookies } from "./utils";
/**
* The base client
*/
@ -51,18 +52,11 @@ export class ClasschartsParentClient extends ClasschartsClient {
if (request.status != 302 || !request.headers["set-cookie"])
throw new Error("Unauthenticated: Classcharts returned an error");
const cookies = request.headers["set-cookie"];
for (let i = 0; i < cookies.length; i++) {
cookies[i] = cookies[i].substring(0, cookies[i].indexOf(";"));
}
this.authCookies = cookies;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
let sessionID: any = decodeURI(cookies[1])
.replace(/%3A/g, ":")
.replace(/%2C/g, ",");
sessionID = JSON.parse(
sessionID.substring(sessionID.indexOf("{"), sessionID.length)
const cookies = String(request.headers["set-cookie"]);
this.authCookies = cookies.split(";");
const sessionCookies = parseCookies(cookies);
const sessionID = JSON.parse(
String(sessionCookies["parent_session_credentials"])
);
this.sessionId = sessionID.session_id;
this.pupils = await this.getPupils();