summaryrefslogtreecommitdiffstats
path: root/endpoint.txt
blob: de0acc1fe28424b6c3b6f3a3ca1b5516c8ed3e17 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# *** dokumentacija gimsisextClient rest api endpointa -- Anton L. Šijanec -- sijanec/gimsisextclient

endpoint je testno javno dostopen na http://gimb.tk/test.php
 to je testni endpoint in ni namenjen produkcijskim okoljem, nanj se ne zanašajte.
  če res zanesljiv api endpoint, ga morate gostovati sami.

uporaba:
 splošno:
  parametre pošiljate v skladu s URL formatom (RFC2616)
   citat iz RFC6920:

    Query Parameter separator '?':  The query parameter separator acts as
     a separator between the digest value and the query parameters (if
     specified).  For compatibility with Internationalized Resource
     Identifiers (IRIs), non-ASCII characters in the query part MUST be
     encoded as UTF-8, and the resulting octets MUST be percent-encoded
     (see [RFC3986], Section 2.1).

    Query Parameters:  A "tag=value" list of optional query parameters as
     are used with HTTP URLs [RFC2616] with a separator character '&'
     between each.  For example, "foo=bar&baz=bat".

   Query paramater seperator uporabljajte le pri GET zahtevah:
    https://gimb.tk/test.php?ime=vrednost&ime2=vrednost2
   in ne pri POST:
    nepravilno:
     POST /test.php HTTP/1.1
     Host: gimb.tk
     Accept: */*
     Content-Length: xxx

     ?ime=vrednost&ime2=vrednost2
    pravilno:
     POST /test.php HTTP/1.1
     Host: gimb.tk
     Accept: */*
     Content-Length: xxx-1

     ime=vrednost&ime2=vrednost2
   arrayi:
    arraye pošiljate z ime[] formatom. $a=array(1,2,3) bi bil a[]=1&a[]=2&a[]=3, ali pa a[0]=1&a[1]=2&a[2]=3.
     seveda lahko uporabljate tudi ključe arrayev. $b=array("a"=>"b") bi bil b[a]=b
  napake:
   napake sintakse se ne pošiljajo, ob napaki dobite le prazno stran: mogoče dobite HTTP error 500, kar pa je odvisno od php-fpm nastavitev
   ves stdout output klase gimsisextClient pa dobite.
    -1 no login info
    -2 not logged in
    -3 bad username or password
    -4 not written yet
  avtentikacija:
   avtenticirate se za vsako zahtevo, saj se piškotni *NE* uporabljajo (juhu!-meni se to zdi dobra ideja)
    uporabniško ime: ime:u vresnost:uporabniško ime
    geslo: ime:p vrednost:geslo
    primer GET:
     GET /test.php?u=username&p=password&ostali=parametri HTTP/1.1
  metode objekta:
   klic na določeno metodo.
    zahtevi dodate spremenljivko m=metoda.
     primer GET za metodo fetchurnik:
      GET /test.php?u=username&p=password&m=fetchurnik&ostali=parametri HTTP/1.1
  podajanje parametrov/argumentov:
   ime parametra funkcija določi po zaporedju, v zahtevi jih pošljete kot individualne vrednosti a, b, c, d, ... .
   primer GET za metodo posljisporocilo, ko uporabnikust 5313 (Rok Štular) pošljemo sporočilo z zadevo EHLO in telesom <b>ehlo from api</b>
    GET /test.php?u=username&p=password&m=posljisporocilo&a=5313&b=EHLO&c=%3Cb%3Eehlo%20from%20api%3C%2Fb%3E HTTP/1.1
   pomemben namig: kot je razvidno iz primera, morate parametre ustrezno url šifirati. v PHP jeziku lahko uporabite urlencode($telo)
 metode (velja za gimsisextClient verzije 0.7.1):
  spodaj je seznam metod z njihovimi parametri.
  metode (če je pri parametru = in neka vrednost, bo na to vrednost nastavljen argument v primeru neizpolnitve):
   ime metode;parametri;opombe
   fetchurnik;datum=null,datum je niz datuma ponedeljka želenega tedna v formatu 21.10.2019. Ob nenavedbi datuma bo izbran trenutni teden.
   fetchocenjevanja;;samoumevno
   fetchprofesorji;;samoumevno
   fetchprofil;;samoumevno, glej setprofil
   setprofil;ime,priimek,spol,eposta,obvestila,telefon);spol: "M"/"Ž" obvestila: "true"/"false" telefon: +tccpndddddd (npr. +38664176345)-od verzije zgimsisa 1.0.7226.34224 se da spreminjati le telefonsko. glej fetchabout
   fetchabout;;podatke o gimssiext programu-pove tudi, katera vezija zgimsisa se poganja.
   fetchneprebrana;;vrne število neprebranih sporočil. ta števec je čuden, jaz se ne bi zanašal nanj, raje bi bral naprej in uporabil spodnjo metodo
   fetchsporocilaseznam;katera;katera: 0=prejeta 1=poslana 2=izbrisana
   fetchsporocilo;id;id sporocila je v gimsisext formatu IdMsg /al' kakorkol' je že/, int|int|int in nimam faking pojma kako dela, prfukjen, kr neki gre gor pa dol
   posljisporocilo;userid,zadeva,telo;userid je zajeban' dobit', kmalu bomo leakal useridje, bodite pozorni: @bezigeeks on IG. telo je lahko HTML (ja, tudi XSS je "podprt, če bi temu lahko tako rekli!"). Kdaj pa kdaj se bo gimsisu zahotelo narest HTTP 500 error in !poslati sporočila, če vsebuje HTML, saj ga ima za XSS. idk... ker metoda vedno vrne null, za preverjanje, če je sporočilo poslano, priporočam zgornjo metodo
   setgeslo;geslo,spremenigeslovobjektu;geslo je seveda novo geslo, spremenigeslovobjektu pa za uporabnike apija ni pomemben. NI POMEMBEN! NI PAČ, kaj te briga kaj nardi?!?!?!?!!1111!
   izbrisisporocilo;id;id je IdMsg|IdZapis. sporocilo bo premaknjeno med izbrisana sporocila/fetchsporocilaseznam(2)
   getversion;;vrne array(major, minor, patch) verzijo klase
   fetchizostanki;datzacetka,datkonca;datzacetka in dankonca določita tajmspen v katerem naj vrne izostanke. formata d.m.Y (npr. 13.10.1971) ali pa array(24, 21, 1969)
   resetpassword;user;ne potrebuje prijave, vrne e-mail uporabnika ali -6 (user ne obstaja)
 dnevnik sprememb / changelog, začenjši z 0.5.13:
  0.7.1 - petek, 8. novembra 2019 -- dodal resetgeslo
  0.6.0 - ponedeljek, 4. novembra 2019 ob 19:14 -- dodal fetchocene, 
  0.5.13 - ponedeljek, 4. novembra 2019 -- api sprememba, popravljen tiskarski škrat, fetchurnik namesto "ucilinca", ja, res, "ucilinca" v JSONu napiše "prostor", popravite gimsisextClientEndpointClient kliente.

that's all folks
<< EOF