Statistiques

GET /api/stats/(user_name)/by_time

Obtenir des statistiques sur les séances d’entraînement pour un utilisateur par période de temps. Seul l’utilisateur authentifié peut accéder à ses statistiques.

Scope : workouts:read

Exemple de requêtes :

  • sans paramètres :

GET /api/stats/admin/by_time HTTP/1.1
  • avec des paramètres :

GET /api/stats/admin/by_time?from=2018-01-01&to=2018-06-30&time=week
  HTTP/1.1

Exemple de réponses :

  • succès pour les totaux :

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": {
    "statistics": {
      "2017": {
        "3": {
          "total_workouts": 2,
          "total_ascent": 203.0,
          "total_ascent": 156.0,
          "total_distance": 15.282,
          "total_duration": 12341
        }
      },
      "2019": {
        "1": {
          "total_workouts": 3,
          "total_ascent": 150.0,
          "total_ascent": 178.0,
          "total_distance": 47,
          "total_duration": 9960
        },
        "2": {
          "total_workouts": 1,
          "total_ascent": 46.0,
          "total_ascent": 78.0,
          "total_distance": 5.613,
          "total_duration": 1267
        }
      }
    }
  },
  "status": "success"
}
  • succès pour les moyennes :

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": {
    "statistics": {
      "2017": {
        "3": {
          "average_ascent": 101.5,
          "average_ascent": 78.0,
          "average_distance": 15.282,
          "average_duration": 7641,
          "average_speed": 4.48,
          "total_workouts": 2
        }
      },
      "2019": {
        "1": {
          "average_ascent": 50.0,
          "average_descent": 59.33,
          "average_distance": 15.67,
          "average_duration": 3320,
          "average_speed": 16.99,
          "total_workouts": 3
        },
        "2": {
          "average_ascent": 46.0,
          "average_descent": 78.0,
          "average_distance": 5.613,
          "average_duration": 1267,
          "average_speed": 15.95,
          "total_workouts": 1
        }
      }
    }
  },
  "status": "success"
}
  • pas de séances :

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": {
      "statistics": {}
  },
  "status": "success"
}
Paramètres:
  • user_name (integer) – nom d’utilisateur

Paramètres de requête:
  • from (string) – date de début (format : %Y-%m-%d)

  • to (string) – date de fin (format : %Y-%m-%d)

  • time (string) – période de temps : - week : semaine commençant le dimanche - weekm : semaine commençant le lundi - month : mois - year : année (default)

  • type (string) – type de statistiques : - total: calcul des totaux - average: calcul des moyennes

En-têtes de requête:
Codes d’état:
GET /api/stats/(user_name)/by_sport

Obtenir des statistiques sur les séances d’entraînement pour un utilisateur par sport. Seul l’utilisateur authentifié peut accéder à ses statistiques.

Scope : workouts:read

Exemple de requêtes :

  • sans paramètres (obtenir les statistiques pour tous les sports ayant des séances) :

GET /api/stats/admin/by_sport HTTP/1.1
  • avec l’identifiant du sport :

GET /api/stats/admin/by_sport?sport_id=1 HTTP/1.1

Exemple de réponses :

  • succès pour tous les sports :

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": {
    "statistics": {
      "1": {
        "average_ascent": 50.0,
        "average_descent": 59.33,
        "average_distance": 15.67,
        "average_duration": 3320,
        "average_speed": 16.99,
        "total_workouts": 3,
        "total_ascent": 150.0,
        "total_ascent": 178.0,
        "total_distance": 47,
        "total_duration": 9960
      },
      "2": {
        "average_ascent": 46.0,
        "average_descent": 78.0,
        "average_distance": 5.613,
        "average_duration": 1267,
        "average_speed": 15.95,
        "total_workouts": 1,
        "total_ascent": 46.0,
        "total_ascent": 78.0,
        "total_distance": 5.613,
        "total_duration": 1267
      },
      "3": {
        "average_ascent": 101.5,
        "average_ascent": 78.0,
        "average_distance": 15.282,
        "average_duration": 7641,
        "average_speed": 4.48,
        "total_workouts": 2,
        "total_ascent": 203.0,
        "total_ascent": 156.0,
        "total_distance": 15.282,
        "total_duration": 12341
      }
    }
  },
  "status": "success"
}
  • succès pour un sport donné :

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": {
    "statistics": {
      "2": {
        "average_ascent": 46.0,
        "average_descent": 78.0,
        "average_distance": 5.613,
        "average_duration": 1267,
        "average_speed": 15.95,
        "total_workouts": 1,
        "total_ascent": 46.0,
        "total_ascent": 78.0,
        "total_distance": 5.613,
        "total_duration": 1267
      }
    }
  },
  "status": "success"
}
  • pas de séances :

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": {
      "statistics": {}
  },
  "status": "success"
}
Paramètres:
  • user_name (integer) – nom d’utilisateur

Paramètres de requête:
  • sport_id (integer) – identifiant du sport (non obligatoire). Si non fourni, les statistiques sont retournées pour tous les sports.

En-têtes de requête:
Codes d’état:
GET /api/stats/all

Obtenir toutes les statistiques de l’application.

Scope : workouts:read

Exemple de requêtes :

GET /api/stats/all HTTP/1.1

Exemple de réponses :

HTTP/1.1 200 OK
Content-Type: application/json

{
  "data": {
    "sports": 3,
    "uploads_dir_size": 1000,
    "users": 2,
    "workouts": 3,
  },
  "status": "success"
}
En-têtes de requête:
Codes d’état:
  • 200 OKsuccess

  • 401 Unauthorized

    • provide a valid auth token

    • signature expired, please log in again

    • invalid token, please log in again

  • 403 Forbiddenyou do not have permissions