Üdvözöllek a ThomasAPI-on!

Dokumentáció

Tartalomjegyzék:

Összes termékek lekérdezése Token nélkül elérhető útvonal

Az összes termék lekérdezése.

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

Egy termék lekérdezése Token nélkül elérhető útvonal

Alapértelmezetten az id 1 és 375 közötti szám. A további hozzáadott termék id-ja mindig egyel növekszik.

            
    fetch('https://egs.thomasapi.eu/api/product/:id', {         // a :id helyett a keresett termék id-jét kel beírni!
        method: "GET",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
            
        

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

Az oldalra vásárlóként és adminisztrátorként lehet bejelentkezni. Minden felhasználó jelszava: Password.

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

Példa felhaználók:

Vásárló felhasználó nevek:

  • a.fausztina1269
  • b.eduárd1389

Adminisztrátor felhasználó nevek:

  • h.tamás1363
  • k.kata42
            
    fetch('https://egs.thomasapi.eu/api/login', {
        method: 'POST',
        headers: {
             "Content-Type": "application/json; charset=UTF-8" 
        },  
        mode: "cors",  
        body: JSON.stringify({
            "UserName": "k.kata42",
            "Password": "Password"
        })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Vásárlói regisztráció Token nélkül elérhető útvonal

Itt lehet új vásárlót regisztrálni, ezen az útvonalon autómatikusan beállítja az IsAdmin értéket false-ra.

A rendszer már létező felhasználó nevet vagy regisztrált email címet nem enged mégegyszer regisztrálni.

        
    fetch('https://egs.thomasapi.eu/api/register', {
        method: "POST",
        headers: {
            "Content-Type": "application/json; charset=UTF-8",
        },
        mode: "cors",
        body: JSON.stringify({
                "UserName" : "New customer",                    // kötelező kitölteni
                "Password" : "Password",                        // kötelező kitölteni
                "BirthDate" : "",
                "LastName" : "New",
                "FirstName" : "Customer",
                "EmailAddress" : "new.customer@gmail.com",      // kötelező kitölteni  
                "PhoneNumber" : "",
                "Postcode" : "",
                "City" : "",
                "Address" : "",
                "ShippingPostcode" : "",
                "ShippingCity" : "",
                "ShippingAddress" : "",
                "InvoicePostcode" : "",
                "InvoicegCity" : "",
                "InvoiceAddress" : ""
            })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Saját profil lekérdezése Vásárlói és admin tokennel is elérhető útvonal

Saját felhasználói profil adatait kapjuk meg.

        
    fetch('https://egs.thomasapi.eu/api/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 profil frissítése Vásárlói és admin tokennel is elérhető útvonal

Saját felhasználói profil adatainak frissítése.

Front-end oldalon kell biztosítani, hogy a vásárló csak olyan adatot módosíthasson amihez jogosultsága van. Pl. az IsAdmint nem érheti el egy vásárló!

A jelszó is megváltoztatható.Az új jelszón tárolása is hashelve történik.

        
    fetch('https://egs.thomasapi.eu/api/profileupdate', {
        method: "PUT",
        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({
            {
                "UserName": "k.kata42",
                "Password": "Password",
                "IsAdmin": true,
                "AdminRole": "Értékesítő",
                "JobTitle": "Alkalmazott",
                "BirthDate": "1979-06-12",
                "LastName": "Kecskeméti",
                "FirstName": "Kata",
                "EmailAddress": "kata.kecskemeti@gEGS.hu",
                "PhoneNumber": "0630-896-6666",
                "Postcode": "1152",
                "City": "Budapest",
                "Address": "Szent Miklós útja 16/a 4/14",
                "ShippingPostcode": "",
                "ShippingCity": "",
                "ShippingAddress": "",
                "InvoicePostcode": "",
                "InvoicegCity": "",
                "InvoiceAddress": "",
                "ActiveFlag": "0",
                "InvoiceCity": "",
            }
        })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Rendelés leadása Vásárlói és admin tokennel is elérhető útvonal

A kosárban gyűjtött termékek rendelésének leadásához.

Rendelés ID-t a backend generálja. A kommenten kívül minden mező kitöltése kötelező. Ezeket a front-end generálja!

        
    fetch('https://egs.thomasapi.eu/api/order', {
        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({
            "CustomerID": 5,
            "OrderStatus": "Pending",
            "SubTotal": 5600,
            "Freight": 2500,
            "DeliveryTypeID": 1,
            "TotalDue": 8100,
            "Comment": "",
            "OrderItems": [
                {
                    "ProductID": 276,
                    "Quantity": 1,
                    "UnitPrice": 5600,
                    "LineTotal": 5600
                }
            ]
        })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Saját rendelések lekérdezése Vásárlói és admin tokennel is elérhető útvonal

A felhasználó UserId-ja a rendelésekben szereplő Customerid. Ha b.eduárd1389 néven jelentkezel be és a kapott tokennel hívod meg az útvonalat akkor egy rendelést biztosan visszakapsz.

        
    fetch('https://egs.thomasapi.eu/api/ownorders', {
        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);
        
    

Új admin regisztrálása Admin tokennel elérhető útvonal

Új admin regisztrációját csak egy adminisztrátor végezheti el.

Minden felhasználónak egyedi email címmel kell rendelkeznie!

        
    fetch('https://egs.thomasapi.eu/api/adminregister', {
        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({
            "UserName": "NewAdmin1",
            "Password": "Password",
            "AdminRole": "Értékesítő",
            "JobTitle": "Alkalmazott",
            "BirthDate": "1992-06-07",
            "LastName": "Kecskeméti",
            "FirstName": "Kata",
            "EmailAddress": "newadmin1@gEGS.hu",
            "PhoneNumber": "0630-896-4567",
            "Postcode": "1152",
            "City": "Budapest",
            "Address": "Szent Miklós útja 16/a 4/14"
        })   
    })
    .then(res => res.json())
    .then(console.log);
        
    

Az összes rendelés adatainak lekérése Admin tokennel elérhető útvonal

Az összes leadott rendelés adatait meg tudjuk tekinteni. Alapértelmezetten az adatbázisban 3 rendelést tárolunk.

        
    fetch('https://egs.thomasapi.eu/api/orders', {      
        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 rendelés adatainak lekérése Admin tokennel elérhető útvonal

Egy rendelés adatait lehet ID alapon lekérni. Alapértelmezetten az adatbázisban 3 rendelést tárolunk.

        
    fetch('https://egs.thomasapi.eu/api/order/:id', {       // a :id helyett a keresett rendelés id-jét kel beírni!
        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 kellmásolni
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
        
    

Rendelés módosítása Admin tokennel elérhető útvonal

Egy már leadott rendelés módosítását az adminisztrátorok végezhetik el.

Csak a módosított adatot kell elküldeni, a Customerid-t nem szabad módosítani így front-enden ezt a lehetőséget nem kínáljuk föl!

        
    fetch('https://egs.thomasapi.eu/api/order/:id', {       // a :id helyett a keresett rendelés id-jét kel beírni!
        method: "PUT",
        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({
            "CustomerID": 2,
            "OrderStatus": "Pending",
            "SubTotal": 11200,
            "Freight": 2500,
            "DeliveryTypeID": 1,
            "TotalDue": 13700,
            "Comment": "",
            "OrderItems": [
                {
                    "ProductID": 276,
                    "Quantity": 2,
                    "UnitPrice": 5600,
                    "LineTotal": 11200
                }
            ]
        })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Rendelés törlése Admin tokennel elérhető útvonal

Egy már leadott rendelést lehet törölni a megadott ID alapján.

        
    fetch('https://egs.thomasapi.eu/api/order/:id', {       // a :id helyett a keresett rendelés id-jét kel beírni!
        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);
        
    

Az összes felhasználó adatainak lekérése Admin tokennel elérhető útvonal

        
    fetch('https://egs.thomasapi.eu/api/users', {      
        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 felhasználó adatainak lekérése Admin tokennel elérhető útvonal

Egy felhasználó adatait lehet ID alapon lekérni.

        
    fetch('https://egs.thomasapi.eu/api/user/:id', {       // a :id helyett a keresett frlhasználó id-jét kel beírni!
        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 kellmásolni
        },
        mode: "cors"
    })
    .then(res => res.json())
    .then(console.log);
        
    

Egy felhasználó adatainak módosítása Admin tokennel elérhető útvonal

Az adminisztrátor bármelyik felhasználó adatait tudja módosítani.

A jelszó is megváltoztatható a tárolása az új jelszónak is hashelve történik.

        
    fetch('https://egs.thomasapi.eu/api/user/:id', {
        method: "PUT",
        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({
            {
                "UserName": "k.kata42",
                "Password": "Password",
                "IsAdmin": true,
                "AdminRole": "Értékesítő",
                "JobTitle": "Alkalmazott",
                "BirthDate": "1979-06-12",
                "LastName": "Kecskeméti",
                "FirstName": "Kata",
                "EmailAddress": "kata.kecskemeti@gEGS.hu",
                "PhoneNumber": "0630-896-6666",
                "Postcode": "1152",
                "City": "Budapest",
                "Address": "Szent Miklós útja 16/a 4/14",
                "ShippingPostcode": "",
                "ShippingCity": "",
                "ShippingAddress": "",
                "InvoicePostcode": "",
                "InvoicegCity": "",
                "InvoiceAddress": "",
                "ActiveFlag": "0",
                "InvoiceCity": "",
            }
        })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Felhasználó törlése Admin tokennel elérhető útvonal

Egy felhasználót lehet törölni a megadott ID alapján.

        
    fetch('https://egs.thomasapi.eu/api/user/:id', {       // a :id helyett a keresett rendelés id-jét kel beírni!
        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);
        
    

Új termék feltöltése Admin tokennel elérhető útvonal

Egy új termék hozzáadását az adminisztrátorok végezhetik el.

Kötelező egy termékfotó feltöltése!!!

        
    fetch('https://egs.thomasapi.eu/api/newproduct', {
        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({
                "Name": "New Product",
                "Modell": "Stratocaster",
                "Color": "Piros",
                "Quality": "S",
                "BundsNumber": "22",
                "Body": "Nyárfa",
                "Neck": "Kemény Juhar",
                "FretBoard": "Jatoba",
                "Pickup": "H-S-S",
                "Weight": "",
                "ChanelsNumber": "",
                "SpeakersNumber": "",
                "Wattage": "",
                "Widht": "",
                "Lenght": "",
                "Thickness": "",
                "CableLenght": "",
                "ConnectorType": "",
                "Radius": "",
                "CategoryName": "Gitár",
                "SubCategoryName": "Jobbkezes",
                "BrandName": "Cort",
                "Price": 69900,
                "Description": "Termék leírása.",
                "OnSale": true,
                "SalePrice": 59900,
                "InStock": true
            })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Egy termék módosítása Admin tokennel elérhető útvonal

Egy termék módosítását az adminisztrátorok végezhetik el.

Termékfotó modosítása nem kötelező.

        
    fetch('https://egs.thomasapi.eu/api/productupdate/:id', {         // a :id helyett a termék id-jét kel beírni!
        method: "PUT",
        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({
                "Name": "New Product",
                "Modell": "Stratocaster",
                "Color": "Piros",
                "Quality": "S",
                "BundsNumber": "22",
                "Body": "Nyárfa",
                "Neck": "Kemény Juhar",
                "FretBoard": "Jatoba",
                "Pickup": "H-S-S",
                "Weight": "",
                "ChanelsNumber": "",
                "SpeakersNumber": "",
                "Wattage": "",
                "Widht": "",
                "Lenght": "",
                "Thickness": "",
                "CableLenght": "",
                "ConnectorType": "",
                "Radius": "",
                "CategoryName": "Gitár",
                "SubCategoryName": "Jobbkezes",
                "BrandName": "Cort",
                "Price": 69900,
                "Description": "Termék leírása.",
                "OnSale": true,
                "SalePrice": 59900,
                "InStock": false         // ezt módosítottuk
            })
    })
    .then(res => res.json())
    .then(console.log);
        
    

Termék törlése Admin tokennel elérhető útvonal

Egy terméket lehet törölni a megadott ID alapján.

        
    fetch('https://egs.thomasapi.eu/api/product/:id', {       // a :id helyett a törlendő termék id-jét kel beírni!
        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);