Sigma Casino

OPIS INTERFEJSÓW

Interfejs HTTP

Dokumentacja interfejsu HTTP (API) Sigma Casino została stworzona z wykorzystaniem narzędzia OpenAPI. Można ją przeglądać wczytując plik konfiguracyjny openapi.yaml w narzędziu Swagger Editor.

Interfejs JDBC

Poniższa lista dokumentuje wszelkie kwerendy wywoływane przez aplikację za pomocą JDBC wraz ze ścieżkami, do których przynależą:

  • /account

    SELECT balance FROM users WHERE user_id = ?;
    SELECT * FROM (
        SELECT 'transaction' as operation, transaction_id, date, amount
        FROM deposits_withdrawals WHERE user_id = ?
        UNION SELECT 'horses' as operation, horses_id, date, bet
        FROM horses WHERE user_id = ?
        UNION SELECT 'roulette' as operation, roulette_id, date, bet
        FROM roulette WHERE user_id = ?
    ) ORDER BY date DESC LIMIT 50;
                    
  • /login

    SELECT user_id, username, salt, password_hash FROM users WHERE email = ?;
                    
  • /register

    SELECT user_id FROM users WHERE username = ? OR email = ?;
    INSERT INTO users (username, salt, email, password_hash) VALUES (?, ?, ?, ?);
                    
  • /account/reset_password

    SELECT salt, password_hash FROM users WHERE user_id = ?;
    UPDATE users SET password_hash = ? WHERE user_id = ?;
                    
  • /games/horses

    SELECT * FROM horses WHERE horses_id = ?;
    SELECT balance FROM users WHERE user_id = ?;
    INSERT INTO horses (user_id, date, bet, guess, times, bezier_curves)
    VALUES (?,NOW(),?,?,?,?) RETURNING horses_id;
    UPDATE users SET balance = balance + ? WHERE user_id = ?;
                    
  • /games/roulette

    SELECT * FROM roulette WHERE roulette_id = ?;
    SELECT balance FROM users WHERE user_id = ?;
    INSERT INTO roulette (user_id, date, bet, guess, result)
    VALUES (?,NOW(),?,?,?) RETURNING roulette_id;
    UPDATE users SET balance = balance + ? WHERE user_id = ?;
                    
  • /account/deposit

    INSERT INTO deposits_withdrawals (user_id, stripe_id, date, amount)
    VALUES (?, ?, NOW(), ?);
    UPDATE users SET balance = balance + ? WHERE user_id = ?;
                    
  • /account/withdraw

    INSERT INTO deposits_withdrawals (user_id, stripe_id, date, amount)
    VALUES (?, ?, NOW(), ?);
    UPDATE users SET balance = balance + ? WHERE user_id = ?;
                    

Interfejs płatności Stripe

Interfejs Stripe został zaimplementowany zgodnie z dokumentacją dostępną na stronie Stripe API. Do wykonywania żądań wykorzystano oficjalną bibliotekę Stripe do języka Java. Opis wykorzystywanych funkcjonalności został również uwzględniony w wygenerowanych JavaDocs oraz na diagramach sekwencji UML.