Skip to content
This repository was archived by the owner on Feb 10, 2025. It is now read-only.

Repository files navigation

The RetroBox's API

Github Actions

Requirements

  • Php 8.0 or higher
  • MySQL 5 or higher
  • Jobatator to manage queue/jobs
  • Redis or a Redis compatible server like KeyValuer

Install

  • Clone this repo
  • Run composer install
  • Use .env.example to create your own .env
  • Start the api with php -S 127.0.0.1:8000 -t public

Debug setup

Recommended environment variables values:

  • In development: SENTRY_ENABLE=0 because you don't want to float sentry and APP_DEBUG=1 to get the nice pretty whoops guard web interface to debug.
  • In production: 'SENTRY_ENABLE=1' to get log to sentry and APP_DEBUG=0 to hide details of exception, but still if APP_DEBUG is false you will get some kind of details in JSON when the server fail

Working with the database

This project use phinx as a database migration/seed manager.

Migrate the database up to the latest version: vendor/bin/phinx migrate

Run a seed/fixture: vendor/bin/phinx seed:run -s GameSeeder

Working with stripe

To get a webhook event if you are in local, you want to use Stripe CLI

Use: stripe listen --forward-to localhost:8000/stripe/execute --events checkout.session.completed

Description route API

1. Basics

RouteTypeAuthParamsDescription
/GETNoAffiche les infos générales sur l'api : env, version...
/pingGETNoPong !
/newsletter/subscribePOSTNoemailInscrire une adresse mail
/newsletter/eventGETNoVérification si la route existe bien apr Mailchimp
/newsletter/eventPOSTNoRoute appelée par Mailchimp, envoi un webhook Discord.

2. GraphQL

RouteTypeAuthParamsDescription
/graphqlPOSTYes (Bearer)yourBearerToken

To see all schema with all descriptions, you can check here.

This is a schema generated automatically by graphql-markdown (here).

Script command (add to your package.json) :

node./src/index.js--header \"Authorization=Bearer yourToken\" https://api.retrobox.tech/graphql > schema.md

How to get your Bearer Token ?

  1. Be sure that you are well connected with your stail.eu account
  2. Press F12, go to the Console tab
  3. Write this function in the prompt getToken()
  4. Then it will return your unique Bearer token

3. Paiements

RouteTypeAuthParamsDescription
/stripe/executePOSTYestokenitemsshipping_countryshipping_methodAppelée par le front avec un token Stripe
/stripe/createPOSTYestokenitemsshipping_countryshipping_methodCréer la session de paiement
/paypal/get-urlPOSTYesitemsshipping_countryshipping_methodRécuperer l'url fin de paiement
/paypal/executeGETNoitemsshipping_countryshipping_methodAppelée par le front une fois redirigé par Paypal

⚠️ Deprecated :

RouteTypeAuthParamsDescription
/paysafecard/capture_paymentsPOSTNoAppelée par PSC
/paysafecard/successGETNoRedirection de l'utilisateur en cas de paiement réussi
/paysafecard/failureGETNoRedirection de l'utilisateur en cas de d'un échec
/paysafecard/get_urlGETNoRécuperer l'url fin de paiement

4. Accounts Controller

RouteTypeAuthParamsDescription
/infoGETYesRécuperer les infos de l'user connecté actuellement
/loginGETNoAvoir l'url de stail.eu
/registerGETNoAvoir l'url de stail.eu
/login-desktopGETNoLien pour lier l'app desktop
/login-desktopPOSTYestokenAppelée par le front pour lier avec le compte
/executeGET/POSTYescodeExecuter une connexion stail.eu

5. Dashboard Controller

RouteTypeAuthParamsDescription
[/]GETYesRenvoi les infos user, les commandes et les consoles
/uploadPOSTYesfileUpload d'un rom (WIP)
/deleteGETYesSupprimer son compte

6. Shop Controller

RouteTypeAuthParamsDescription
/storage-pricesGETNoAvoir les différents prix d'une console
/shipping-pricesGETNoAvoir les prix des FDP en fonction du poids et du contry code
/{locale}/categoriesGETNoAvoir les catégories en fonction des locales
/{locale}/item/{slug}GETNoAvoir les nom des objets en fonction des locales
/cache/shop/generateGETNoRegenerer le cache du shop

7. Others

RouteTypeAuthParamsDescription
/console/verifyPOSTNoconsole_idconsole_tokenAppelée par la console pour initialiser l'overlay
/downloadsGETNoRenvoyer les liens pour telechager l'app desktop
/docs/{locale}/{slug}GETNo/deprecated\ Retourne le markdown en fonction de la locales
/websocket/connexionsGETis-adminRetourne les différentes connexions ouvertes sur le serveur web-socket
/countries/{locale}GETNoRetourne la liste de tous les pays dans la locale spécifiée
/healthGETNoVoir l'état des connexions avec les services externes (MySQL, Redis, Web-Socket, Jobatator)
/test-send-email-eventGETNoEnvoyer un email de test
/dangerously-truncate-tableGETNoFonctionne seulement dans l'env "test"

About

📜 The RetroBox API

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages