GitArt Stúdió és Próbaterem - API

Dokumentáció

Tartalomjegyzék:

Bejelentkezés Token nélkül elérhető útvonal

Egy regisztrált felhasználó a terem foglaláshoz vagy a foglalások megtekintéséhez itt tud bejelentkezni.

Bejelentkezés után egy tokent kapunk válaszként.

Példa felhaználó:

  • email cím: testuser@gmail.com
  • jelszó: Password
            
    fetch('https://gitart.thomasapi.eu/login', {
        method: 'POST',
        headers: {
             "Content-Type": "application/json; charset=UTF-8" 
        },  
        mode: "cors",  
        body: JSON.stringify({
            "EmailAddress": "testuser@gmail.com",
            "Password": "Password"
        })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Felhasználó regisztráció Token nélkül elérhető útvonal

Itt lehet új felhasználóként regisztrálni.

A rendszer már regisztrált email címet nem enged mégegyszer regisztrálni.

        
    fetch('https://gitart.thomasapi.eu/register', {
        method: "POST",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
        },
        mode: "cors",
        body: JSON.stringify({
                "Password" : "Password",                    
                "LastName" : "New",
                "FirstName" : "User",
                "EmailAddress" : "new.user@gmail.com",     
                "PhoneNumber" : "",
                "BookingName": "",
                "PolicyAccept": true
            })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Az összes felhasználó adatainak lekérése Token nélkül elérhető útvonal

        
    fetch('https://gitart.thomasapi.eu/users', {      
        method: "GET",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
        
    

Az összes teremfoglalás lekérése Token nélkül elérhető útvonal

        
    fetch('https://gitart.thomasapi.eu/bookings', {      
        method: "GET",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
        
    

Saját profil lekérdezése Tokennel elérhető útvonal

A felhasználó saját adatait kapjuk meg.

        
    fetch('https://gitart.thomasapi.eu/profile', {
        method: "GET",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
            "Authorization": "Bearer saját-token"                     // a saját-token helyére a bejelentkezésnél kapott tokent kell bemásolni
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
        
    

Saját foglalások lekérdezése Tokennel elérhető útvonal

A felhasználó saját foglalásait kapjuk meg.

        
    fetch('https://gitart.thomasapi.eu/own-bookings', {
        method: "GET",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
            "Authorization": "Bearer saját-token"                     // a saját-token helyére a bejelentkezésnél kapott tokent kell bemásolni
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
        
    

Egy foglalás törlése Tokennel elérhető útvonal

A felhasználó saját foglalásai közül törölheti ami a jelen dátum után következő napokon lett foglalva.

        
    fetch('https://gitart.thomasapi.eu/delete-booking/id', {    // az törlendő foglalás _id -ja
        method: "DELETE",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
            "Authorization": "Bearer saját-token"                     // a saját-token helyére a bejelentkezésnél kapott tokent kell bemásolni
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
        
    

Foglalás leadása Tokennel elérhető útvonal

A kiválasztott terem kiválasztott óráira lehet foglalást leadni.

Foglalás csak a jelenlegi dátum után szabad időpont esetén lehetséges.

        
    fetch('https://gitart.thomasapi/new-booking', {
        method: "POST",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
            "Authorization": "Bearer saját-token"                     // a saját-token helyére a bejelentkezésnél kapott tokent kell bemásolni
        },
        mode: "cors",
        body: JSON.stringify({
            "UserID": "977894",
            "BookingDate": "2024-10-30",                            // Foglalás csak a jelenlegi dátum után szabad időpont esetén lehetséges!
            "Room": "Terem 3",
            "Hours": [10, 11, 12],
            "Name": "Kovács Péter",
            "BookingName": "Kovács Band"
        })
    })
    .then(res => res.json())
    .then(console.log);
        
    

A próbatermek adatait kapjuk meg Token nélkül elérhető útvonal

        
    fetch('https://gitart.thomasapi.eu/rooms', {      
        method: "GET",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
        
    

A stúdió adatait kapjuk meg Token nélkül elérhető útvonal

        
    fetch('https://gitart.thomasapi.eu/studio', {      
        method: "GET",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
        
    

Email küldési funkció Token nélkül elérhető útvonal

Email értesítés küldése, regisztráció, teremfoglalás, foglalás törlése és 6 hibás bejelentkezési kísérlet esetén.

A levelezés kivitelezése a python smtplib modul valamint a nodejs child_process modul használatával készült!

A rendszer négy eseményre reagál amelyekre a négy előre meghatározott email típussal tud válaszolni:

  1. registration_success
  2. booking_success
  3. booking_cancellation
  4. login_attempt_warning

A szerver az összes adatot elvárja , viszont ellenőrzi, hogy melyik üzenetfajtához mik az elvárt adatok és ami nem szükséges ott elfogadja az üres string értéket is!

Például:

Foglalásnál minden adat szükséges:

{
    "emailType": "booking_success",
    "email": "példa@gmail.com",
    "details": {
        "username":"Kiss Pista", 
        "room":  "Terem 3",
        "date": "2024-11-10",
        "startTime": "14",
        "endTime": "20"
    },
    "subject": "Sikeres Foglalás"
}

A regisztrációnál csak felhsználónév kötelező a details objektumban:

{
    "emailType": "registration_success",
    "email": "példa@gmail.com",
    "details": {
        "username":"Kiss Pista",
        "room":  "",
        "date": "",
        "startTime": "",
        "endTime": ""
    },
    "subject": "Sikeres Regisztráció"
}
        
    fetch('https://gitart.thomasapi.eu/send-email', {
        method: "POST",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
        },
        mode: "cors",
        body: JSON.stringify({
                "emailType": "booking_success",
                "email": "regisztrált email cím",    // itt már egy regisztrált felhazsnáló email címét kell megadni
                "details": {
                      "username":"Kiss Pista", 
                      "room":  "Terem 3",
                      "date": "2024-11-10",         
                      "startTime": "14",
                      "endTime": "20"
                    },
                "subject": "Sikeres Foglalás"
            })
    })
    .then(res => res.json())
    .then(console.log);