Lioydiano / Classeviva

Python API wrapper per Classeviva
https://classeviva.readthedocs.io/
MIT License
13 stars 2 forks source link

Invalid student id #23

Closed Nerkyator closed 1 month ago

Nerkyator commented 1 month ago

Ciao, stavo facendo delle semplici prove ma continua a darmi l'errore

{"statusCode":404,"error":"102:CvvRestApi/wrong uri","message":"invalid student-id"}

Codice in uso:

import classeviva
import asyncio

utente = classeviva.Utente("__UTENTE__", "__PASSWORD__")
asyncio.run(utente.accedi())

b = utente.connesso
c = utente.stato
lezioni = asyncio.run(utente.lezioni_giorno())

Debuggando l'utente vedo che il login viene effettuato in quanto vedo nome e cognome corretto, ma poi non si riesce più a fare nulla.

Ad occhio credo sia un qualche cambiamento lato backend\API

FLAK-ZOSO commented 1 month ago

Posso chiederti se __UTENTE__ inizia con una S o se è solo la parte numerica? Potrebbe essere che S8733880I non funzioni ma 8733880I invece sì.

In caso contrario sarebbe utile aprire Classeviva da browser e vedere come fa le richieste, se qualcosa è cambiato; purtroppo penso che il mio account non sia più attivo, se riesci a darci un'occhiata - solo se hai già esperienza e non ti costa tanto tempo - mi fai un favore; altrimenti posso cercare di capire se il mio è ancora attivo e posso fare esperimenti.

Nerkyator commented 1 month ago

Ciao! allora, l'id inizia per G e considerando che la parte web che utilizzo è https://web.spaggiari.eu/home/app/default/menu_webinfoschool_genitori.php

mi viene da pensare che quella G stia per GENITORE mentre la S stia per STUDENTE e probabilmente le API sono diverse, giusto?

Se posso aiutarti nessun problema, io sono devel iOS quindi di debugging web ne so giusto per sopravviverci. Le pagine che si aprono sono in PHP, come faccio a vedere effettivamente le chiamate API che fa? (uso Chrome)

Nerkyator commented 1 month ago

ok, credo di aver risolto. Il fatto che il tuo iniziasse per S mi ha messo nella direzione giusta. Faccio una pull request?

FLAK-ZOSO commented 1 month ago

Oh, sì, G sta per genitore ed S per studente, l'API wrapper purtroppo è stato scritto solo per la parte studente perché io all'epoca avevo accesso solo a quella, ed inoltre la parte per gli studenti è l'unica della quale abbiamo trovato la documentazione originale.

Se mi dici che solo cambiando la G il tutto funziona sono molto stupito... ma se così è prova a fare la pull request che nel peggiore dei casi lo tengo come branch; guarderò tra un paio d'ore volentieri.

Nerkyator commented 1 month ago

fatto https://github.com/Lioydiano/Classeviva/pull/24

ho testato un paio di endpoint e sembra funzionare, se trovo qualcosa di strano ti avverto

FLAK-ZOSO commented 1 month ago

Ci ho pensato e probabilmente la maggior parte degli endpoint funziona per entrambi, alcuni non funzioneranno con le credenziali da genitore ma è un problema minore; se scopri qualcosa ti ringrazio, in quel caso riapri la issue.