<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Statistics — FitTrackee 0.4.9 documentation</title> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" /> <link rel="stylesheet" type="text/css" href="../_static/custom.css" /> <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> <script src="../_static/jquery.js"></script> <script src="../_static/underscore.js"></script> <script src="../_static/doctools.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="Users" href="users.html" /> <link rel="prev" title="Sports" href="sports.html" /> <meta charset='utf-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'> <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'> <meta name="apple-mobile-web-app-capable" content="yes"> <script type="text/javascript" src="../_static/js/jquery-1.12.4.min.js "></script> <script type="text/javascript" src="../_static/js/jquery-fix.js "></script> <script type="text/javascript" src="../_static/bootstrap-3.4.1/js/bootstrap.min.js "></script> <script type="text/javascript" src="../_static/bootstrap-sphinx.js "></script> </head><body> <div id="navbar" class="navbar navbar-default navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <!-- .btn-navbar is used as the toggle for collapsed navbar content --> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="../index.html"> FitTrackee</a> <span class="navbar-text navbar-version pull-left"><b>0.4.9 </b></span> </div> <div class="collapse navbar-collapse nav-collapse"> <ul class="nav navbar-nav"> <li><a href="https://github.com/SamR1/FitTrackee">GitHub</a></li> <li class="dropdown globaltoc-container"> <a role="button" id="dLabelGlobalToc" data-toggle="dropdown" data-target="#" href="../index.html">Docs <b class="caret"></b></a> <ul class="dropdown-menu globaltoc" role="menu" aria-labelledby="dLabelGlobalToc"><ul class="current"> <li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li> <li class="toctree-l1 current"><a class="reference internal" href="index.html">API documentation</a></li> <li class="toctree-l1"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a></li> <li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li> </ul> </ul> </li> <li class="dropdown"> <a role="button" id="dLabelLocalToc" data-toggle="dropdown" data-target="#" href="#">Page <b class="caret"></b></a> <ul class="dropdown-menu localtoc" role="menu" aria-labelledby="dLabelLocalToc"><ul> <li><a class="reference internal" href="#">Statistics</a></li> </ul> </ul> </li> <li> <a href="sports.html" title="Previous Chapter: Sports"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Sports</span> </a> </li> <li> <a href="users.html" title="Next Chapter: Users"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Users »</span> </a> </li> <li class="hidden-sm"> <div id="sourcelink"> <a href="../_sources/api/stats.rst.txt" rel="nofollow">Source</a> </div></li> </ul> <form class="navbar-form navbar-right" action="../search.html" method="get"> <div class="form-group"> <input type="text" name="q" class="form-control" placeholder="Search" /> </div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> </div> <div class="container"> <div class="row"> <div class="body col-md-12 content" role="main"> <div class="section" id="statistics"> <h1>Statistics<a class="headerlink" href="#statistics" title="Permalink to this headline">¶</a></h1> <dl class="http get"> <dt id="get--api-stats-(user_name)-by_time"> <code class="sig-name descname"><span class="pre">GET</span> </code><code class="sig-name descname"><span class="pre">/api/stats/</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="pre">user_name</span></em><span class="sig-paren">)</span><code class="sig-name descname"><span class="pre">/by_time</span></code><a class="headerlink" href="#get--api-stats-(user_name)-by_time" title="Permalink to this definition">¶</a></dt> <dd><p>Get workouts statistics for a user by time</p> <p><strong>Example requests</strong>:</p> <ul class="simple"> <li><p>without parameters</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/stats/admin/by_time</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> </pre></div> </div> <ul class="simple"> <li><p>with parameters</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/stats/admin/by_time?from=2018-01-01&to=2018-06-30&time=week</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> </pre></div> </div> <p><strong>Example responses</strong>:</p> <ul class="simple"> <li><p>success</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"data"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"statistics"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"2017"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"3"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"nb_workouts"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">203.0</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">156.0</span><span class="p">,</span> <span class="nt">"total_distance"</span><span class="p">:</span> <span class="mf">15.282</span><span class="p">,</span> <span class="nt">"total_duration"</span><span class="p">:</span> <span class="mi">12341</span> <span class="p">}</span> <span class="p">},</span> <span class="nt">"2019"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"1"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"nb_workouts"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">150.0</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">178.0</span><span class="p">,</span> <span class="nt">"total_distance"</span><span class="p">:</span> <span class="mi">47</span><span class="p">,</span> <span class="nt">"total_duration"</span><span class="p">:</span> <span class="mi">9960</span> <span class="p">},</span> <span class="nt">"2"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"nb_workouts"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">46.0</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">78.0</span><span class="p">,</span> <span class="nt">"total_distance"</span><span class="p">:</span> <span class="mf">5.613</span><span class="p">,</span> <span class="nt">"total_duration"</span><span class="p">:</span> <span class="mi">1267</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="p">},</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <ul class="simple"> <li><p>no workouts</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"data"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"statistics"</span><span class="p">:</span> <span class="p">{}</span> <span class="p">},</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Parameters</dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>auth_user_id</strong> (<em>integer</em>) – authenticate user id (from JSON Web Token)</p></li> <li><p><strong>user_name</strong> (<em>integer</em>) – user name</p></li> </ul> </dd> <dt class="field-even">Query Parameters</dt> <dd class="field-even"><ul class="simple"> <li><p><strong>from</strong> (<em>string</em>) – start date (format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span></code>)</p></li> <li><p><strong>to</strong> (<em>string</em>) – end date (format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span></code>)</p></li> <li><p><strong>time</strong> (<em>string</em>) – <p>time frame:</p> <ul> <li><p><code class="docutils literal notranslate"><span class="pre">week</span></code>: week starting Sunday</p></li> <li><p><code class="docutils literal notranslate"><span class="pre">weekm</span></code>: week starting Monday</p></li> <li><p><code class="docutils literal notranslate"><span class="pre">month</span></code>: month</p></li> <li><p><code class="docutils literal notranslate"><span class="pre">year</span></code>: year (default)</p></li> </ul> </p></li> </ul> </dd> <dt class="field-odd">Request Headers</dt> <dd class="field-odd"><ul class="simple"> <li><p><a class="reference external" href="https://tools.ietf.org/html/rfc7235#section-4.2">Authorization</a> – OAuth 2.0 Bearer Token</p></li> </ul> </dd> <dt class="field-even">Status Codes</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – success</p></li> <li><p><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a> – <ul> <li><p>Provide a valid auth token.</p></li> <li><p>Signature expired. Please log in again.</p></li> <li><p>Invalid token. Please log in again.</p></li> </ul> </p></li> <li><p><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – <ul> <li><p>User does not exist.</p></li> </ul> </p></li> </ul> </dd> </dl> </dd></dl> <dl class="http get"> <dt id="get--api-stats-(user_name)-by_sport"> <code class="sig-name descname"><span class="pre">GET</span> </code><code class="sig-name descname"><span class="pre">/api/stats/</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="pre">user_name</span></em><span class="sig-paren">)</span><code class="sig-name descname"><span class="pre">/by_sport</span></code><a class="headerlink" href="#get--api-stats-(user_name)-by_sport" title="Permalink to this definition">¶</a></dt> <dd><p>Get workouts statistics for a user by sport</p> <p><strong>Example requests</strong>:</p> <ul class="simple"> <li><p>without parameters (get stats for all sports with workouts)</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/stats/admin/by_sport</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> </pre></div> </div> <ul class="simple"> <li><p>with sport id</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/stats/admin/by_sport?sport_id=1</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> </pre></div> </div> <p><strong>Example responses</strong>:</p> <ul class="simple"> <li><p>success</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"data"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"statistics"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"1"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"nb_workouts"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">150.0</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">178.0</span><span class="p">,</span> <span class="nt">"total_distance"</span><span class="p">:</span> <span class="mi">47</span><span class="p">,</span> <span class="nt">"total_duration"</span><span class="p">:</span> <span class="mi">9960</span> <span class="p">},</span> <span class="nt">"2"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"nb_workouts"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">46.0</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">78.0</span><span class="p">,</span> <span class="nt">"total_distance"</span><span class="p">:</span> <span class="mf">5.613</span><span class="p">,</span> <span class="nt">"total_duration"</span><span class="p">:</span> <span class="mi">1267</span> <span class="p">},</span> <span class="nt">"3"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"nb_workouts"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">203.0</span><span class="p">,</span> <span class="nt">"total_ascent"</span><span class="p">:</span> <span class="mf">156.0</span><span class="p">,</span> <span class="nt">"total_distance"</span><span class="p">:</span> <span class="mf">15.282</span><span class="p">,</span> <span class="nt">"total_duration"</span><span class="p">:</span> <span class="mi">12341</span> <span class="p">}</span> <span class="p">}</span> <span class="p">},</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <ul class="simple"> <li><p>no workouts</p></li> </ul> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"data"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"statistics"</span><span class="p">:</span> <span class="p">{}</span> <span class="p">},</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Parameters</dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>auth_user_id</strong> (<em>integer</em>) – authenticate user id (from JSON Web Token)</p></li> <li><p><strong>user_name</strong> (<em>integer</em>) – user name</p></li> </ul> </dd> <dt class="field-even">Query Parameters</dt> <dd class="field-even"><ul class="simple"> <li><p><strong>sport_id</strong> (<em>integer</em>) – sport id</p></li> </ul> </dd> <dt class="field-odd">Request Headers</dt> <dd class="field-odd"><ul class="simple"> <li><p><a class="reference external" href="https://tools.ietf.org/html/rfc7235#section-4.2">Authorization</a> – OAuth 2.0 Bearer Token</p></li> </ul> </dd> <dt class="field-even">Status Codes</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – success</p></li> <li><p><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a> – <ul> <li><p>Provide a valid auth token.</p></li> <li><p>Signature expired. Please log in again.</p></li> <li><p>Invalid token. Please log in again.</p></li> </ul> </p></li> <li><p><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a> – <ul> <li><p>User does not exist.</p></li> <li><p>Sport does not exist.</p></li> </ul> </p></li> </ul> </dd> </dl> </dd></dl> <dl class="http get"> <dt id="get--api-stats-all"> <code class="sig-name descname"><span class="pre">GET</span> </code><code class="sig-name descname"><span class="pre">/api/stats/all</span></code><a class="headerlink" href="#get--api-stats-all" title="Permalink to this definition">¶</a></dt> <dd><p>Get all application statistics</p> <p><strong>Example requests</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/stats/all</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> </pre></div> </div> <p><strong>Example responses</strong>:</p> <div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> <span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span> <span class="p">{</span> <span class="nt">"data"</span><span class="p">:</span> <span class="p">{</span> <span class="nt">"sports"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nt">"uploads_dir_size"</span><span class="p">:</span> <span class="mi">1000</span><span class="p">,</span> <span class="nt">"users"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nt">"workouts"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="p">},</span> <span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span> <span class="p">}</span> </pre></div> </div> <dl class="field-list simple"> <dt class="field-odd">Parameters</dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>auth_user_id</strong> (<em>integer</em>) – authenticate user id (from JSON Web Token)</p></li> </ul> </dd> <dt class="field-even">Request Headers</dt> <dd class="field-even"><ul class="simple"> <li><p><a class="reference external" href="https://tools.ietf.org/html/rfc7235#section-4.2">Authorization</a> – OAuth 2.0 Bearer Token</p></li> </ul> </dd> <dt class="field-odd">Status Codes</dt> <dd class="field-odd"><ul class="simple"> <li><p><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – success</p></li> <li><p><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a> – <ul> <li><p>Provide a valid auth token.</p></li> <li><p>Signature expired. Please log in again.</p></li> <li><p>Invalid token. Please log in again.</p></li> </ul> </p></li> <li><p><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a> – You do not have permissions.</p></li> </ul> </dd> </dl> </dd></dl> </div> </div> </div> </div> <footer class="footer"> <div class="container"> <p class="pull-right"> <a href="#">Back to top</a> </p> <p> © Copyright 2018 - 2021, SamR1.<br/> Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.5.4.<br/> </p> </div> </footer> </body> </html>