Docs - add 'fr' translation + fixes

This commit is contained in:
Sam 2023-06-18 20:45:39 +02:00
parent bf1e12f35d
commit 4491b8f8de
69 changed files with 3783 additions and 3385 deletions

View File

@ -1013,7 +1013,7 @@ In this release 7 issues were closed.
- Cycling (Sport)
- Cycling (Transport)
- Hiking
- Montain Biking
- Mountain Biking
- Running
- Walking
- Activity creation by uploading a gpx file. An activity can even be created without gpx (the user must enter date, time, duration and distance)

View File

@ -150,13 +150,13 @@ html-all:
$(MAKE) html LANGUAGE=$$language ; \
done
html-update:
html-update-po:
$(SPHINXINTL) update -p "$(GETTEXT)" -d "$(LOCALES_DIRS)" -l $(LANGUAGE)
html-update-all:
html-update-po-all:
for language in en fr ; do \
echo -e "\r\nUpdating .po files for '$$language'...\r\n" ; \
$(MAKE) html-update LANGUAGE=$$language ; \
$(MAKE) html-update-po LANGUAGE=$$language ; \
done
install-db:

View File

@ -1013,7 +1013,7 @@ In this release 7 issues were closed.
- Cycling (Sport)
- Cycling (Transport)
- Hiking
- Montain Biking
- Mountain Biking
- Running
- Walking
- Activity creation by uploading a gpx file. An activity can even be created without gpx (the user must enter date, time, duration and distance)

View File

@ -244,7 +244,7 @@ to activate it.</p>
</div>
<p><strong>Example responses</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -255,7 +255,7 @@ to activate it.</p>
</pre></div>
</div>
<ul class="simple">
<li><p>error on registration</p></li>
<li><p>error on registration:</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">400</span> <span class="ne">BAD REQUEST</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -279,26 +279,20 @@ fallback to en (english))</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>sorry, that username is already taken</p></li>
<li><dl class="simple">
<dt>Errors:</dt><dd><ul>
<li><p>username: 3 to 30 characters required</p></li>
<li><p>username:
only alphanumeric characters and the underscore
character “_” allowed</p></li>
<li><p>email: valid email must be provided</p></li>
<li><p>password: 8 characters required</p></li>
</ul>
</dd>
</dl>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">sorry,</span> <span class="pre">that</span> <span class="pre">username</span> <span class="pre">is</span> <span class="pre">already</span> <span class="pre">taken</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">sorry,</span> <span class="pre">you</span> <span class="pre">must</span> <span class="pre">agree</span> <span class="pre">privacy</span> <span class="pre">policy</span> <span class="pre">to</span> <span class="pre">register</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">username:</span> <span class="pre">3</span> <span class="pre">to</span> <span class="pre">30</span> <span class="pre">characters</span> <span class="pre">required</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">username:</span> <span class="pre">only</span> <span class="pre">alphanumeric</span> <span class="pre">characters</span> <span class="pre">and</span> <span class="pre">the</span> <span class="pre">underscore</span>
<span class="pre">character</span> <span class="pre">&quot;_&quot;</span> <span class="pre">allowed</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">email:</span> <span class="pre">valid</span> <span class="pre">email</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">provided</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">password:</span> <span class="pre">8</span> <span class="pre">characters</span> <span class="pre">required</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> error, registration is disabled</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">registration</span> <span class="pre">is</span> <span class="pre">disabled</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -332,9 +326,9 @@ character “_” allowed</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> account confirmation successful</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">account</span> <span class="pre">confirmation</span> <span class="pre">successful</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -368,10 +362,10 @@ character “_” allowed</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> confirmation email resent</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> the requested URL was not found on the server</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">confirmation</span> <span class="pre">email</span> <span class="pre">resent</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">the</span> <span class="pre">requested</span> <span class="pre">URL</span> <span class="pre">was</span> <span class="pre">not</span> <span class="pre">found</span> <span class="pre">on</span> <span class="pre">the</span> <span class="pre">server</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -389,7 +383,7 @@ character “_” allowed</p></li>
</div>
<p><strong>Example responses</strong>:</p>
<ul class="simple">
<li><p>successful login</p></li>
<li><p>successful login:</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>
@ -422,10 +416,10 @@ character “_” allowed</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> successfully logged in</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> invalid credentials</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">successfully</span> <span class="pre">logged</span> <span class="pre">in</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">credentials</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -538,11 +532,11 @@ character “_” allowed</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success.</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -667,18 +661,15 @@ character “_” allowed</p></li>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> user profile updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">profile</span> <span class="pre">updated</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -817,19 +808,19 @@ character “_” allowed</p></li>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> user preferences updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">preferences</span> <span class="pre">updated</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>password: password and password confirmation dont match</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">password:</span> <span class="pre">password</span> <span class="pre">and</span> <span class="pre">password</span> <span class="pre">confirmation</span> <span class="pre">don't</span> <span class="pre">match</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -877,23 +868,20 @@ character “_” allowed</p></li>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> user preferences updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">sport</span> <span class="pre">preferences</span> <span class="pre">updated</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>invalid hexadecimal color</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">hexadecimal</span> <span class="pre">color</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>sport does not exist</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">sport</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -929,16 +917,13 @@ character “_” allowed</p></li>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> user preferences deleted</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>sport does not exist</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">sport</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -977,22 +962,22 @@ character “_” allowed</p></li>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> user picture updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">picture</span> <span class="pre">updated</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>no file part</p></li>
<li><p>no selected file</p></li>
<li><p>file extension not allowed</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">file</span> <span class="pre">part</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">selected</span> <span class="pre">file</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">extension</span> <span class="pre">not</span> <span class="pre">allowed</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">413 Request Entity Too Large</a></span> error during picture update: file size exceeds 1.0MB</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error during picture update</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">413 Request Entity Too Large</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">during</span> <span class="pre">picture</span> <span class="pre">update:</span> <span class="pre">file</span> <span class="pre">size</span> <span class="pre">exceeds</span> <span class="pre">1.0MB</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">during</span> <span class="pre">picture</span> <span class="pre">update</span></code></p></li>
</ul>
</dd>
</dl>
@ -1023,12 +1008,12 @@ character “_” allowed</p></li>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> picture deleted</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error during picture deletion</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">during</span> <span class="pre">picture</span> <span class="pre">deletion</span></code></p></li>
</ul>
</dd>
</dl>
@ -1062,9 +1047,9 @@ character “_” allowed</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> password reset request processed</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> the requested URL was not found on the server</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">password</span> <span class="pre">reset</span> <span class="pre">request</span> <span class="pre">processed</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">the</span> <span class="pre">requested</span> <span class="pre">URL</span> <span class="pre">was</span> <span class="pre">not</span> <span class="pre">found</span> <span class="pre">on</span> <span class="pre">the</span> <span class="pre">server</span></code></p></li>
</ul>
</dd>
</dl>
@ -1195,23 +1180,23 @@ character “_” allowed</p></li>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> user account updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">account</span> <span class="pre">updated</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>email is missing</p></li>
<li><p>current password is missing</p></li>
<li><p>email: valid email must be provided</p></li>
<li><p>password: 8 characters required</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">email</span> <span class="pre">is</span> <span class="pre">missing</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">current</span> <span class="pre">password</span> <span class="pre">is</span> <span class="pre">missing</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">email:</span> <span class="pre">valid</span> <span class="pre">email</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">provided</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">password:</span> <span class="pre">8</span> <span class="pre">characters</span> <span class="pre">required</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p>invalid credentials</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">credentials</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1246,10 +1231,10 @@ character “_” allowed</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> password updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> invalid token, please request a new token</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">password</span> <span class="pre">updated</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">request</span> <span class="pre">a</span> <span class="pre">new</span> <span class="pre">token</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1282,9 +1267,9 @@ character “_” allowed</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> email updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">email</span> <span class="pre">updated</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1302,7 +1287,7 @@ If a valid token is provided, it will be blacklisted.</p>
</div>
<p><strong>Example responses</strong>:</p>
<ul class="simple">
<li><p>successful logout</p></li>
<li><p>successful logout:</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>
@ -1314,7 +1299,7 @@ If a valid token is provided, it will be blacklisted.</p>
</pre></div>
</div>
<ul class="simple">
<li><p>error on logout</p></li>
<li><p>error on logout:</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">401</span> <span class="ne">UNAUTHORIZED</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -1333,17 +1318,14 @@ If a valid token is provided, it will be blacklisted.</p>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> successfully logged out</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">successfully</span> <span class="pre">logged</span> <span class="pre">out</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <ul>
<li><p>provide a valid auth token</p></li>
<li><p>The access token provided is expired, revoked, malformed, or invalid
for other reasons.</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <ul>
<li><p>error on token blacklist</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">The</span> <span class="pre">access</span> <span class="pre">token</span> <span class="pre">provided</span> <span class="pre">is</span> <span class="pre">expired,</span> <span class="pre">revoked,</span> <span class="pre">malformed,</span> <span class="pre">or</span> <span class="pre">invalid</span>
<span class="pre">for</span> <span class="pre">other</span> <span class="pre">reasons.</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">on</span> <span class="pre">token</span> <span class="pre">blacklist</span></code></p></li>
</ul>
</dd>
</dl>
@ -1380,18 +1362,15 @@ for other reasons.</p></li>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> internal server error</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1414,7 +1393,7 @@ for other reasons.</p></li>
</div>
<p><strong>Example response</strong>:</p>
<ul class="simple">
<li><p>if a request exists</p></li>
<li><p>if a request exists:</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>
@ -1431,7 +1410,7 @@ for other reasons.</p></li>
</pre></div>
</div>
<ul class="simple">
<li><p>if no request</p></li>
<li><p>if no request:</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>
@ -1450,11 +1429,11 @@ for other reasons.</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -1494,19 +1473,19 @@ for other reasons.</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>ongoing request exists</p></li>
<li><p>completed request already exists</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ongoing</span> <span class="pre">request</span> <span class="pre">exists</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">completed</span> <span class="pre">request</span> <span class="pre">already</span> <span class="pre">exists</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> internal server error</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1539,14 +1518,14 @@ for other reasons.</p></li>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> file not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>

View File

@ -267,8 +267,8 @@
<dl class="field-list simple">
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error on getting configuration</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">on</span> <span class="pre">getting</span> <span class="pre">configuration</span></code></p></li>
</ul>
</dd>
</dl>
@ -329,17 +329,17 @@
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p>valid email must be provided for admin contact</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">valid</span> <span class="pre">email</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">provided</span> <span class="pre">for</span> <span class="pre">admin</span> <span class="pre">contact</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error when updating configuration</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">when</span> <span class="pre">updating</span> <span class="pre">configuration</span></code></p></li>
</ul>
</dd>
</dl>
@ -367,7 +367,7 @@
<dl class="field-list simple">
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
</ul>
</dd>
</dl>

View File

@ -240,14 +240,14 @@
application).</p>
<p><strong>Example request</strong>:</p>
<ul class="simple">
<li><p>without parameters</p></li>
<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/oauth/apps</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<ul class="simple">
<li><p>with page parameter</p></li>
<li><p>with page parameter:</p></li>
</ul>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/oauth/apps?page=2</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -298,11 +298,11 @@ application).</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -352,7 +352,7 @@ application).</p>
<li><p><strong>client_uri</strong> (<em>string</em>) client URL</p></li>
<li><p><strong>redirect_uri</strong> (<em>array</em>) list of client redirect URLs (string)</p></li>
<li><p><strong>scope</strong> (<em>string</em>) client scopes</p></li>
<li><p><strong>client_description</strong> (<em>string</em>) client description (<cite>OPTIONAL</cite>)</p></li>
<li><p><strong>client_description</strong> (<em>string</em>) client description (<code class="docutils literal notranslate"><span class="pre">OPTIONAL</span></code>)</p></li>
</ul>
</dd>
<dt class="field-even">Request Headers<span class="colon">:</span></dt>
@ -362,15 +362,12 @@ application).</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -391,7 +388,7 @@ application).</p>
</div>
<p><strong>Example responses</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -416,7 +413,7 @@ application).</p>
</pre></div>
</div>
<ul class="simple">
<li><p>not found</p></li>
<li><p>not found:</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">404</span> <span class="ne">NOT FOUND</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -440,14 +437,14 @@ application).</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> OAuth2 client not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">OAuth2</span> <span class="pre">client</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -466,7 +463,7 @@ application).</p>
</div>
<p><strong>Example responses</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -491,7 +488,7 @@ application).</p>
</pre></div>
</div>
<ul class="simple">
<li><p>not found</p></li>
<li><p>not found:</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">404</span> <span class="ne">NOT FOUND</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -515,14 +512,14 @@ application).</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> OAuth2 client not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">OAuth2</span> <span class="pre">client</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -559,12 +556,12 @@ application).</p>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> OAuth2 client deleted</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> OAuth2 client not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">OAuth2</span> <span class="pre">client</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -603,14 +600,14 @@ application).</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> OAuth2 client not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">OAuth2</span> <span class="pre">client</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -662,16 +659,16 @@ provided)</p></li>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p>errors returned by Authlib library</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -720,15 +717,12 @@ are supported by FitTrackee)</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>errors returned by Authlib library</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> errors returned by Authlib library</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -762,15 +756,12 @@ are supported by FitTrackee)</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>errors returned by Authlib library</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> errors returned by Authlib library</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>

View File

@ -334,11 +334,11 @@
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>

View File

@ -243,7 +243,7 @@
</div>
<p><strong>Example response</strong>:</p>
<ul class="simple">
<li><p>for non admin user :</p></li>
<li><p>for non admin user:</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>
@ -306,7 +306,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>for admin user :</p></li>
<li><p>for admin user:</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>
@ -382,11 +382,11 @@
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -406,7 +406,7 @@
</div>
<p><strong>Example response</strong>:</p>
<ul class="simple">
<li><p>success for non admin user :</p></li>
<li><p>success for non admin user:</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>
@ -429,7 +429,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>success for admin user :</p></li>
<li><p>success for admin user:</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>
@ -453,7 +453,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>sport not found</p></li>
<li><p>sport not found:</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">404</span> <span class="ne">NOT FOUND</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -479,14 +479,14 @@
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> sport not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">sport</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -505,7 +505,7 @@
</div>
<p><strong>Example responses</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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>
@ -529,7 +529,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>sport not found</p></li>
<li><p>sport not found:</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">404</span> <span class="ne">NOT FOUND</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -561,16 +561,16 @@
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> sport updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> sport not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">sport</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>

View File

@ -238,13 +238,13 @@
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example requests</strong>:</p>
<ul class="simple">
<li><p>without parameters</p></li>
<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>
<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&amp;to=2018-06-30&amp;time=week</span>
<span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
@ -252,7 +252,7 @@
</div>
<p><strong>Example responses</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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>
@ -295,7 +295,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>no workouts</p></li>
<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>
@ -335,17 +335,14 @@
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
</ul>
</dd>
</dl>
@ -358,20 +355,20 @@
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example requests</strong>:</p>
<ul class="simple">
<li><p>without parameters (get stats for all sports with workouts)</p></li>
<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>
<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>
<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>
@ -410,7 +407,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>no workouts</p></li>
<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>
@ -441,16 +438,16 @@
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
<li><p>sport does not exist</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">sport</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
</ul>
</p></li>
</ul>
@ -490,14 +487,14 @@
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
</ul>
</dd>
</dl>

View File

@ -240,14 +240,14 @@ has admin rights.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">users:read</span></code></p>
<p><strong>Example request</strong>:</p>
<ul class="simple">
<li><p>without parameters</p></li>
<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/users</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<ul class="simple">
<li><p>with some query parameters</p></li>
<li><p>with some query parameters:</p></li>
</ul>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/users?order_by=workouts_count&amp;par_page=5</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -379,11 +379,11 @@ has admin rights.</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -499,15 +499,15 @@ details.</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
</ul>
</p></li>
</ul>
@ -537,10 +537,10 @@ details.</p>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
<li><p>No picture.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">No</span> <span class="pre">picture.</span></code></p></li>
</ul>
</p></li>
</ul>
@ -670,25 +670,22 @@ if sending enabled)</p></li>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>valid email must be provided</p></li>
<li><p>new email must be different than curent email</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">valid</span> <span class="pre">email</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">provided</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">new</span> <span class="pre">email</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">different</span> <span class="pre">than</span> <span class="pre">curent</span> <span class="pre">email</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -727,21 +724,18 @@ one admin.</p>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> user account deleted</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <ul>
<li><p>you do not have permissions</p></li>
<li><p>you can not delete your account, no other user has admin rights</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">can</span> <span class="pre">not</span> <span class="pre">delete</span> <span class="pre">your</span> <span class="pre">account,</span> <span class="pre">no</span> <span class="pre">other</span> <span class="pre">user</span> <span class="pre">has</span> <span class="pre">admin</span> <span class="pre">rights</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>

View File

@ -238,20 +238,20 @@
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example requests</strong>:</p>
<ul class="simple">
<li><p>without parameters</p></li>
<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/workouts/</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 some query parameters</p></li>
<li><p>with some query parameters:</p></li>
</ul>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts?from=2019-07-02&amp;to=2019-07-31&amp;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>returning at least one workout</p></li>
<li><p>returning at least one workout:</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>
@ -361,6 +361,8 @@
<li><p><strong>per_page</strong> (<em>integer</em>) number of workouts per page
(default: 5, max: 100)</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) sport id</p></li>
<li><p><strong>title</strong> (<em>string</em>) any part (or all) of the workout title;
title matching is case-insensitive</p></li>
<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>distance_from</strong> (<em>float</em>) minimal distance</p></li>
@ -377,25 +379,21 @@
<code class="docutils literal notranslate"><span class="pre">workout_date</span></code>)</p></li>
</ul>
</dd>
<dt class="field-even">Quert string title<span class="colon">:</span></dt>
<dd class="field-even"><p>any part (or all) of the workout title;
title matching is case-insensitive</p>
</dd>
<dt class="field-odd">Request Headers<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<dt class="field-even">Request Headers<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -412,7 +410,7 @@ title matching is case-insensitive</p>
</div>
<p><strong>Example responses</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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>
@ -482,15 +480,15 @@ title matching is case-insensitive</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -532,19 +530,19 @@ title matching is case-insensitive</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>workout not found</p></li>
<li><p>no gpx file for this workout</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">this</span> <span class="pre">workout</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -605,19 +603,19 @@ title matching is case-insensitive</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>workout not found</p></li>
<li><p>no gpx file for this workout</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">this</span> <span class="pre">workout</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -626,7 +624,7 @@ title matching is case-insensitive</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">workout_short_id</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/chart_data/segment/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">int:</span> </em><em class="sig-param"><span class="pre">segment_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)" title="Permalink to this definition">#</a></dt>
<dd><p>Get chart data from a workout gpx file, to display it with Recharts</p>
<dd><p>Get chart data from a workout gpx file, to display it with Chart.js.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/kjxavSTUrJvoAh2wvCeGEF/chart/segment/0</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
@ -679,16 +677,16 @@ title matching is case-insensitive</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> no gpx file for this workout</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">this</span> <span class="pre">workout</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -731,16 +729,16 @@ title matching is case-insensitive</p>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> no gpx file for this workout</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">this</span> <span class="pre">workout</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -768,15 +766,15 @@ title matching is case-insensitive</p>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> map does not exist</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">map</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -830,16 +828,16 @@ title matching is case-insensitive</p>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>workout not found</p></li>
<li><p>no gpx file for workout</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">workout</span></code></p></li>
</ul>
</p></li>
</ul>
@ -953,20 +951,20 @@ Double quotes in notes must be escaped.</p></li>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a></span> workout created</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>no file part</p></li>
<li><p>no selected file</p></li>
<li><p>file extension not allowed</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">file</span> <span class="pre">part</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">selected</span> <span class="pre">file</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">extension</span> <span class="pre">not</span> <span class="pre">allowed</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">413 Request Entity Too Large</a></span> error during picture update: file size exceeds 1.0MB</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">413 Request Entity Too Large</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">during</span> <span class="pre">picture</span> <span class="pre">update:</span> <span class="pre">file</span> <span class="pre">size</span> <span class="pre">exceeds</span> <span class="pre">1.0MB</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1085,14 +1083,14 @@ must be provided with ascent)</p></li>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a></span> workout created</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1219,15 +1217,15 @@ must be provided with ascent)</p></li>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> workout updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1263,13 +1261,13 @@ must be provided with ascent)</p></li>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> workout deleted</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>

View File

@ -1425,7 +1425,7 @@ add URL interceptors to simplify routes definition</p></li>
<li><p>Cycling (Sport)</p></li>
<li><p>Cycling (Transport)</p></li>
<li><p>Hiking</p></li>
<li><p>Montain Biking</p></li>
<li><p>Mountain Biking</p></li>
<li><p>Running</p></li>
<li><p>Walking</p></li>
</ul>

File diff suppressed because one or more lines are too long

View File

@ -1013,7 +1013,7 @@ In this release 7 issues were closed.
- Cycling (Sport)
- Cycling (Transport)
- Hiking
- Montain Biking
- Mountain Biking
- Running
- Walking
- Activity creation by uploading a gpx file. An activity can even be created without gpx (the user must enter date, time, duration and distance)

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="OAuth2" href="oauth2.html" /><link rel="prev" title="Authentication and account" href="auth.html" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="OAuth2" href="oauth2.html" /><link rel="prev" title="Authentification et compte" href="auth.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Configuration - Documentation FitTrackee 0.7.17</title>
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">API documentation</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Documentation de lAPI</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentification et compte</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -234,13 +234,13 @@
<dl class="http get">
<dt class="sig sig-object http" id="get--api-config">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/config</span></span><a class="headerlink" href="#get--api-config" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get Application configuration.</p>
<p><strong>Example request</strong>:</p>
<dd><p>Obtenir la configuration de lapplication.</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/config</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -265,10 +265,10 @@
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error on getting configuration</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">on</span> <span class="pre">getting</span> <span class="pre">configuration</span></code></p></li>
</ul>
</dd>
</dl>
@ -277,15 +277,15 @@
<dl class="http patch">
<dt class="sig sig-object http" id="patch--api-config">
<span class="sig-name descname"><span class="pre">PATCH</span> </span><span class="sig-name descname"><span class="pre">/api/config</span></span><a class="headerlink" href="#patch--api-config" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Update Application configuration.</p>
<p>Authenticated user must be an admin.</p>
<dd><p>Mettre à jour de la configuration de lapplication.</p>
<p>Lutilisateur authentifié doit avoir des droits dadministration</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">application:write</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/config</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -312,34 +312,34 @@
<dl class="field-list simple">
<dt class="field-odd">Objet JSON de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>about</strong> (<em>string</em>) instance information</p></li>
<li><p><strong>admin_contact</strong> (<em>string</em>) email to contact the administrator</p></li>
<li><p><strong>gpx_limit_import</strong> (<em>integer</em>) max number of files in zip archive</p></li>
<li><p><strong>is_registration_enabled</strong> (<em>boolean</em>) is registration enabled?</p></li>
<li><p><strong>max_single_file_size</strong> (<em>integer</em>) max size of a single file</p></li>
<li><p><strong>max_users</strong> (<em>integer</em>) max users allowed to register on instance</p></li>
<li><p><strong>max_zip_file_size</strong> (<em>integer</em>) max size of a zip archive</p></li>
<li><p><strong>privacy_policy</strong> (<em>string</em>) instance privacy policy</p></li>
<li><p><strong>about</strong> (<em>string</em>) informations de linstance</p></li>
<li><p><strong>admin_contact</strong> (<em>string</em>) adresse électronique pour contacter ladministrateur</p></li>
<li><p><strong>gpx_limit_import</strong> (<em>integer</em>) nombre maximum de fichiers dans larchive zip</p></li>
<li><p><strong>is_registration_enabled</strong> (<em>boolean</em>) linscription est-elle activée ?</p></li>
<li><p><strong>max_single_file_size</strong> (<em>integer</em>) taille maximale dun fichier</p></li>
<li><p><strong>max_users</strong> (<em>integer</em>) nombre maximum dutilisateurs autorisés à sinscrire sur linstance</p></li>
<li><p><strong>max_zip_file_size</strong> (<em>integer</em>) taille maximale dune archive zip</p></li>
<li><p><strong>privacy_policy</strong> (<em>string</em>) politique de confidentialité de linstance</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p>valid email must be provided for admin contact</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">valid</span> <span class="pre">email</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">provided</span> <span class="pre">for</span> <span class="pre">admin</span> <span class="pre">contact</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error when updating configuration</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">when</span> <span class="pre">updating</span> <span class="pre">configuration</span></code></p></li>
</ul>
</dd>
</dl>
@ -348,13 +348,13 @@
<dl class="http get">
<dt class="sig sig-object http" id="get--api-ping">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/ping</span></span><a class="headerlink" href="#get--api-ping" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>health check endpoint</p>
<p><strong>Example request</strong>:</p>
<dd><p>point daccès de contrôle</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/ping</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -365,9 +365,9 @@
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
</ul>
</dd>
</dl>
@ -396,7 +396,7 @@
<span>Previous</span>
</div>
<div class="title">Authentication and account</div>
<div class="title">Authentification et compte</div>
</div>
</a>

View File

@ -3,10 +3,10 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Authentication and account" href="auth.html" /><link rel="prev" title="Third-party tools" href="../third_party_tools.html" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Authentification et compte" href="auth.html" /><link rel="prev" title="Outils tiers" href="../third_party_tools.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>API documentation - Documentation FitTrackee 0.7.17</title>
<title>Documentation de lAPI - Documentation FitTrackee 0.7.17</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 current has-children current-page"><a class="current reference internal" href="#">API documentation</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 current has-children current-page"><a class="current reference internal" href="#">Documentation de lAPI</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -230,18 +230,18 @@
</div>
<article role="main">
<section id="api-documentation">
<h1>API documentation<a class="headerlink" href="#api-documentation" title="Lien permanent vers cette rubrique">#</a></h1>
<h1>Documentation de lAPI<a class="headerlink" href="#api-documentation" title="Lien permanent vers cette rubrique">#</a></h1>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Endpoints:</span></p>
<p class="caption" role="heading"><span class="caption-text">Points d'accès</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="auth.html">Authentification et compte</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l1"><a class="reference internal" href="records.html">Records</a></li>
<li class="toctree-l1"><a class="reference internal" href="sports.html">Sports</a></li>
<li class="toctree-l1"><a class="reference internal" href="stats.html">Statistics</a></li>
<li class="toctree-l1"><a class="reference internal" href="users.html">Users</a></li>
<li class="toctree-l1"><a class="reference internal" href="workouts.html">Workouts</a></li>
<li class="toctree-l1"><a class="reference internal" href="stats.html">Statistiques</a></li>
<li class="toctree-l1"><a class="reference internal" href="users.html">Utilisateurs</a></li>
<li class="toctree-l1"><a class="reference internal" href="workouts.html">Séances</a></li>
</ul>
</div>
</section>
@ -256,7 +256,7 @@
<div class="context">
<span>Next</span>
</div>
<div class="title">Authentication and account</div>
<div class="title">Authentification et compte</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
@ -267,7 +267,7 @@
<span>Previous</span>
</div>
<div class="title">Third-party tools</div>
<div class="title">Outils tiers</div>
</div>
</a>

View File

@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">API documentation</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Documentation de lAPI</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -234,26 +234,24 @@
<dl class="http get">
<dt class="sig sig-object http" id="get--api-oauth-apps">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/oauth/apps</span></span><a class="headerlink" href="#get--api-oauth-apps" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get OAuth2 clients (apps) for authenticated user with pagination
(5 clients/page).</p>
<p>This endpoint is only accessible by FitTrackee client (first-party
application).</p>
<p><strong>Example request</strong>:</p>
<dd><p>Obtenir les clients OAuth2 pour lutilisateur authentifié avec pagination (5 clients/page).</p>
<p>Ce point daccès nest accessible que par le client web FitTrackee client.</p>
<p><strong>Exemple de requête</strong>:</p>
<ul class="simple">
<li><p>without parameters</p></li>
<li><p>sans paramètres :</p></li>
</ul>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/oauth/apps</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<ul class="simple">
<li><p>with “page” parameter</p></li>
<li><p>avec le paramètre “page” :</p></li>
</ul>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/oauth/apps?page=2</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -288,21 +286,21 @@ application).</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>page</strong> (<em>integer</em>) page for pagination (default: 1)</p></li>
<li><p><strong>page</strong> (<em>integer</em>) page pour la pagination (par défaut : 1)</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -313,15 +311,14 @@ application).</p>
<dl class="http post">
<dt class="sig sig-object http" id="post--api-oauth-apps">
<span class="sig-name descname"><span class="pre">POST</span> </span><span class="sig-name descname"><span class="pre">/api/oauth/apps</span></span><a class="headerlink" href="#post--api-oauth-apps" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Create an OAuth2 client (app) for the authenticated user.</p>
<p>This endpoint is only accessible by FitTrackee client (first-party
application).</p>
<p><strong>Example request</strong>:</p>
<dd><p>Créer un client OAuth2 pour lutilisateur authentifié.</p>
<p>Ce point daccès nest accessible que par le client web FitTrackee client.</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/oauth/apps</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -348,29 +345,26 @@ application).</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètre JSON<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>client_name</strong> (<em>string</em>) client name</p></li>
<li><p><strong>client_uri</strong> (<em>string</em>) client URL</p></li>
<li><p><strong>redirect_uri</strong> (<em>array</em>) list of client redirect URLs (string)</p></li>
<li><p><strong>scope</strong> (<em>string</em>) client scopes</p></li>
<li><p><strong>client_description</strong> (<em>string</em>) client description (<cite>OPTIONAL</cite>)</p></li>
<li><p><strong>client_name</strong> (<em>string</em>) nom du client</p></li>
<li><p><strong>client_uri</strong> (<em>string</em>) URl du client</p></li>
<li><p><strong>redirect_uri</strong> (<em>array</em>) liste des URL de redirection du client (chaîne de caractères)</p></li>
<li><p><strong>scope</strong> (<em>string</em>) scopdes du client</p></li>
<li><p><strong>client_description</strong> (<em>string</em>) description du client (optionnelle)</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -381,17 +375,16 @@ application).</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-oauth-apps-(string-client_client_id)">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/oauth/apps/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">client_client_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#get--api-oauth-apps-(string-client_client_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get an OAuth2 client (app) by “client_id”.</p>
<p>This endpoint is only accessible by FitTrackee client (first-party
application).</p>
<p><strong>Example request</strong>:</p>
<dd><p>Obtenir un client OAuth2 avec le “client_id”.</p>
<p>Ce point daccès nest accessible que par le client web FitTrackee client.</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/oauth/apps/o22a27s2aBPUoxJbxV3UjDOx</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example responses</strong>:</p>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -416,7 +409,7 @@ application).</p>
</pre></div>
</div>
<ul class="simple">
<li><p>not found</p></li>
<li><p>non trouvé :</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">404</span> <span class="ne">NOT FOUND</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -430,24 +423,24 @@ application).</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>client_client_id</strong> (<em>string</em>) OAuth2 client client_id</p></li>
<li><p><strong>client_client_id</strong> (<em>string</em>) client_id du client OAuth2</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> OAuth2 client not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">OAuth2</span> <span class="pre">client</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -456,17 +449,16 @@ application).</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-oauth-apps-(int-client_id)-by_id">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/oauth/apps/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">int:</span> </em><em class="sig-param"><span class="pre">client_id</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/by_id</span></span><a class="headerlink" href="#get--api-oauth-apps-(int-client_id)-by_id" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get an OAuth2 client (app) by id (integer value).</p>
<p>This endpoint is only accessible by FitTrackee client (first-party
application).</p>
<p><strong>Example request</strong>:</p>
<dd><p>Obtenir un client OAuth2 avec lidentifiant (entier).</p>
<p>Ce point daccès nest accessible que par le client web FitTrackee client.</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/oauth/apps/1/by_id</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example responses</strong>:</p>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -491,7 +483,7 @@ application).</p>
</pre></div>
</div>
<ul class="simple">
<li><p>not found</p></li>
<li><p>non trouvé :</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">404</span> <span class="ne">NOT FOUND</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -505,24 +497,24 @@ application).</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>client_id</strong> (<em>integer</em>) OAuth2 client id</p></li>
<li><p><strong>client_id</strong> (<em>integer</em>) Identifiant du client OAuth2</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> OAuth2 client not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">OAuth2</span> <span class="pre">client</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -532,14 +524,13 @@ application).</p>
<dt class="sig sig-object http" id="delete--api-oauth-apps-(int-client_id)">
<span class="sig-name descname"><span class="pre">DELETE</span> </span><span class="sig-name descname"><span class="pre">/api/oauth/apps/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">int:</span> </em><em class="sig-param"><span class="pre">client_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#delete--api-oauth-apps-(int-client_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Delete an OAuth2 client (app).</p>
<p>This endpoint is only accessible by FitTrackee client (first-party
application).</p>
<p><strong>Example request</strong>:</p>
<p>Ce point daccès nest accessible que par le client web FitTrackee client.</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/oauth/apps/1</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">204</span> <span class="ne">NO CONTENT</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
@ -547,24 +538,24 @@ application).</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>client_id</strong> (<em>integer</em>) OAuth2 client id</p></li>
<li><p><strong>client_id</strong> (<em>integer</em>) Identifiant du client OAuth2</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> OAuth2 client deleted</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> Supprimer un client OAuth2</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> OAuth2 client not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">OAuth2</span> <span class="pre">client</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -573,15 +564,14 @@ application).</p>
<dl class="http post">
<dt class="sig sig-object http" id="post--api-oauth-apps-(int-client_id)-revoke">
<span class="sig-name descname"><span class="pre">POST</span> </span><span class="sig-name descname"><span class="pre">/api/oauth/apps/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">int:</span> </em><em class="sig-param"><span class="pre">client_id</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/revoke</span></span><a class="headerlink" href="#post--api-oauth-apps-(int-client_id)-revoke" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Revoke all tokens associated to an OAuth2 client (app).</p>
<p>This endpoint is only accessible by FitTrackee client (first-party
application).</p>
<p><strong>Example request</strong>:</p>
<dd><p>Révoquer tous les tokens associés à un client OAuth2</p>
<p>Ce point daccès nest accessible que par le client web FitTrackee client.</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/oauth/apps/1/revoke</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -593,24 +583,24 @@ application).</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>client_id</strong> (<em>integer</em>) OAuth2 client id</p></li>
<li><p><strong>client_id</strong> (<em>integer</em>) Identifiant du client OAuth2</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> OAuth2 client not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">OAuth2</span> <span class="pre">client</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -619,17 +609,14 @@ application).</p>
<dl class="http post">
<dt class="sig sig-object http" id="post--api-oauth-authorize">
<span class="sig-name descname"><span class="pre">POST</span> </span><span class="sig-name descname"><span class="pre">/api/oauth/authorize</span></span><a class="headerlink" href="#post--api-oauth-authorize" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Authorize an OAuth2 client (app).
If successful, it redirects to the client callback URL with the code to
issue a token.</p>
<p>This endpoint is only accessible by FitTrackee client (first-party
application).</p>
<p><strong>Example request</strong>:</p>
<dd><p>Autoriser un client OAuth2 (app). En cas de succès, il redirige vers lURL de redirection du client avec le code pour émettre un jeton.</p>
<p>Ce point daccès nest accessible que par le client web FitTrackee client.</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/oauth/authorize</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">multipart/form-data</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -641,37 +628,32 @@ application).</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres de la forme<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>string client_id</strong> OAuth2 client “client_id”</p></li>
<li><p><strong>string response_type</strong> client response type (only “code” is supported
by FitTrackee)</p></li>
<li><p><strong>string scopes</strong> OAuth2 client scopes</p></li>
<li><p><strong>string client_id</strong> “client_id” du client OAuth2</p></li>
<li><p><strong>string response_type</strong> type de réponse du client (seul “code” est supporté par FitTrackee)</p></li>
<li><p><strong>string scopes</strong> scope du client OAuth2</p></li>
<li><p><strong>boolean confirm</strong> confirmation (must be <code class="docutils literal notranslate"><span class="pre">true</span></code>)</p></li>
<li><p><strong>string state</strong> unique value to prevent cross-site request forgery
(not mandatory but recommended)</p></li>
<li><p><strong>string code_challenge</strong> string generated from a code verifier
(for PKCE, not mandatory but recommended)</p></li>
<li><p><strong>string code_challenge_method</strong> method used to create challenge,
for instance « S256 » (mandatory if <cite>code_challenge</cite>
provided)</p></li>
<li><p><strong>string state</strong> valeur unique pour éviter la falsification des requêtes entre les sites (non obligatoire mais recommandée)</p></li>
<li><p><strong>string code_challenge</strong> chaîne générée par un vérificateur de code (pour PKCE, non obligatoire mais recommandée)</p></li>
<li><p><strong>string code_challenge_method</strong> méthode utilisée pour créer le challenge, par exemple « S256 » (obligatoire si <cite>code_challenge</cite> fourni)</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>errors returned by Authlib library</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p>erreurs renvoyées par la librairie Authlib</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -682,13 +664,13 @@ provided)</p></li>
<dl class="http post">
<dt class="sig sig-object http" id="post--api-oauth-token">
<span class="sig-name descname"><span class="pre">POST</span> </span><span class="sig-name descname"><span class="pre">/api/oauth/token</span></span><a class="headerlink" href="#post--api-oauth-token" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Issue or refresh token for a given OAuth2 client (app).</p>
<p><strong>Example request</strong>:</p>
<dd><p>Délivrer ou rafraîchir un jeton pour un client OAuth2 donné</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/oauth/token</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">multipart/form-data</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -705,30 +687,22 @@ provided)</p></li>
<dl class="field-list simple">
<dt class="field-odd">Paramètres de la forme<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>string client_id</strong> OAuth2 client “client_id”</p></li>
<li><p><strong>string client_secret</strong> OAuth2 client secret</p></li>
<li><p><strong>string grant_type</strong> OAuth2 client grant type
(only “authorization_code” (for token issue)
and “refresh_token” (for token refresh)
are supported by FitTrackee)</p></li>
<li><p><strong>string code</strong> code generated after authorizing the client
(for token issue)</p></li>
<li><p><strong>string code_verifier</strong> code verifier
(for token issue with PKCE, not mandatory)</p></li>
<li><p><strong>string refresh_token</strong> refresh token (for token refresh)</p></li>
<li><p><strong>string client_id</strong> “client_id” du client OAuth2</p></li>
<li><p><strong>string client_secret</strong> secret du client OAuth2</p></li>
<li><p><strong>string grant_type</strong> Type dautorisation du client OAuth2 (seuls “authorization_code” (pour lémission de jetons) et “refresh_token” (pour le rafraîchissement de jeton) sont pris en charge par FitTrackee)</p></li>
<li><p><strong>string code</strong> code généré après lautorisation du client (pour lémission de jetons)</p></li>
<li><p><strong>string code_verifier</strong> vérificateur de code (pour lémission de jetons avec PKCE, non obligatoire)</p></li>
<li><p><strong>string refresh_token</strong> jeton de rafraîchissement (pour le rafraîchissement du jeton)</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>errors returned by Authlib library</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> erreurs renvoyées par la librairie Authlib</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -739,13 +713,13 @@ are supported by FitTrackee)</p></li>
<dl class="http post">
<dt class="sig sig-object http" id="post--api-oauth-revoke">
<span class="sig-name descname"><span class="pre">POST</span> </span><span class="sig-name descname"><span class="pre">/api/oauth/revoke</span></span><a class="headerlink" href="#post--api-oauth-revoke" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Revoke a token for a given OAuth2 client (app).</p>
<p><strong>Example request</strong>:</p>
<dd><p>Révoquer un jeton pour un client OAuth2 donné</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/oauth/revoke</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">multipart/form-data</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">SUCCESS</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -755,22 +729,19 @@ are supported by FitTrackee)</p></li>
<dl class="field-list simple">
<dt class="field-odd">Paramètres de la forme<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>string client_id</strong> OAuth2 client “client_id”</p></li>
<li><p><strong>string client_secret</strong> OAuth2 client secret</p></li>
<li><p><strong>string token</strong> access token to revoke</p></li>
<li><p><strong>string client_id</strong> “client_id” du client OAuth2</p></li>
<li><p><strong>string client_secret</strong> secret du client OAuth2</p></li>
<li><p><strong>string token</strong> jeton daccès à révoquer</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>errors returned by Authlib library</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> erreurs renvoyées par la librairie Authlib</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>

View File

@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">API documentation</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Documentation de lAPI</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -234,26 +234,26 @@
<dl class="http get">
<dt class="sig sig-object http" id="get--api-records">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/records</span></span><a class="headerlink" href="#get--api-records" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get all records for authenticated user.</p>
<dd><p>Obtenir tous les records pour lutilisateur authentifié.</p>
<dl class="simple">
<dt>Following types of records are available:</dt><dd><ul class="simple">
<li><p>average speed (record_type: <code class="docutils literal notranslate"><span class="pre">AS</span></code>)</p></li>
<li><p>farthest distance (record_type: <code class="docutils literal notranslate"><span class="pre">FD</span></code>)</p></li>
<li><p>highest ascent (record_type: <code class="docutils literal notranslate"><span class="pre">HA</span></code>)</p></li>
<li><p>longest duration (record_type: <code class="docutils literal notranslate"><span class="pre">LD</span></code>)</p></li>
<li><p>maximum speed (record_type: <code class="docutils literal notranslate"><span class="pre">MS</span></code>)</p></li>
<dt>Les types de records suivants sont disponibles :</dt><dd><ul class="simple">
<li><p>vitesse moyenne (record_type: <code class="docutils literal notranslate"><span class="pre">AS</span></code>)</p></li>
<li><p>distance la plus elevée (record_type: <code class="docutils literal notranslate"><span class="pre">FD</span></code>)</p></li>
<li><p>dénivelé le plus élevé (record_type: <code class="docutils literal notranslate"><span class="pre">HA</span></code>)</p></li>
<li><p>durée la plus longue (record_type: <code class="docutils literal notranslate"><span class="pre">LD</span></code>)</p></li>
<li><p>vitesse maximale (record_type: <code class="docutils literal notranslate"><span class="pre">MS</span></code>)</p></li>
</ul>
</dd>
</dl>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/records</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example responses</strong>:</p>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>returning records</p></li>
<li><p>retournant des records</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>
@ -313,7 +313,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>no records</p></li>
<li><p>pas de record</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>
@ -329,16 +329,16 @@
<dl class="field-list simple">
<dt class="field-odd">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>

View File

@ -3,7 +3,7 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Statistics" href="stats.html" /><link rel="prev" title="Records" href="records.html" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Statistiques" href="stats.html" /><link rel="prev" title="Records" href="records.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Sports - Documentation FitTrackee 0.7.17</title>
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">API documentation</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Documentation de lAPI</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="records.html">Records</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -234,16 +234,16 @@
<dl class="http get">
<dt class="sig sig-object http" id="get--api-sports">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/sports</span></span><a class="headerlink" href="#get--api-sports" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get all sports</p>
<dd><p>Obtenir tous les sports</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/sports</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>for non admin user :</p></li>
<li><p>pour un utilisateur non admin</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>
@ -306,7 +306,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>for admin user :</p></li>
<li><p>pour un administrateur</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>
@ -377,16 +377,16 @@
<dl class="field-list simple">
<dt class="field-odd">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -397,16 +397,16 @@
<dl class="http get">
<dt class="sig sig-object http" id="get--api-sports-(int-sport_id)">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/sports/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">int:</span> </em><em class="sig-param"><span class="pre">sport_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#get--api-sports-(int-sport_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get a sport</p>
<dd><p>Obtenir un sport</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/sports/1</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>success for non admin user :</p></li>
<li><p>succès pour un utilisateur non admin:</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>
@ -429,7 +429,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>success for admin user :</p></li>
<li><p>succès pour un administrateur</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>
@ -453,7 +453,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>sport not found</p></li>
<li><p>sport non trouvé :</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">404</span> <span class="ne">NOT FOUND</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -469,24 +469,24 @@
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sport_id</strong> (<em>integer</em>) sport id</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) identifiant du sport</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> sport not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">sport</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -495,17 +495,17 @@
<dl class="http patch">
<dt class="sig sig-object http" id="patch--api-sports-(int-sport_id)">
<span class="sig-name descname"><span class="pre">PATCH</span> </span><span class="sig-name descname"><span class="pre">/api/sports/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">int:</span> </em><em class="sig-param"><span class="pre">sport_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#patch--api-sports-(int-sport_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Update a sport.</p>
<p>Authenticated user must be an admin.</p>
<dd><p>Modifier un sport</p>
<p>Lutilisateur authentifié doit avoir des droits dadministration</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:write</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">PATCH</span> <span class="nn">/api/sports/1</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example responses</strong>:</p>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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>
@ -529,7 +529,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>sport not found</p></li>
<li><p>sport non trouvé :</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">404</span> <span class="ne">NOT FOUND</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -545,32 +545,32 @@
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sport_id</strong> (<em>integer</em>) sport id</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) identifiant du sport</p></li>
</ul>
</dd>
<dt class="field-even">Objet JSON de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>is_active</strong> (<em>string</em>) sport active status</p></li>
<li><p><strong>is_active</strong> (<em>string</em>) état dactivation du sport</p></li>
</ul>
</dd>
<dt class="field-odd">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> sport updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> sport mis à jour</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> sport not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">sport</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -588,7 +588,7 @@
<div class="context">
<span>Next</span>
</div>
<div class="title">Statistics</div>
<div class="title">Statistiques</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>

View File

@ -3,10 +3,10 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Users" href="users.html" /><link rel="prev" title="Sports" href="sports.html" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Utilisateurs" href="users.html" /><link rel="prev" title="Sports" href="sports.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Statistics - Documentation FitTrackee 0.7.17</title>
<title>Statistiques - Documentation FitTrackee 0.7.17</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">API documentation</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Documentation de lAPI</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="sports.html">Sports</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Workouts</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -230,29 +230,29 @@
</div>
<article role="main">
<section id="statistics">
<h1>Statistics<a class="headerlink" href="#statistics" title="Lien permanent vers cette rubrique">#</a></h1>
<h1>Statistiques<a class="headerlink" href="#statistics" title="Lien permanent vers cette rubrique">#</a></h1>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-stats-(user_name)-by_time">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/stats/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">user_name</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/by_time</span></span><a class="headerlink" href="#get--api-stats-(user_name)-by_time" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get workouts statistics for a user by time.</p>
<dd><p>Obtenir des statistiques sur les séances dentraînement pour un utilisateur par durée</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example requests</strong>:</p>
<p><strong>Exemple de requêtes</strong>:</p>
<ul class="simple">
<li><p>without parameters</p></li>
<li><p>sans paramètres :</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>
<li><p>avec des paramètres</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&amp;to=2018-06-30&amp;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>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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>
@ -295,7 +295,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>no workouts</p></li>
<li><p>pas de séances :</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>
@ -311,41 +311,31 @@
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user_name</strong> (<em>integer</em>) username</p></li>
<li><p><strong>user_name</strong> (<em>integer</em>) nom dutilisateur</p></li>
</ul>
</dd>
<dt class="field-even">Paramètres de requête<span class="colon">:</span></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>
<li><p><strong>from</strong> (<em>string</em>) date de début (format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span></code>)</p></li>
<li><p><strong>to</strong> (<em>string</em>) date de fin (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ériode de temps : - <code class="docutils literal notranslate"><span class="pre">week</span></code>: semaine commençant le dimanche - <code class="docutils literal notranslate"><span class="pre">weekm</span></code>: semaine commençant le lundi - <code class="docutils literal notranslate"><span class="pre">month</span></code>: mois - <code class="docutils literal notranslate"><span class="pre">year</span></code>: année (default)</p></li>
</ul>
</dd>
<dt class="field-odd">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
</ul>
</dd>
</dl>
@ -354,24 +344,24 @@
<dl class="http get">
<dt class="sig sig-object http" id="get--api-stats-(user_name)-by_sport">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/stats/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">user_name</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/by_sport</span></span><a class="headerlink" href="#get--api-stats-(user_name)-by_sport" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get workouts statistics for a user by sport.</p>
<dd><p>Obtenir les statistiques des séances pour un utilisateur par sport.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example requests</strong>:</p>
<p><strong>Exemple de requêtes</strong>:</p>
<ul class="simple">
<li><p>without parameters (get stats for all sports with workouts)</p></li>
<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>
<li><p>avec lidentifiant du sport</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>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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>
@ -410,7 +400,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>no workouts</p></li>
<li><p>pas de séances :</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>
@ -426,31 +416,31 @@
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user_name</strong> (<em>integer</em>) username</p></li>
<li><p><strong>user_name</strong> (<em>integer</em>) nom dutilisateur</p></li>
</ul>
</dd>
<dt class="field-even">Paramètres de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>sport_id</strong> (<em>integer</em>) sport id</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) identifiant du sport</p></li>
</ul>
</dd>
<dt class="field-odd">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
<li><p>sport does not exist</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">sport</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
</ul>
</p></li>
</ul>
@ -461,13 +451,13 @@
<dl class="http get">
<dt class="sig sig-object http" id="get--api-stats-all">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/stats/all</span></span><a class="headerlink" href="#get--api-stats-all" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get all application statistics.</p>
<dd><p>Obtenir toutes les statistiques de lapplication.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example requests</strong>:</p>
<p><strong>Exemple de requêtes</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>
<p><strong>Exemple de réponse</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>
@ -485,19 +475,19 @@
<dl class="field-list simple">
<dt class="field-odd">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
</ul>
</dd>
</dl>
@ -515,7 +505,7 @@
<div class="context">
<span>Next</span>
</div>
<div class="title">Users</div>
<div class="title">Utilisateurs</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>

View File

@ -3,10 +3,10 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Workouts" href="workouts.html" /><link rel="prev" title="Statistics" href="stats.html" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Séances" href="workouts.html" /><link rel="prev" title="Statistiques" href="stats.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Users - Documentation FitTrackee 0.7.17</title>
<title>Utilisateurs - Documentation FitTrackee 0.7.17</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">API documentation</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Documentation de lAPI</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistics</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistiques</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -230,30 +230,29 @@
</div>
<article role="main">
<section id="users">
<h1>Users<a class="headerlink" href="#users" title="Lien permanent vers cette rubrique">#</a></h1>
<h1>Utilisateurs<a class="headerlink" href="#users" title="Lien permanent vers cette rubrique">#</a></h1>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-users">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/users</span></span><a class="headerlink" href="#get--api-users" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get all users (regardless their account status), if authenticated user
has admin rights.</p>
<p>It returns user preferences only for authenticated user.</p>
<dd><p>Obtenir tous les utilisateurs (quel que soit le statut de leur compte), si lutilisateur authentifié a des droits dadministration.</p>
<p>Ne renvoie les préférences de lutilisateur que pour lutilisateur authentifié.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">users:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<ul class="simple">
<li><p>without parameters</p></li>
<li><p>sans paramètres :</p></li>
</ul>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/users</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<ul class="simple">
<li><p>with some query parameters</p></li>
<li><p>avec quelques paramètres de requête :</p></li>
</ul>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/users?order_by=workouts_count&amp;par_page=5</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -363,27 +362,25 @@ has admin rights.</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>page</strong> (<em>integer</em>) page if using pagination (default: 1)</p></li>
<li><p><strong>per_page</strong> (<em>integer</em>) number of users per page (default: 10, max: 50)</p></li>
<li><p><strong>q</strong> (<em>string</em>) query on user name</p></li>
<li><p><strong>order</strong> (<em>string</em>) sorting order: <code class="docutils literal notranslate"><span class="pre">asc</span></code>, <code class="docutils literal notranslate"><span class="pre">desc</span></code> (default: <code class="docutils literal notranslate"><span class="pre">asc</span></code>)</p></li>
<li><p><strong>order_by</strong> (<em>string</em>) sorting criteria: <code class="docutils literal notranslate"><span class="pre">username</span></code>, <code class="docutils literal notranslate"><span class="pre">created_at</span></code>,
<code class="docutils literal notranslate"><span class="pre">workouts_count</span></code>, <code class="docutils literal notranslate"><span class="pre">admin</span></code>, <code class="docutils literal notranslate"><span class="pre">is_active</span></code>
(default: <code class="docutils literal notranslate"><span class="pre">username</span></code>)</p></li>
<li><p><strong>page</strong> (<em>integer</em>) page si pagination (par défaut : 1)</p></li>
<li><p><strong>per_page</strong> (<em>integer</em>) nombre dutilisateurs par page (par défaut : 10, max : 50)</p></li>
<li><p><strong>q</strong> (<em>string</em>) requête sur le nom de lutilisateur</p></li>
<li><p><strong>order</strong> (<em>string</em>) ordre de tri : <code class="docutils literal notranslate"><span class="pre">asc</span></code>, <code class="docutils literal notranslate"><span class="pre">desc</span></code> (par défaut : <code class="docutils literal notranslate"><span class="pre">asc</span></code>)</p></li>
<li><p><strong>order_by</strong> (<em>string</em>) critères de tri : <code class="docutils literal notranslate"><span class="pre">username</span></code>, <code class="docutils literal notranslate"><span class="pre">created_at</span></code>, <code class="docutils literal notranslate"><span class="pre">workouts_count</span></code>, <code class="docutils literal notranslate"><span class="pre">admin</span></code>, <code class="docutils literal notranslate"><span class="pre">is_active</span></code> (par défaut : <code class="docutils literal notranslate"><span class="pre">username</span></code>)</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
</ul>
@ -394,16 +391,15 @@ has admin rights.</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-users-(user_name)">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/users/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">user_name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#get--api-users-(user_name)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get single user details. Only user with admin rights can get other users
details.</p>
<p>It returns user preferences only for authenticated user.</p>
<dd><p>Obtenir les information dun utilisateur. Seul lutilisateur disposant des droits dadministrateur peut obtenir les informations des autres utilisateurs.</p>
<p>Ne renvoie les préférences de lutilisateur que pour lutilisateur authentifié.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">users:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/users/admin</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -489,25 +485,25 @@ details.</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user_name</strong> (<em>integer</em>) user name</p></li>
<li><p><strong>user_name</strong> (<em>integer</em>) nom de lutilisateur</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
</ul>
</p></li>
</ul>
@ -518,13 +514,13 @@ details.</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-users-(user_name)-picture">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/users/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">user_name</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/picture</span></span><a class="headerlink" href="#get--api-users-(user_name)-picture" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>get user picture</p>
<p><strong>Example request</strong>:</p>
<dd><p>obtenir limage de lutilisateur</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/users/admin/picture</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">image/jpeg</span>
</pre></div>
@ -532,15 +528,15 @@ details.</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user_name</strong> (<em>integer</em>) user name</p></li>
<li><p><strong>user_name</strong> (<em>integer</em>) nom de lutilisateur</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
<li><p>No picture.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">No</span> <span class="pre">picture.</span></code></p></li>
</ul>
</p></li>
</ul>
@ -551,22 +547,21 @@ details.</p>
<dl class="http patch">
<dt class="sig sig-object http" id="patch--api-users-(user_name)">
<span class="sig-name descname"><span class="pre">PATCH</span> </span><span class="sig-name descname"><span class="pre">/api/users/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">user_name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#patch--api-users-(user_name)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Update user account.</p>
<dd><p>Mise à jour du compte utilisateur.</p>
<ul class="simple">
<li><p>add/remove admin rights (regardless user account status)</p></li>
<li><p>reset password (and send email to update user password,
if sending enabled)</p></li>
<li><p>update user email (and send email to new user email, if sending enabled)</p></li>
<li><p>activate account for an inactive user</p></li>
<li><p>ajouter/supprimer des droits dadministration (quel que soit le statut du compte dutilisateur)</p></li>
<li><p>réinitialiser le mot de passe (et envoyer un courriel pour mettre à jour le mot de passe de lutilisateur, si lenvoi activé)</p></li>
<li><p>mettre à jour ladresse électronique de lutilisateur (et envoyer un message à la nouvelle adresse électronique de lutilisateur, si lenvoi est activé)</p></li>
<li><p>activer le compte dun utilisateur inactif</p></li>
</ul>
<p>Only user with admin rights can modify another user.</p>
<p>Seul lutilisateur ayant des droits dadministration peut modifier un autre utilisateur.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">users:write</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">PATCH</span> <span class="nn">/api/users/&lt;user_name&gt;</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -652,43 +647,40 @@ if sending enabled)</p></li>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user_name</strong> (<em>string</em>) user name</p></li>
<li><p><strong>user_name</strong> (<em>string</em>) nom de lutilisateur</p></li>
</ul>
</dd>
<dt class="field-even">Objet JSON de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>activate</strong> (<em>boolean</em>) activate user account</p></li>
<li><p><strong>admin</strong> (<em>boolean</em>) does the user have administrator rights</p></li>
<li><p><strong>new_email</strong> (<em>boolean</em>) new user email</p></li>
<li><p><strong>reset_password</strong> (<em>boolean</em>) reset user password</p></li>
<li><p><strong>activate</strong> (<em>boolean</em>) activer le compte utilisateur</p></li>
<li><p><strong>admin</strong> (<em>boolean</em>) lutilisateur dispose-t-il de droits dadministration ?</p></li>
<li><p><strong>new_email</strong> (<em>boolean</em>) nouvelle adresse électronique de lutilisateur</p></li>
<li><p><strong>reset_password</strong> (<em>boolean</em>) réinitialiser le mot de passe de lutilisateur</p></li>
</ul>
</dd>
<dt class="field-odd">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>valid email must be provided</p></li>
<li><p>new email must be different than curent email</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">valid</span> <span class="pre">email</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">provided</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">new</span> <span class="pre">email</span> <span class="pre">must</span> <span class="pre">be</span> <span class="pre">different</span> <span class="pre">than</span> <span class="pre">curent</span> <span class="pre">email</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -697,17 +689,16 @@ if sending enabled)</p></li>
<dl class="http delete">
<dt class="sig sig-object http" id="delete--api-users-(user_name)">
<span class="sig-name descname"><span class="pre">DELETE</span> </span><span class="sig-name descname"><span class="pre">/api/users/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">user_name</span></em><span class="sig-paren">)</span><a class="headerlink" href="#delete--api-users-(user_name)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Delete a user account.</p>
<p>A user can only delete his own account.</p>
<p>An admin can delete all accounts except his account if hes the only
one admin.</p>
<dd><p>Supprimer un compte utilisateur.</p>
<p>Un utilisateur ne peut supprimer que son propre compte.</p>
<p>Un administrateur peut supprimer tous les comptes sauf le sien sil est le seul administrateur.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">users:write</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/users/john_doe</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">204</span> <span class="ne">NO CONTENT</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
@ -715,33 +706,30 @@ one admin.</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user_name</strong> (<em>string</em>) user name</p></li>
<li><p><strong>user_name</strong> (<em>string</em>) nom de lutilisateur</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> user account deleted</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> compte de lutilisateur supprimé</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <ul>
<li><p>you do not have permissions</p></li>
<li><p>you can not delete your account, no other user has admin rights</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">can</span> <span class="pre">not</span> <span class="pre">delete</span> <span class="pre">your</span> <span class="pre">account,</span> <span class="pre">no</span> <span class="pre">other</span> <span class="pre">user</span> <span class="pre">has</span> <span class="pre">admin</span> <span class="pre">rights</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>user does not exist</p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">user</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -759,7 +747,7 @@ one admin.</p>
<div class="context">
<span>Next</span>
</div>
<div class="title">Workouts</div>
<div class="title">Séances</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
@ -770,7 +758,7 @@ one admin.</p>
<span>Previous</span>
</div>
<div class="title">Statistics</div>
<div class="title">Statistiques</div>
</div>
</a>

View File

@ -3,10 +3,10 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Troubleshooting" href="../troubleshooting/index.html" /><link rel="prev" title="Users" href="users.html" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Dépannage" href="../troubleshooting/index.html" /><link rel="prev" title="Utilisateurs" href="users.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Workouts - Documentation FitTrackee 0.7.17</title>
<title>Séances - Documentation FitTrackee 0.7.17</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">API documentation</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Documentation de lAPI</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Users</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="users.html">Utilisateurs</a></li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -230,28 +230,28 @@
</div>
<article role="main">
<section id="workouts">
<h1>Workouts<a class="headerlink" href="#workouts" title="Lien permanent vers cette rubrique">#</a></h1>
<h1>Séances<a class="headerlink" href="#workouts" title="Lien permanent vers cette rubrique">#</a></h1>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts</span></span><a class="headerlink" href="#get--api-workouts" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get workouts for the authenticated user.</p>
<dd><p>Obtenir les séances de lutilisateur authentifié.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example requests</strong>:</p>
<p><strong>Exemple de requêtes</strong>:</p>
<ul class="simple">
<li><p>without parameters</p></li>
<li><p>sans paramètres :</p></li>
</ul>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/</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 some query parameters</p></li>
<li><p>avec quelques paramètres de requête :</p></li>
</ul>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts?from=2019-07-02&amp;to=2019-07-31&amp;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>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>returning at least one workout</p></li>
<li><p>renvoyant au moins une séance :</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>
@ -341,7 +341,7 @@
</pre></div>
</div>
<ul class="simple">
<li><p>returning no workouts</p></li>
<li><p>renvoyant aucune séance</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>
@ -357,45 +357,41 @@
<dl class="field-list simple">
<dt class="field-odd">Paramètres de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>page</strong> (<em>integer</em>) page if using pagination (default: 1)</p></li>
<li><p><strong>per_page</strong> (<em>integer</em>) number of workouts per page
(default: 5, max: 100)</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) sport id</p></li>
<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>distance_from</strong> (<em>float</em>) minimal distance</p></li>
<li><p><strong>distance_to</strong> (<em>float</em>) maximal distance</p></li>
<li><p><strong>duration_from</strong> (<em>string</em>) minimal duration (format: <code class="docutils literal notranslate"><span class="pre">%H:%M</span></code>)</p></li>
<li><p><strong>duration_to</strong> (<em>string</em>) maximal distance (format: <code class="docutils literal notranslate"><span class="pre">%H:%M</span></code>)</p></li>
<li><p><strong>ave_speed_from</strong> (<em>float</em>) minimal average speed</p></li>
<li><p><strong>ave_speed_to</strong> (<em>float</em>) maximal average speed</p></li>
<li><p><strong>max_speed_from</strong> (<em>float</em>) minimal max. speed</p></li>
<li><p><strong>max_speed_to</strong> (<em>float</em>) maximal max. speed</p></li>
<li><p><strong>order</strong> (<em>string</em>) sorting order: <code class="docutils literal notranslate"><span class="pre">asc</span></code>, <code class="docutils literal notranslate"><span class="pre">desc</span></code> (default: <code class="docutils literal notranslate"><span class="pre">desc</span></code>)</p></li>
<li><p><strong>page</strong> (<em>integer</em>) page si pagination (par défaut : 1)</p></li>
<li><p><strong>per_page</strong> (<em>integer</em>) nombre dentraînements par page (par défaut : 5, max : 100)</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) identifiant du sport</p></li>
<li><p><strong>title</strong> (<em>string</em>) une partie (ou la totalité) du titre de la séance, la correspondance entre les titres ne tient pas compte des majuscules et des minuscules</p></li>
<li><p><strong>from</strong> (<em>string</em>) date de début (format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span></code>)</p></li>
<li><p><strong>to</strong> (<em>string</em>) date de fin (format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span></code>)</p></li>
<li><p><strong>distance_from</strong> (<em>float</em>) distance minimale</p></li>
<li><p><strong>distance_to</strong> (<em>float</em>) distance maximale</p></li>
<li><p><strong>duration_from</strong> (<em>string</em>) durée minimale (format: <code class="docutils literal notranslate"><span class="pre">%H:%M</span></code>)</p></li>
<li><p><strong>duration_to</strong> (<em>string</em>) distance maximale (format: <code class="docutils literal notranslate"><span class="pre">%H:%M</span></code>)</p></li>
<li><p><strong>ave_speed_from</strong> (<em>float</em>) vitesse moyenne minimale</p></li>
<li><p><strong>ave_speed_to</strong> (<em>float</em>) vitesse moyenne maximale</p></li>
<li><p><strong>max_speed_from</strong> (<em>float</em>) vitesse max. minimale</p></li>
<li><p><strong>max_speed_to</strong> (<em>float</em>) vitesse max. maximale</p></li>
<li><p><strong>order</strong> (<em>string</em>) ordre de tri : <code class="docutils literal notranslate"><span class="pre">asc</span></code>, <code class="docutils literal notranslate"><span class="pre">desc</span></code> (par défaut : <code class="docutils literal notranslate"><span class="pre">desc</span></code>)</p></li>
<li><p><strong>order_by</strong> (<em>string</em>) sorting criteria: <code class="docutils literal notranslate"><span class="pre">ave_speed</span></code>, <code class="docutils literal notranslate"><span class="pre">distance</span></code>,
<code class="docutils literal notranslate"><span class="pre">duration</span></code>, <code class="docutils literal notranslate"><span class="pre">workout_date</span></code> (default:
<code class="docutils literal notranslate"><span class="pre">workout_date</span></code>)</p></li>
</ul>
</dd>
<dt class="field-even">Quert string title<span class="colon">:</span></dt>
<dd class="field-even"><p>any part (or all) of the workout title;
title matching is case-insensitive</p>
</dd>
<dt class="field-odd">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -404,15 +400,15 @@ title matching is case-insensitive</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts-(string-workout_short_id)">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">workout_short_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#get--api-workouts-(string-workout_short_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get a workout.</p>
<dd><p>Obtenir une séance.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/kjxavSTUrJvoAh2wvCeGEF</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>
<p><strong>Exemple de réponse</strong>:</p>
<ul class="simple">
<li><p>success</p></li>
<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>
@ -456,7 +452,7 @@ title matching is case-insensitive</p>
</pre></div>
</div>
<ul class="simple">
<li><p>workout not found:</p></li>
<li><p>séance non trouvé :</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">404</span> <span class="ne">NOT FOUND</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -472,25 +468,25 @@ title matching is case-insensitive</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>workout_short_id</strong> (<em>string</em>) workout short id</p></li>
<li><p><strong>workout_short_id</strong> (<em>string</em>) identifiant court de la séance</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> you do not have permissions</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a></span> <code class="docutils literal notranslate"><span class="pre">you</span> <span class="pre">do</span> <span class="pre">not</span> <span class="pre">have</span> <span class="pre">permissions</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
</ul>
</dd>
</dl>
@ -499,14 +495,14 @@ title matching is case-insensitive</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts-(string-workout_short_id)-gpx">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">workout_short_id</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/gpx</span></span><a class="headerlink" href="#get--api-workouts-(string-workout_short_id)-gpx" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get gpx file for a workout displayed on map with Leaflet.</p>
<dd><p>Obtenir un fichier gpx pour une séance affichée sur une carte avec Leaflet.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/kjxavSTUrJvoAh2wvCeGEF/gpx</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -522,29 +518,29 @@ title matching is case-insensitive</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>workout_short_id</strong> (<em>string</em>) workout short id</p></li>
<li><p><strong>workout_short_id</strong> (<em>string</em>) identifiant court de la séance</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>workout not found</p></li>
<li><p>no gpx file for this workout</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">this</span> <span class="pre">workout</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -553,14 +549,14 @@ title matching is case-insensitive</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts-(string-workout_short_id)-chart_data">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">workout_short_id</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/chart_data</span></span><a class="headerlink" href="#get--api-workouts-(string-workout_short_id)-chart_data" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get chart data from a workout gpx file, to display it with Chart.js.</p>
<dd><p>Récupérer les données dune séance avec gpx pour les afficher avec Chart.js</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/kjxavSTUrJvoAh2wvCeGEF/chart</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -595,29 +591,29 @@ title matching is case-insensitive</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>workout_short_id</strong> (<em>string</em>) workout short id</p></li>
<li><p><strong>workout_short_id</strong> (<em>string</em>) identifiant court de la séance</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>workout not found</p></li>
<li><p>no gpx file for this workout</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">this</span> <span class="pre">workout</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -626,14 +622,14 @@ title matching is case-insensitive</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">workout_short_id</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/chart_data/segment/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">int:</span> </em><em class="sig-param"><span class="pre">segment_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get chart data from a workout gpx file, to display it with Recharts</p>
<dd><p>Récupérer les données dune séance avec gpx pour les afficher avec Chart.js</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/kjxavSTUrJvoAh2wvCeGEF/chart/segment/0</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -668,27 +664,27 @@ title matching is case-insensitive</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>workout_short_id</strong> (<em>string</em>) workout short id</p></li>
<li><p><strong>segment_id</strong> (<em>integer</em>) segment id</p></li>
<li><p><strong>workout_short_id</strong> (<em>string</em>) identifiant court de la séance</p></li>
<li><p><strong>segment_id</strong> (<em>integer</em>) identifiant du segment</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> no gpx file for this workout</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">this</span> <span class="pre">workout</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -697,14 +693,14 @@ title matching is case-insensitive</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">workout_short_id</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/gpx/segment/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">int:</span> </em><em class="sig-param"><span class="pre">segment_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get gpx file for a workout segment displayed on map with Leaflet.</p>
<dd><p>Obtenir un fichier gpx pour le segment dune séance pour lafficher sur la carte avec Leaflet.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/kjxavSTUrJvoAh2wvCeGEF/gpx/segment/0</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -720,27 +716,27 @@ title matching is case-insensitive</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>workout_short_id</strong> (<em>string</em>) workout short id</p></li>
<li><p><strong>segment_id</strong> (<em>integer</em>) segment id</p></li>
<li><p><strong>workout_short_id</strong> (<em>string</em>) identifiant court de la séance</p></li>
<li><p><strong>segment_id</strong> (<em>integer</em>) identifiant du segment</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> no gpx file for this workout</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">this</span> <span class="pre">workout</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -749,13 +745,13 @@ title matching is case-insensitive</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts-map-(map_id)">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/map/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">map_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#get--api-workouts-map-(map_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get map image for workouts with gpx.</p>
<p><strong>Example request</strong>:</p>
<dd><p>Obtenir limage de la carte pour les séances avec gpx.</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/map/fa33f4d996844a5c73ecd1ae24456ab8?1563529507772</span>
<span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">image/png</span>
</pre></div>
@ -763,20 +759,20 @@ title matching is case-insensitive</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>map_id</strong> (<em>string</em>) workout map id</p></li>
<li><p><strong>map_id</strong> (<em>string</em>) identifiant de la carte de la séance</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> map does not exist</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">map</span> <span class="pre">does</span> <span class="pre">not</span> <span class="pre">exist</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -785,12 +781,12 @@ title matching is case-insensitive</p>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts-map_tile-(s)-(z)-(x)-(y).png">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/map_tile/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">s</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">z</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">x</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="pre">y</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">.png</span></span><a class="headerlink" href="#get--api-workouts-map_tile-(s)-(z)-(x)-(y).png" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Get map tile from tile server.</p>
<p><strong>Example request</strong>:</p>
<dd><p>Obtenir une tuile de la carte à partir du serveur de tuiles.</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/map_tile/c/13/4109/2930.png</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">image/png</span>
</pre></div>
@ -798,26 +794,26 @@ title matching is case-insensitive</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>s</strong> (<em>string</em>) subdomain</p></li>
<li><p><strong>s</strong> (<em>string</em>) sous-domaine</p></li>
<li><p><strong>z</strong> (<em>string</em>) zoom</p></li>
<li><p><strong>x</strong> (<em>string</em>) index of the tile along the maps x axis</p></li>
<li><p><strong>y</strong> (<em>string</em>) index of the tile along the maps y axis</p></li>
<li><p><strong>x</strong> (<em>string</em>) index de la tuile sur laxe x de la carte</p></li>
<li><p><strong>y</strong> (<em>string</em>) index de la tuile sur laxe y de la carte</p></li>
</ul>
</dd>
</dl>
<p>Status codes are status codes returned by tile server</p>
<p>Les codes détat sont des codes détat renvoyés par le serveur de tuiles.</p>
</dd></dl>
<dl class="http get">
<dt class="sig sig-object http" id="get--api-workouts-(string-workout_short_id)-gpx-download">
<span class="sig-name descname"><span class="pre">GET</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">workout_short_id</span></em><span class="sig-paren">)</span><span class="sig-name descname"><span class="pre">/gpx/download</span></span><a class="headerlink" href="#get--api-workouts-(string-workout_short_id)-gpx-download" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Download gpx file.</p>
<dd><p>Télécharger le fichier gpx.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:read</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/api/workouts/kjxavSTUrJvoAh2wvCeGEF/gpx/download</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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/gpx+xml</span>
</pre></div>
@ -825,21 +821,21 @@ title matching is case-insensitive</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>workout_short_id</strong> (<em>string</em>) workout short id</p></li>
<li><p><strong>workout_short_id</strong> (<em>string</em>) identifiant court de la séance</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> success</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> <code class="docutils literal notranslate"><span class="pre">success</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <ul>
<li><p>workout not found</p></li>
<li><p>no gpx file for workout</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">gpx</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">workout</span></code></p></li>
</ul>
</p></li>
</ul>
@ -850,14 +846,14 @@ title matching is case-insensitive</p>
<dl class="http post">
<dt class="sig sig-object http" id="post--api-workouts">
<span class="sig-name descname"><span class="pre">POST</span> </span><span class="sig-name descname"><span class="pre">/api/workouts</span></span><a class="headerlink" href="#post--api-workouts" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Post a workout with a gpx file.</p>
<dd><p>Créer une séance à partir dun fichier gpx.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:write</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/workouts/</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">multipart/form-data</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">201</span> <span class="ne">CREATED</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -939,34 +935,33 @@ title matching is case-insensitive</p>
<dl class="field-list simple">
<dt class="field-odd">Paramètres de la forme<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>file</strong> gpx file (allowed extensions: .gpx, .zip)</p></li>
<li><p><strong>data</strong> sport id and notes (example: <code class="docutils literal notranslate"><span class="pre">{&quot;sport_id&quot;:</span> <span class="pre">1,</span> <span class="pre">&quot;notes&quot;:</span> <span class="pre">&quot;&quot;}</span></code>).
Double quotes in notes must be escaped.</p></li>
<li><p><strong>file</strong> fichier gpx (extensions autorisées : .gpx, .zip)</p></li>
<li><p><strong>data</strong> lidentifiant du sport et les notes (exemple : <code class="docutils literal notranslate"><span class="pre">{&quot;sport_id&quot;:</span> <span class="pre">1,</span> <span class="pre">&quot;notes&quot;:</span> <span class="pre">&quot;&quot;}</span></code>). Les guillemets doubles dans les notes doivent être échappés.</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a></span> workout created</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a></span> séance créée</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <ul>
<li><p>invalid payload</p></li>
<li><p>no file part</p></li>
<li><p>no selected file</p></li>
<li><p>file extension not allowed</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">file</span> <span class="pre">part</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">selected</span> <span class="pre">file</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">file</span> <span class="pre">extension</span> <span class="pre">not</span> <span class="pre">allowed</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">413 Request Entity Too Large</a></span> error during picture update: file size exceeds 1.0MB</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">413 Request Entity Too Large</a></span> <code class="docutils literal notranslate"><span class="pre">error</span> <span class="pre">during</span> <span class="pre">picture</span> <span class="pre">update:</span> <span class="pre">file</span> <span class="pre">size</span> <span class="pre">exceeds</span> <span class="pre">1.0MB</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -975,14 +970,14 @@ Double quotes in notes must be escaped.</p></li>
<dl class="http post">
<dt class="sig sig-object http" id="post--api-workouts-no_gpx">
<span class="sig-name descname"><span class="pre">POST</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/no_gpx</span></span><a class="headerlink" href="#post--api-workouts-no_gpx" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Post a workout without gpx file.</p>
<dd><p>Créer une séance sans fichier gpx.</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:write</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">POST</span> <span class="nn">/api/workouts/no_gpx</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">201</span> <span class="ne">CREATED</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
@ -1066,33 +1061,31 @@ Double quotes in notes must be escaped.</p></li>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ascent</strong> (<em>float</em>) workout ascent (not mandatory,
must be provided with descent)</p></li>
<li><p><strong>descent</strong> (<em>float</em>) workout descent (not mandatory,
must be provided with ascent)</p></li>
<li><p><strong>distance</strong> (<em>float</em>) workout distance in km</p></li>
<li><p><strong>duration</strong> (<em>integer</em>) workout duration in seconds</p></li>
<li><p><strong>notes</strong> (<em>string</em>) notes (not mandatory)</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) workout sport id</p></li>
<li><p><strong>title</strong> (<em>string</em>) workout title (not mandatory)</p></li>
<li><p><strong>workout_date</strong> (<em>string</em>) workout date, in user timezone
(format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span> <span class="pre">%H:%M</span></code>)</p></li>
<li><p><strong>descent</strong> (<em>float</em>) dénivelé négatif (non obligatoire, à fournir avec le dénivelé positif)</p></li>
<li><p><strong>distance</strong> (<em>float</em>) distance de la séance en km</p></li>
<li><p><strong>duration</strong> (<em>integer</em>) durée de la séance en secondes</p></li>
<li><p><strong>notes</strong> (<em>string</em>) notes (non obligatoire)</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) identifiant du sport de la séance</p></li>
<li><p><strong>title</strong> (<em>string</em>) titre de la séance (non obligatoire)</p></li>
<li><p><strong>workout_date</strong> (<em>string</em>) date de la séance, dans le fuseau horaire de lutilisateur (format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span> <span class="pre">%H:%M</span></code>)</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a></span> workout created</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">201 Created</a></span> séance créée</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1101,14 +1094,14 @@ must be provided with ascent)</p></li>
<dl class="http patch">
<dt class="sig sig-object http" id="patch--api-workouts-(string-workout_short_id)">
<span class="sig-name descname"><span class="pre">PATCH</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">workout_short_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#patch--api-workouts-(string-workout_short_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Update a workout.</p>
<dd><p>Mettre à jour une séance</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:write</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">PATCH</span> <span class="nn">/api/workouts/1</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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>
@ -1190,44 +1183,38 @@ must be provided with ascent)</p></li>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>workout_short_id</strong> (<em>string</em>) workout short id</p></li>
<li><p><strong>workout_short_id</strong> (<em>string</em>) identifiant court de la séance</p></li>
</ul>
</dd>
<dt class="field-even">Objet JSON de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>ascent</strong> (<em>float</em>) workout ascent
(only for workout without gpx, must be provided with descent)</p></li>
<li><p><strong>descent</strong> (<em>float</em>) workout descent
(only for workout without gpx, must be provided with ascent)</p></li>
<li><p><strong>distance</strong> (<em>float</em>) workout distance in km
(only for workout without gpx)</p></li>
<li><p><strong>duration</strong> (<em>integer</em>) workout duration in seconds
(only for workout without gpx)</p></li>
<li><p><strong>ascent</strong> (<em>float</em>) dénivelé positif de la séance (seulement pour les séances sans gpx, doit être fourni avec le dénivelé négatif)</p></li>
<li><p><strong>descent</strong> (<em>float</em>) dénivelé négatif de la séance (seulement pour les séances sans gpx, doit être fourni avec le dénivelé positif)</p></li>
<li><p><strong>distance</strong> (<em>float</em>) distance de la séance en km (seulement pour les séances sans gpx)</p></li>
<li><p><strong>duration</strong> (<em>integer</em>) durée de la séance en secondes (seulement pour les séances sans gpx)</p></li>
<li><p><strong>notes</strong> (<em>string</em>) notes</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) workout sport id</p></li>
<li><p><strong>title</strong> (<em>string</em>) workout title</p></li>
<li><p><strong>workout_date</strong> (<em>string</em>) workout date in user timezone
(format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span> <span class="pre">%H:%M</span></code>)
(only for workout without gpx)</p></li>
<li><p><strong>sport_id</strong> (<em>integer</em>) identifiant du sport de la séance</p></li>
<li><p><strong>title</strong> (<em>string</em>) titre de la séance</p></li>
<li><p><strong>workout_date</strong> (<em>string</em>) date de la séance dans le fuseau horaire de lutilisateur (format: <code class="docutils literal notranslate"><span class="pre">%Y-%m-%d</span> <span class="pre">%H:%M</span></code>) (seulement pour les séances sans gpx)</p></li>
</ul>
</dd>
<dt class="field-odd">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-even">Status Codes<span class="colon">:</span></dt>
<dt class="field-even">Codes détat<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> workout updated</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> invalid payload</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a></span> séance mise à jour</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a></span> <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">payload</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> </p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1236,14 +1223,14 @@ must be provided with ascent)</p></li>
<dl class="http delete">
<dt class="sig sig-object http" id="delete--api-workouts-(string-workout_short_id)">
<span class="sig-name descname"><span class="pre">DELETE</span> </span><span class="sig-name descname"><span class="pre">/api/workouts/</span></span><span class="sig-paren">(</span><em class="property"><span class="pre">string:</span> </em><em class="sig-param"><span class="pre">workout_short_id</span></em><span class="sig-paren">)</span><a class="headerlink" href="#delete--api-workouts-(string-workout_short_id)" title="Lien permanent vers cette définition">#</a></dt>
<dd><p>Delete a workout.</p>
<dd><p>Supprimer la séance</p>
<p><strong>Scope</strong>: <code class="docutils literal notranslate"><span class="pre">workouts:write</span></code></p>
<p><strong>Example request</strong>:</p>
<p><strong>Exemple de requête</strong>:</p>
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="nf">DELETE</span> <span class="nn">/api/workouts/kjxavSTUrJvoAh2wvCeGEF</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
</div>
<p><strong>Example response</strong>:</p>
<p><strong>Exemple de réponse</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">204</span> <span class="ne">NO CONTENT</span>
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
</pre></div>
@ -1251,25 +1238,25 @@ must be provided with ascent)</p></li>
<dl class="field-list simple">
<dt class="field-odd">Paramètres<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>workout_short_id</strong> (<em>string</em>) workout short id</p></li>
<li><p><strong>workout_short_id</strong> (<em>string</em>) identifiant court de la séance</p></li>
</ul>
</dd>
<dt class="field-even">En-têtes de requête<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> OAuth 2.0 Bearer Token</p></li>
<li><p><span><a class="reference external" href="https://www.rfc-editor.org/rfc/rfc7235#section-4.2">Authorization</a></span> Jeton “OAuth 2.0 Bearer”</p></li>
</ul>
</dd>
<dt class="field-odd">Status Codes<span class="colon">:</span></dt>
<dt class="field-odd">Codes détat<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> workout deleted</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">204 No Content</a></span> séance supprimée</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a></span> <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>
<li><p><code class="docutils literal notranslate"><span class="pre">provide</span> <span class="pre">a</span> <span class="pre">valid</span> <span class="pre">auth</span> <span class="pre">token</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">signature</span> <span class="pre">expired,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">token,</span> <span class="pre">please</span> <span class="pre">log</span> <span class="pre">in</span> <span class="pre">again</span></code></p></li>
</ul>
</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> workout not found</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> error, please try again or contact the administrator</p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">404 Not Found</a></span> <code class="docutils literal notranslate"><span class="pre">workout</span> <span class="pre">not</span> <span class="pre">found</span></code></p></li>
<li><p><span><a class="reference external" href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a></span> <code class="docutils literal notranslate"><span class="pre">error,</span> <span class="pre">please</span> <span class="pre">try</span> <span class="pre">again</span> <span class="pre">or</span> <span class="pre">contact</span> <span class="pre">the</span> <span class="pre">administrator</span></code></p></li>
</ul>
</dd>
</dl>
@ -1287,7 +1274,7 @@ must be provided with ascent)</p></li>
<div class="context">
<span>Next</span>
</div>
<div class="title">Troubleshooting</div>
<div class="title">Dépannage</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
@ -1298,7 +1285,7 @@ must be provided with ascent)</p></li>
<span>Previous</span>
</div>
<div class="title">Users</div>
<div class="title">Utilisateurs</div>
</div>
</a>

View File

@ -3,7 +3,7 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="prev" title="Administrator" href="troubleshooting/administrator.html" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="prev" title="Administrateur" href="troubleshooting/administrator.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Change log - Documentation FitTrackee 0.7.17</title>
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Change log</a></li>
@ -696,7 +696,7 @@
<section id="id42">
<h3>Pull Requests<a class="headerlink" href="#id42" title="Lien permanent vers cette rubrique">#</a></h3>
<section id="features">
<h4>Features<a class="headerlink" href="#features" title="Lien permanent vers cette rubrique">#</a></h4>
<h4>Fonctionnalités<a class="headerlink" href="#features" title="Lien permanent vers cette rubrique">#</a></h4>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/pull/223">#223</a> - Display ascent record icon</p></li>
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/pull/167">#167</a> - Added ascent record to Dashboard</p></li>
@ -736,7 +736,7 @@
<section id="id47">
<h3>Issues Closed<a class="headerlink" href="#id47" title="Lien permanent vers cette rubrique">#</a></h3>
<section id="id48">
<h4>Features<a class="headerlink" href="#id48" title="Lien permanent vers cette rubrique">#</a></h4>
<h4>Fonctionnalités<a class="headerlink" href="#id48" title="Lien permanent vers cette rubrique">#</a></h4>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/200">#200</a> - Detect browser language to use matching translation if available</p></li>
</ul>
@ -814,7 +814,7 @@ It reduces pre-requisites for single-user instances.</p>
<section id="id57">
<h3>Issues Closed<a class="headerlink" href="#id57" title="Lien permanent vers cette rubrique">#</a></h3>
<section id="id58">
<h4>Features<a class="headerlink" href="#id58" title="Lien permanent vers cette rubrique">#</a></h4>
<h4>Fonctionnalités<a class="headerlink" href="#id58" title="Lien permanent vers cette rubrique">#</a></h4>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/180">#180</a> - allow using FitTrackee without SMTP server</p></li>
</ul>
@ -885,7 +885,7 @@ It reduces pre-requisites for single-user instances.</p>
<section id="id67">
<h3>Issues Closed<a class="headerlink" href="#id67" title="Lien permanent vers cette rubrique">#</a></h3>
<section id="id68">
<h4>Features<a class="headerlink" href="#id68" title="Lien permanent vers cette rubrique">#</a></h4>
<h4>Fonctionnalités<a class="headerlink" href="#id68" title="Lien permanent vers cette rubrique">#</a></h4>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/155">#155</a> - Improve user registration</p></li>
<li><p><a class="reference external" href="https://github.com/SamR1/FitTrackee/issues/106">#106</a> - Allow user to update email</p></li>
@ -1422,12 +1422,12 @@ add URL interceptors to simplify routes definition</p></li>
<li><p>Account creation (only standard user, not admin)</p></li>
<li><p>6 sports supported:</p>
<ul>
<li><p>Cycling (Sport)</p></li>
<li><p>Cycling (Transport)</p></li>
<li><p>Hiking</p></li>
<li><p>Montain Biking</p></li>
<li><p>Running</p></li>
<li><p>Walking</p></li>
<li><p>Vélo (Sport)</p></li>
<li><p>Vélo (Transport)</p></li>
<li><p>Randonnée</p></li>
<li><p>VTT</p></li>
<li><p>Course à pied</p></li>
<li><p>Marche</p></li>
</ul>
</li>
<li><p>Activity creation by uploading a gpx file. An activity can even be created without gpx (the user must enter date, time, duration and distance)</p></li>
@ -1438,10 +1438,10 @@ add URL interceptors to simplify routes definition</p></li>
<li><p>Current month statistics</p></li>
<li><p>Records by sports:</p>
<ul>
<li><p>average speed</p></li>
<li><p>farest distance</p></li>
<li><p>longest duration</p></li>
<li><p>maximum speed</p></li>
<li><p>vitesse moyenne</p></li>
<li><p>distance la plus grande</p></li>
<li><p>durée la plus longue</p></li>
<li><p>vitesse maximale</p></li>
</ul>
</li>
<li><p>Activities list and search</p></li>
@ -1483,7 +1483,7 @@ add URL interceptors to simplify routes definition</p></li>
<span>Previous</span>
</div>
<div class="title">Administrator</div>
<div class="title">Administrateur</div>
</div>
</a>
@ -1635,7 +1635,7 @@ add URL interceptors to simplify routes definition</p></li>
</ul>
</li>
<li><a class="reference internal" href="#id42">Pull Requests</a><ul>
<li><a class="reference internal" href="#features">Features</a></li>
<li><a class="reference internal" href="#features">Fonctionnalités</a></li>
</ul>
</li>
<li><a class="reference internal" href="#version-0-6-10-2022-07-13">Version 0.6.10 (2022/07/13)</a></li>
@ -1651,7 +1651,7 @@ add URL interceptors to simplify routes definition</p></li>
</li>
<li><a class="reference internal" href="#version-0-6-9-2022-07-03">Version 0.6.9 (2022/07/03)</a><ul>
<li><a class="reference internal" href="#id47">Issues Closed</a><ul>
<li><a class="reference internal" href="#id48">Features</a></li>
<li><a class="reference internal" href="#id48">Fonctionnalités</a></li>
<li><a class="reference internal" href="#id49">Bugs Fixed</a></li>
<li><a class="reference internal" href="#id50">Translations</a></li>
</ul>
@ -1679,7 +1679,7 @@ add URL interceptors to simplify routes definition</p></li>
</li>
<li><a class="reference internal" href="#version-0-6-5-2022-04-24">Version 0.6.5 (2022/04/24)</a><ul>
<li><a class="reference internal" href="#id57">Issues Closed</a><ul>
<li><a class="reference internal" href="#id58">Features</a></li>
<li><a class="reference internal" href="#id58">Fonctionnalités</a></li>
</ul>
</li>
</ul>
@ -1714,7 +1714,7 @@ add URL interceptors to simplify routes definition</p></li>
</li>
<li><a class="reference internal" href="#version-0-6-0-2022-03-27">Version 0.6.0 (2022/03/27)</a><ul>
<li><a class="reference internal" href="#id67">Issues Closed</a><ul>
<li><a class="reference internal" href="#id68">Features</a></li>
<li><a class="reference internal" href="#id68">Fonctionnalités</a></li>
<li><a class="reference internal" href="#id69">Bugs Fixed</a></li>
</ul>
</li>

View File

@ -3,10 +3,10 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="next" title="Third-party tools" href="third_party_tools.html" /><link rel="prev" title="Installation" href="installation.html" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="next" title="Outils tiers" href="third_party_tools.html" /><link rel="prev" title="Installation" href="installation.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Command line interface - Documentation FitTrackee 0.7.17</title>
<title>Interface de ligne de commande - Documentation FitTrackee 0.7.17</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication and account</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a></li>
@ -230,8 +230,8 @@
</div>
<article role="main">
<section id="command-line-interface">
<h1>Command line interface<a class="headerlink" href="#command-line-interface" title="Lien permanent vers cette rubrique">#</a></h1>
<p>A command line interface (CLI) is available to manage database, OAuth2 tokens and users.</p>
<h1>Interface de ligne de commande<a class="headerlink" href="#command-line-interface" title="Lien permanent vers cette rubrique">#</a></h1>
<p>Une interface en ligne de commande (CLI) est disponible pour gérer la base de données, les jetons OAuth2 et les utilisateurs.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>ftcli
Usage:<span class="w"> </span>ftcli<span class="w"> </span><span class="o">[</span>OPTIONS<span class="o">]</span><span class="w"> </span>COMMAND<span class="w"> </span><span class="o">[</span>ARGS<span class="o">]</span>...
@ -249,27 +249,27 @@ Commands:
<div class="admonition warning">
<p class="admonition-title">Avertissement</p>
<div class="line-block">
<div class="line">The following commands are now deprecated and will be removed in a next version:</div>
<div class="line">Les commandes suivantes sont désormais obsolètes et seront supprimées dans une prochaine version :</div>
<div class="line">- <code class="docutils literal notranslate"><span class="pre">fittrackee_set_admin</span></code></div>
<div class="line">- <code class="docutils literal notranslate"><span class="pre">fittrackee_upgrade_db</span></code></div>
<div class="line">- <code class="docutils literal notranslate"><span class="pre">fittrackee_worker</span></code> (disabled)</div>
</div>
</div>
<section id="database">
<h2>Database<a class="headerlink" href="#database" title="Lien permanent vers cette rubrique">#</a></h2>
<h2>Base de données<a class="headerlink" href="#database" title="Lien permanent vers cette rubrique">#</a></h2>
<section id="ftcli-db-drop">
<h3><code class="docutils literal notranslate"><span class="pre">ftcli</span> <span class="pre">db</span> <span class="pre">drop</span></code><a class="headerlink" href="#ftcli-db-drop" title="Lien permanent vers cette rubrique">#</a></h3>
<div class="versionadded">
<p><span class="versionmodified added">Nouveau dans la version 0.6.5.</span></p>
</div>
<p>Empty database and delete uploaded files, only on development environments.</p>
<p>Vider la base de données et supprimer les fichiers téléchargés, uniquement pour les environnements de développement.</p>
</section>
<section id="ftcli-db-upgrade">
<h3><code class="docutils literal notranslate"><span class="pre">ftcli</span> <span class="pre">db</span> <span class="pre">upgrade</span></code><a class="headerlink" href="#ftcli-db-upgrade" title="Lien permanent vers cette rubrique">#</a></h3>
<div class="versionadded">
<p><span class="versionmodified added">Nouveau dans la version 0.6.5.</span></p>
</div>
<p>Apply migrations.</p>
<p>Appliquer les migrations</p>
</section>
</section>
<section id="oauth2">
@ -279,7 +279,7 @@ Commands:
<div class="versionadded">
<p><span class="versionmodified added">Nouveau dans la version 0.7.0.</span></p>
</div>
<p>Remove tokens expired for more than provided number of days</p>
<p>Supprimer les jetons expirés depuis plus dun certain nombre de jours</p>
<div class="table-wrapper colwidths-given table-bordered docutils container">
<table class="table-bordered docutils align-default">
<colgroup>
@ -293,7 +293,7 @@ Commands:
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--days</span></code></p></td>
<td><p>Number of days.</p></td>
<td><p>Nombre de jours.</p></td>
</tr>
</tbody>
</table>
@ -301,13 +301,13 @@ Commands:
</section>
</section>
<section id="users">
<h2>Users<a class="headerlink" href="#users" title="Lien permanent vers cette rubrique">#</a></h2>
<h2>Utilisateurs<a class="headerlink" href="#users" title="Lien permanent vers cette rubrique">#</a></h2>
<section id="ftcli-users-clean-archives">
<h3><code class="docutils literal notranslate"><span class="pre">ftcli</span> <span class="pre">users</span> <span class="pre">clean_archives</span></code><a class="headerlink" href="#ftcli-users-clean-archives" title="Lien permanent vers cette rubrique">#</a></h3>
<div class="versionadded">
<p><span class="versionmodified added">Nouveau dans la version 0.7.13.</span></p>
</div>
<p>Delete export requests and related archives created more than provided number of days.</p>
<p>Supprimer les demandes dexport et les archives associées créées depuis plus dun certain nombre de jours.</p>
<div class="table-wrapper colwidths-given table-bordered docutils container">
<table class="table-bordered docutils align-default">
<colgroup>
@ -321,7 +321,7 @@ Commands:
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--days</span></code></p></td>
<td><p>Number of days.</p></td>
<td><p>Nombre de jours.</p></td>
</tr>
</tbody>
</table>
@ -332,7 +332,7 @@ Commands:
<div class="versionadded">
<p><span class="versionmodified added">Nouveau dans la version 0.7.0.</span></p>
</div>
<p>Remove blacklisted tokens expired for more than provided number of days.</p>
<p>Supprimer les jetons de la liste noire expirés depuis plus dun certain nombre de jours.</p>
<div class="table-wrapper colwidths-given table-bordered docutils container">
<table class="table-bordered docutils align-default">
<colgroup>
@ -346,7 +346,7 @@ Commands:
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--days</span></code></p></td>
<td><p>Number of days.</p></td>
<td><p>Nombre de jours.</p></td>
</tr>
</tbody>
</table>
@ -357,12 +357,12 @@ Commands:
<div class="versionadded">
<p><span class="versionmodified added">Nouveau dans la version 0.7.15.</span></p>
</div>
<p>Create a user account.</p>
<p>Créer un compte utilisateur.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<ul class="simple">
<li><p>the newly created account is already active.</p></li>
<li><p>the CLI allows to create users when registration is disabled.</p></li>
<li><p>le compte nouvellement créé est déjà actif.</p></li>
<li><p>le CLI permet de créer des utilisateurs lorsque lenregistrement est désactivé.</p></li>
</ul>
</div>
<div class="table-wrapper colwidths-given table-bordered docutils container">
@ -378,13 +378,13 @@ Commands:
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">USERNAME</span></code></p></td>
<td><p>Username.</p></td>
<td><p>Nom de lutilisateur</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">--email</span> <span class="pre">EMAIL</span></code></p></td>
<td><p>User email (mandatory).</p></td>
<td><p>adresse électronique de lutilisateur.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--password</span> <span class="pre">PASSWORD</span></code></p></td>
<td><p>User password (if not provided, a random password is generated).</p></td>
<td><p>Mot de passe de lutilisateur (sil nest pas fourni, un mot de passe aléatoire est généré).</p></td>
</tr>
</tbody>
</table>
@ -395,8 +395,7 @@ Commands:
<div class="versionadded">
<p><span class="versionmodified added">Nouveau dans la version 0.7.13.</span></p>
</div>
<p>Process incomplete user export requests.
Can be used if redis is not set (no dramatiq workers running).</p>
<p>Traite les demandes dexport des données utilisateurs incomplètes. Peut être utilisé si redis nest pas activé (pas de <em>workers*</em> dramatiq en cours dexécution).</p>
<div class="table-wrapper colwidths-given table-bordered docutils container">
<table class="table-bordered docutils align-default">
<colgroup>
@ -410,7 +409,7 @@ Can be used if redis is not set (no dramatiq workers running).</p>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--max</span></code></p></td>
<td><p>Maximum number of export requests to process.</p></td>
<td><p>Nombre maximal de demandes dexport à traiter.</p></td>
</tr>
</tbody>
</table>
@ -421,7 +420,7 @@ Can be used if redis is not set (no dramatiq workers running).</p>
<div class="versionadded">
<p><span class="versionmodified added">Nouveau dans la version 0.6.5.</span></p>
</div>
<p>Modify a user account (admin rights, active status, email and password).</p>
<p>Modifier le compte dun utilisateur (droits dadministration, statut actif, email et mot de passe).</p>
<div class="table-wrapper colwidths-given table-bordered docutils container">
<table class="table-bordered docutils align-default">
<colgroup>
@ -435,19 +434,19 @@ Can be used if redis is not set (no dramatiq workers running).</p>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">USERNAME</span></code></p></td>
<td><p>Username.</p></td>
<td><p>Nom de lutilisateur</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">--set-admin</span> <span class="pre">BOOLEAN</span></code></p></td>
<td><p>Add/remove admin rights (when adding admin rights, it also activates user account if not active).</p></td>
<td><p>Ajouter/supprimer des droits dadministration (lors de lajout de droits dadministration, le compte de lutilisateur est également activé sil ne lest pas.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--activate</span></code></p></td>
<td><p>Activate user account.</p></td>
<td><p>Activer le compte dun utilisateur.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">--reset-password</span></code></p></td>
<td><p>Reset user password (a new password will be displayed).</p></td>
<td><p>Réinitialiser le mot de passe de lutilisateur (un nouveau mot de passe sera affiché).</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--update-email</span> <span class="pre">EMAIL</span></code></p></td>
<td><p>Update user email.</p></td>
<td><p>Mettre à jour ladresse électronique de lutilisateur.</p></td>
</tr>
</tbody>
</table>
@ -466,7 +465,7 @@ Can be used if redis is not set (no dramatiq workers running).</p>
<div class="context">
<span>Next</span>
</div>
<div class="title">Third-party tools</div>
<div class="title">Outils tiers</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
@ -515,8 +514,8 @@ Can be used if redis is not set (no dramatiq workers running).</p>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Command line interface</a><ul>
<li><a class="reference internal" href="#database">Database</a><ul>
<li><a class="reference internal" href="#">Interface de ligne de commande</a><ul>
<li><a class="reference internal" href="#database">Base de données</a><ul>
<li><a class="reference internal" href="#ftcli-db-drop"><code class="docutils literal notranslate"><span class="pre">ftcli</span> <span class="pre">db</span> <span class="pre">drop</span></code></a></li>
<li><a class="reference internal" href="#ftcli-db-upgrade"><code class="docutils literal notranslate"><span class="pre">ftcli</span> <span class="pre">db</span> <span class="pre">upgrade</span></code></a></li>
</ul>
@ -525,7 +524,7 @@ Can be used if redis is not set (no dramatiq workers running).</p>
<li><a class="reference internal" href="#ftcli-oauth2-clean"><code class="docutils literal notranslate"><span class="pre">ftcli</span> <span class="pre">oauth2</span> <span class="pre">clean</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#users">Users</a><ul>
<li><a class="reference internal" href="#users">Utilisateurs</a><ul>
<li><a class="reference internal" href="#ftcli-users-clean-archives"><code class="docutils literal notranslate"><span class="pre">ftcli</span> <span class="pre">users</span> <span class="pre">clean_archives</span></code></a></li>
<li><a class="reference internal" href="#ftcli-users-clean-tokens"><code class="docutils literal notranslate"><span class="pre">ftcli</span> <span class="pre">users</span> <span class="pre">clean_tokens</span></code></a></li>
<li><a class="reference internal" href="#ftcli-users-create"><code class="docutils literal notranslate"><span class="pre">ftcli</span> <span class="pre">users</span> <span class="pre">create</span></code></a></li>

View File

@ -6,7 +6,7 @@
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="next" title="OAuth 2.0" href="oauth.html" /><link rel="prev" title="FitTrackee" href="index.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Features - Documentation FitTrackee 0.7.17</title>
<title>Fonctionnalités - Documentation FitTrackee 0.7.17</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Features</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a></li>
@ -230,44 +230,44 @@
</div>
<article role="main">
<section id="features">
<h1>Features<a class="headerlink" href="#features" title="Lien permanent vers cette rubrique">#</a></h1>
<h1>Fonctionnalités<a class="headerlink" href="#features" title="Lien permanent vers cette rubrique">#</a></h1>
<div class="line-block">
<div class="line"><strong>FitTrackee</strong> allows you to store and display gpx files and some statistics from your outdoor activities.</div>
<div class="line">For now, this app is kind of a single-user application. Even if several users can register, a user can only view his own workouts.</div>
<div class="line"><strong>Fitrackee</strong> vous permet de stocker et dafficher les données issues des fichiers .gpx et quelques statistiques à partir de vos activités en plein air.</div>
<div class="line">Pour le moment, lapplication est plutôt une application mono-utilisateur. Même sil est possible pour plusieurs utilisateurs de senregistrer, un utilisateur ne peut voir que ses propres séances.</div>
</div>
<p>Gpx files are stored in an upload directory (without encryption).</p>
<p>With the default configuration, <a class="reference external" href="https://www.openstreetmap.org">Open Street Map</a> is used as tile server in Workout detail and for static map generation.</p>
<p>Les fichier .gpx sont stockés dans un répertoire du serveur (sans aucun chiffrement).</p>
<p>Avec la configuration par défaut, <a class="reference external" href="https://www.openstreetmap.org">Open Street Map</a> est utilisé comme serveur de tuile sur la page de détail de la séance et pour la génération des images statiques des traces.</p>
<section id="workouts">
<h2>Workouts<a class="headerlink" href="#workouts" title="Lien permanent vers cette rubrique">#</a></h2>
<h2>Séances<a class="headerlink" href="#workouts" title="Lien permanent vers cette rubrique">#</a></h2>
<ul class="simple">
<li><dl class="simple">
<dt>14 sports are supported:</dt><dd><ul>
<li><p>Cycling (Sport)</p></li>
<li><p>Cycling (Transport)</p></li>
<li><p>Cycling (Virtual) (<em>new in 0.7.3</em>)</p></li>
<li><p>Hiking</p></li>
<li><p>Mountain Biking</p></li>
<li><p>Mountain Biking (Electric) (<em>new in 0.5.0</em>)</p></li>
<li><p>Mountaineering (<em>new in 0.7.9</em>)</p></li>
<li><p>Rowing (<em>new in 0.5.0</em>)</p></li>
<li><p>Running</p></li>
<li><p>Skiing (Alpine) (<em>new in 0.5.0</em>)</p></li>
<li><p>Skiing (Cross Country) (<em>new in 0.5.0</em>)</p></li>
<li><p>Snowshoes (<em>new in 0.5.2</em>)</p></li>
<li><p>Trail (<em>new in 0.5.0</em>)</p></li>
<li><p>Walking</p></li>
<dt>14 sports sont pris en charge:</dt><dd><ul>
<li><p>Vélo (Sport)</p></li>
<li><p>Vélo (Transport)</p></li>
<li><p>Vélo (Virtuel) (<em>nouveau dans la version 0.7.3</em>)</p></li>
<li><p>Randonnée</p></li>
<li><p>VTT</p></li>
<li><p>VTT (Electrique) (<em>nouveau dans la version in 0.5.0</em>)</p></li>
<li><p>Alpinisme (<em>nouveau dans la version 0.7.9</em>)</p></li>
<li><p>Aviron (<em>nouveau dans la version 0.5.0</em>)</p></li>
<li><p>Course à pied</p></li>
<li><p>Ski (Alpin) (<em>nouveau dans la version 0.5.0</em>)</p></li>
<li><p>Ski (Randonnée) (<em>nouveau dans la version 0.5.0</em>)</p></li>
<li><p>Raquettes (<em>nouveau dans la version 0.5.2</em>)</p></li>
<li><p>Trail (<em>nouveau dans la version 0.5.0</em>)</p></li>
<li><p>Marche</p></li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>(<em>new in 0.5.0</em>) Stopped speed threshold used by <a class="reference external" href="https://github.com/tkrajina/gpxpy">gpxpy</a> is not the default one for the following sports (0.1 km/h instead of 1 km/h):</dt><dd><ul>
<li><p>Hiking</p></li>
<li><p>Mountaineering</p></li>
<li><p>Skiing (Cross Country)</p></li>
<li><p>Snowshoes</p></li>
<dt>(<em>nouveau dans la version in 0.5.0</em>) Le seuil de vitesse arrêté utilisé par <a class="reference external" href="https://github.com/tkrajina/gpxpy">gpxpy</a> nest plus la valeur par défaut pour sports suivants (0.1 km/h au lieu de 1 km/h):</dt><dd><ul>
<li><p>Randonnée</p></li>
<li><p>Alpinisme</p></li>
<li><p>Ski (Randonnée)</p></li>
<li><p>Raquettes</p></li>
<li><p>Trail</p></li>
<li><p>Walking</p></li>
<li><p>Marche</p></li>
</ul>
</dd>
</dl>
@ -275,57 +275,57 @@
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>It can be overridden in user preferences.</p>
<p>Elle peut être remplacée dans les préférences de lutilisateur.</p>
</div>
<ul class="simple">
<li><p>Dashboard with month calendar displaying workouts and record. The week can start on Sunday or Monday (which can be changed in the user preferences). The calendar displays up to 100 workouts.</p></li>
<li><p>Workout creation by uploading a gpx file (related data are stored in database in metric system).</p></li>
<li><p>Tableau de bord avec le calendrier mensuel affichant les séances et les records. La semaine peut commencer le dimanche ou le lundi (ce qui peut être modifié dans les préférences de lutilisateur). Le calendrier affiche jusquà 100 séances.</p></li>
<li><p>Création dune séance en téléversant un fichier gpx (les données associées sont stockées dans la base de données dans le système métrique).</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<div class="line-block">
<div class="line">Only gpx files with time are supported.</div>
<div class="line">Calculated values may differ from values calculated by the application that originally generated the gpx files, in particular the maximum speed.</div>
<div class="line">Seuls les fichiers gpx avec lheure sont pris en charge</div>
<div class="line">Les valeurs calculées peuvent différer de celles calculées par lapplication qui a généré les fichiers gpx à lorigine, en particulier la vitesse maximale.</div>
</div>
</div>
<ul>
<li><div class="line-block">
<div class="line">A workout can even be created without gpx (the user must enter date, time, duration and distance).</div>
<div class="line">Ascent and descent can also be provided (<em>new in 0.7.10</em>).</div>
<div class="line">Une séance peut même être créée sans fichier gpx (lutilisateur doit entrer la date, lheure, la durée et la distance).</div>
<div class="line">Les dénivelés positif et négatif peuvent être également fournis (<em>nouveau dans la version 0.7.10</em>).</div>
</div>
</li>
<li><div class="line-block">
<div class="line">A workout with a gpx file can be displayed with map and charts (speed and elevation).</div>
<div class="line">Controls allow full screen view and position reset (<em>new in 0.5.5</em>).</div>
<div class="line">Une séance avec un fichier gpx est affichée avec une carte et des graphiques (vitesse et élévation).</div>
<div class="line">Des boutons permettent une visualisation en plein écran et la réinitialisation de la position (<em>nouveau dans la version 0.5.5</em>).</div>
</div>
</li>
<li><div class="line-block">
<div class="line">If <strong>Visual Crossing</strong> (<em>new in 0.7.11</em>) API key is provided, weather is displayed in workout detail. Data source is displayed in <strong>About</strong> page.</div>
<div class="line">Wind is displayed, with an arrow indicating the direction (a tooltip can be displayed with the direction that the wind is coming <strong>from</strong>) (<em>new in 0.5.5</em>).</div>
<div class="line">Si la clé dAPI de <strong>Visual Crossing</strong> (<em>nouveau in 0.7.11</em>) est fournie, la météo est affichée dans les détails de lentraînement. La source des données est affichée dans la page <strong>A propos</strong>.</div>
<div class="line">La vitesse du vent est affichée, avec une flèche indiquant la direction (une infobulle peut être affichée avec la direction (provenance du vent)) (<em>nouveau dans la version 0.5.5</em>).</div>
</div>
</li>
<li><p>Segments can be displayed.</p></li>
<li><p>Workout gpx file can be downloaded (<em>new in 0.5.1</em>)</p></li>
<li><p>Workout edition and deletion. User can add a note.</p></li>
<li><p>Les segments peuvent être affichés.</p></li>
<li><p>Le fichier gpx peut être téléchargé (<em>nouveau dans la version 0.5.1</em>)</p></li>
<li><p>Edition et suppression dune séance. Lutilisateur peut ajouter une note.</p></li>
<li><dl class="simple">
<dt>User statistics, by time period (week, month, year) and sport:</dt><dd><ul class="simple">
<li><p>total distance</p></li>
<li><p>total duration</p></li>
<li><p>total workouts</p></li>
<li><p>total ascent (<em>new in 0.5.0</em>)</p></li>
<li><p>total descent (<em>new in 0.5.0</em>)</p></li>
<li><p>average speed (<em>new in 0.5.1</em>)</p></li>
<dt>Statistiques pour lutilisateur, par période (semaine, mois, année) et par sport :</dt><dd><ul class="simple">
<li><p>distance totale</p></li>
<li><p>durée totale</p></li>
<li><p>nombre total de séances</p></li>
<li><p>dénivelé positif total (<em>nouveau dans la version 0.5.0</em>)</p></li>
<li><p>dénivelé négatif total (<em>nouveau dans la version 0.5.0</em>)</p></li>
<li><p>vitesse moyenne (<em>nouveau dans la version 0.5.1</em>)</p></li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>User records by sports:</dt><dd><ul class="simple">
<li><p>average speed</p></li>
<li><p>farthest distance</p></li>
<li><p>highest ascent (<em>new in 0.6.11</em>, can be hidden, see user preferences)</p></li>
<li><p>longest duration</p></li>
<li><p>maximum speed</p></li>
<dt>Records de lutilisateur par sports :</dt><dd><ul class="simple">
<li><p>vitesse moyenne</p></li>
<li><p>la plus grande distance</p></li>
<li><p>dénivelé positif le plus élevé (<em>nouveau dans la version 0.6.11</em>, peut être masqué, cf. préférences utilisateur)</p></li>
<li><p>durée la plus longue</p></li>
<li><p>vitesse maximale</p></li>
</ul>
</dd>
</dl>
@ -333,30 +333,30 @@
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Records may differ from records displayed by the application that originally generated the gpx files.</p>
<p>Les records peuvent différer des records affichés par lapplication qui a généré les fichiers gpx à lorigine.</p>
</div>
<ul class="simple">
<li><dl class="simple">
<dt>Workouts list.</dt><dd><ul>
<dt>Liste des séances.</dt><dd><ul>
<li><dl class="simple">
<dt>The user can filter workouts on:</dt><dd><ul>
<li><p>date</p></li>
<li><p>sports (only sports with workouts are displayed in sport dropdown)</p></li>
<li><p>title (<em>new in 0.7.15</em>)</p></li>
<li><p>distance</p></li>
<li><p>duration</p></li>
<li><p>average speed</p></li>
<li><p>maximum speed</p></li>
<dt>Lutilisateur peut filtrer les séances selon :</dt><dd><ul>
<li><p>la date</p></li>
<li><p>le sport (seuls les sports comportant des séances sont affichées dans la liste déroulante)</p></li>
<li><p>le titre (<em>nouveau dans la version 0.7.15</em>)</p></li>
<li><p>la distance</p></li>
<li><p>la durée</p></li>
<li><p>vitesse moyenne</p></li>
<li><p>vitesse maximale</p></li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>Workouts can be sorted by:</dt><dd><ul>
<li><p>date</p></li>
<li><p>distance</p></li>
<li><p>duration</p></li>
<li><p>average speed</p></li>
<dt>Les séances peuvent être triées par :</dt><dd><ul>
<li><p>la date</p></li>
<li><p>la distance</p></li>
<li><p>la durée</p></li>
<li><p>vitesse moyenne</p></li>
</ul>
</dd>
</dl>
@ -368,42 +368,41 @@
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>For now, only the owner of the workout can see it.</p>
<p>Pour linstant, seul le propriétaire de la séance peut la voir.</p>
</div>
</section>
<section id="account-preferences">
<h2>Account &amp; preferences<a class="headerlink" href="#account-preferences" title="Lien permanent vers cette rubrique">#</a></h2>
<h2>Compte et préférences<a class="headerlink" href="#account-preferences" title="Lien permanent vers cette rubrique">#</a></h2>
<ul class="simple">
<li><p>A user can create, update and deleted his account.</p></li>
<li><p>The user must agree to the privacy policy to register. If a more recent policy is available, a message is displayed on the dashboard to review the new version (<em>new in 0.7.13</em>).</p></li>
<li><p>On registration, the user account is created with selected language in dropdown as user preference (<em>new in 0.6.9</em>).</p></li>
<li><p>After registration, the user account is inactive and an email with confirmation instructions is sent to activate it.
A user with an inactive account cannot log in. (<em>new in 0.6.0</em>).</p></li>
<li><p>Un utilisateur peut créer, modifier et supprimer son compte.</p></li>
<li><p>Lutilisateur doit accepter la politique de confidentialité pour sinscrire. Si une politique plus récente est disponible, un message saffiche sur le tableau de bord pour consulter la nouvelle version (<em>nouveau dans la version 0.7.13</em>).</p></li>
<li><p>Lors de linscription, la langue sélectionnée dans le menu déroulant est enregistrée comme préférence de lutilisateur (<em>nouveauté dans la version 0.6.9</em>).</p></li>
<li><p>Après lenregistrement, le compte dutilisateur est inactif et un courriel contenant des instructions de confirmation est envoyé pour lactiver. Un utilisateur dont le compte est inactif ne peut pas se connecter (<em>nouveauté dans la version 0.6.0</em>).</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>In case email sending is not configured, a <a class="reference external" href="cli.html#ftcli-users-update">command line</a> allows to activate users account.</p>
<p>Dans le cas où lenvoi des courriles nest pas configuré, une <a class="reference external" href="cli.html#ftcli-users-update">interface de ligne de commande</a> permet dactiver le compte des utilisateurs.</p>
</div>
<ul class="simple">
<li><p>A user can set language, timezone and first day of week.</p></li>
<li><p>A user can reset his password (<em>new in 0.3.0</em>)</p></li>
<li><p>A user can change his email address (<em>new in 0.6.0</em>)</p></li>
<li><p>A user can choose between metric system and imperial system for distance, elevation and speed display (<em>new in 0.5.0</em>)</p></li>
<li><p>A user can choose to display or hide ascent records and total on Dashboard (<em>new in 0.6.11</em>)</p></li>
<li><p>A user can choose format used to display dates (<em>new in 0.7.3</em>)</p></li>
<li><p>A user can choose elevation chart axis start: zero or minimum altitude (<em>new in 0.7.15</em>)</p></li>
<li><p>A user can choose to exclude extreme values (which may be GPS errors) when calculating the maximum speed (by default, extreme values are excluded) (<em>new in 0.7.16</em>)</p></li>
<li><p>Lutilisateur peut définir la langue, le fuseau horaire et le premier jour de la semaine.</p></li>
<li><p>Lutilisateur peut réinitialiser son mot de passe (<em>nouveau dans la version in 0.3.0</em>)</p></li>
<li><p>Un utilisateur peut modifier son adresse électronique (<em>nouveau dans la version 0.6.0</em>)</p></li>
<li><p>Lutilisateur peut choisir entre le système métrique et le système impérial pour la distance, laffichage de laltitude et de la vitesse (<em>nouveau dans la version 0.5.0</em>).</p></li>
<li><p>Un utilisateur peut choisir dafficher ou cacher les records et le total de dénivelé positif sur le tableau de bord (<em>nouveau dans la version 0.6.11</em>)</p></li>
<li><p>Lutilisateur peut choisir le format daffichage des dates (<em>nouveau dans la version 0.7.3</em>)</p></li>
<li><p>Lutilisateur peut choisir le point de départ de laxe du graphique daltitude : altitude zéro ou minimale. (<em>nouveau dans la version 0.7.15</em>)</p></li>
<li><p>Un utilisateur peut choisir dexclure les valeurs extrêmes (qui peuvent être des erreurs GPS) lors du calcul de la vitesse maximale (par défaut, les valeurs extrêmes sont exclues) (<em>nouveau dans la version 0.7.16</em>)</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Changing this preference will only affect next file uploads.</p>
<p>La modification de cette préférence naffectera que les prochains fichiers ajoutés.</p>
</div>
<ul class="simple">
<li><dl class="simple">
<dt>A user can set sport preferences (<em>new in 0.5.0</em>):</dt><dd><ul>
<li><p>change sport color (used for sport image and charts)</p></li>
<li><p>can override stopped speed threshold (for next uploaded gpx files)</p></li>
<li><p>disable/enable a sport.</p></li>
<dt>Un utilisateur peut définir des préférences en matière de sport (<em>nouveau dans la version 0.5.0</em>):</dt><dd><ul>
<li><p>changer la couleur du sport (utilisée pour limage du sport et les graphiques)</p></li>
<li><p>modifier le seuil de vitesse darrêt (pour les prochains fichiers gpx ajoutés)</p></li>
<li><p>désactiver/activer un sport.</p></li>
</ul>
</dd>
</dl>
@ -412,139 +411,139 @@ A user with an inactive account cannot log in. (<em>new in 0.6.0</em>).</p></li>
<div class="admonition note">
<p class="admonition-title">Note</p>
<div class="line-block">
<div class="line">If a sport is disabled by an administrator, it can not be enabled by a user. In this case, it will only appear in preferences if the user has workouts and only sport color can be changed.</div>
<div class="line">A disabled sport (by admin or user) will not appear in dropdown when <strong>adding a workout</strong>.</div>
<div class="line">A workout with a disabled sport will still be displayed in the application.</div>
<div class="line">Si un sport est désactivé par un administrateur, il ne peut pas être activé par un utilisateur. Dans ce cas, il napparaîtra dans les préférences que si lutilisateur a des séances et seule la couleur du sport peut être modifiée.</div>
<div class="line">Un sport désactivé (par ladministrateur ou lutilisateur) napparaîtra pas dans la liste lors de l'<strong>ajout dune séance</strong>.</div>
<div class="line">Une séance avec un sport désactivé sera toujours affichée dans lapplication.</div>
</div>
</div>
<ul>
<li><p>A user can create <a class="reference external" href="apps.html">clients</a> for third-party applications (<em>new in 0.7.0</em>).</p></li>
<li><p>Un utilisateur peut créer des <a class="reference external" href="apps.html">clients</a> pour des applications tierces (<em>nouveau dans la version 0.7.0</em>).</p></li>
<li><div class="line-block">
<div class="line">A user can request a data export (<em>new in 0.7.13</em>).</div>
<div class="line">It generates a zip archive containing 2 <code class="docutils literal notranslate"><span class="pre">json</span></code> files (user info and workouts data) and all uploaded gpx files.</div>
<div class="line">Un utilisateur peut demander un export de données (<em>nouveau dans la version 0.7.13</em>).</div>
<div class="line">Une archive zip sera générée, contenant 2 fichiers <code class="docutils literal notranslate"><span class="pre">json</span></code> (informations de lutilisateur et données des séances) et tous les fichiers gpx ajoutée.</div>
</div>
</li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>For now, its not possible to import these files into another <strong>FitTrackee</strong> instance.</p>
<p>Pour linstant, il nest pas possible dimporter ces fichiers sur une autre instance de <strong>FitTrackee</strong>.</p>
</div>
</section>
<section id="administration">
<h2>Administration<a class="headerlink" href="#administration" title="Lien permanent vers cette rubrique">#</a></h2>
<p>(<em>new in 0.3.0</em>)</p>
<p>(<em>nouveau dans la version 0.3.0</em>)</p>
<section id="application">
<h3>Application<a class="headerlink" href="#application" title="Lien permanent vers cette rubrique">#</a></h3>
<p><strong>Configuration</strong></p>
<p>The following parameters can be set:</p>
<p>Les paramètres suivants peuvent être définis :</p>
<ul class="simple">
<li><p>active users limit. If 0, registration is enabled (no limit defined).</p></li>
<li><p>maximum size of gpx file (individually uploaded or in a zip archive) (<em>changed in 0.7.4</em>)</p></li>
<li><p>maximum size of zip archive</p></li>
<li><p>maximum number of files in the zip archive (<em>changed in 0.7.4</em>)</p></li>
<li><p>administrator email for contact (<em>new in 0.6.0</em>)</p></li>
<li><p>limite des utilisateurs actifs. Sil est égal à 0, linscription est activée (aucune limite nest définie).</p></li>
<li><p>taille maximale du fichier gpx (ajouté unitairement ou dans une archive zip) (<em>modifié dans la version 0.7.4</em>)</p></li>
<li><p>taille maximale de larchive zip</p></li>
<li><p>nombre maximum de fichiers dans larchive zip (<em>modifié dans la version 0.7.4</em>)</p></li>
<li><p>adresse électronique pour contacter ladministrateur (<em>nouveau dans la version 0.6.0</em>)</p></li>
</ul>
<div class="admonition warning">
<p class="admonition-title">Avertissement</p>
<p>Updating server configuration may be necessary to handle large files (like <a class="reference external" href="https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size">nginx</a> for instance).</p>
<p>La mise à jour de la configuration du serveur peut être nécessaire pour gérer des fichiers volumineux (comme <a class="reference external" href="https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size">nginx</a> par exemple).</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If email sending is disabled, a warning is displayed.</p>
<p>Si lenvoi de courriel est désactivé, un avertissement saffiche.</p>
</div>
<p><strong>About</strong></p>
<p>(<em>new in 0.7.13</em>)</p>
<p><strong>A propos</strong></p>
<p>(<em>nouveau dans la version 0.7.13</em>)</p>
<div class="line-block">
<div class="line">It is possible displayed additional information that may be useful to users in <strong>About</strong> page.</div>
<div class="line">Markdown syntax can be used.</div>
<div class="line">Il est possible dafficher des informations supplémentaires qui peuvent être utiles aux utilisateurs dans la page <strong>A propos</strong>.</div>
<div class="line">La syntaxe Markdown peut être utilisée.</div>
</div>
<p><strong>Privacy policy</strong></p>
<p>(<em>new in 0.7.13</em>)</p>
<p><strong>Politique de confidentialité</strong></p>
<p>(<em>nouveau dans la version 0.7.13</em>)</p>
<div class="line-block">
<div class="line">A default privacy policy is available (originally adapted from the <a class="reference external" href="https://github.com/discourse/discourse">Discourse</a> privacy policy).</div>
<div class="line">A custom privacy policy can set if needed (Markdown syntax can be used). A policy update will display a message on users dashboard to review it.</div>
<div class="line">Une politique de confidentialité par défaut est disponible (adaptée de la <a class="reference external" href="https://github.com/discourse/discourse">Politique de confidentialité de Discourse</a>).</div>
<div class="line">Une politique de confidentialité personnalisée peut être définie si nécessaire (la syntaxe Markdown peut être utilisée). Une mise à jour de la politique affichera un message sur le tableau de bord des utilisateurs pour quils puissent en prendre connaissance.</div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Only the default privacy policy is translated (if the translation is available).</p>
<p>Seule la politique de confidentialité par défaut est traduite (si la traduction est disponible).</p>
</div>
</section>
<section id="users">
<h3>Users<a class="headerlink" href="#users" title="Lien permanent vers cette rubrique">#</a></h3>
<h3>Utilisateurs<a class="headerlink" href="#users" title="Lien permanent vers cette rubrique">#</a></h3>
<ul class="simple">
<li><p>display and filter users list</p></li>
<li><p>edit a user to:</p>
<li><p>afficher et filtrer la liste des utilisateurs</p></li>
<li><p>modifier le compte dun utilisateur pour :</p>
<ul>
<li><p>add/remove administration rights</p></li>
<li><p>activate his account (<em>new in 0.6.0</em>)</p></li>
<li><p>update his email (in case his account is locked) (<em>new in 0.6.0</em>)</p></li>
<li><p>reset his password (in case his account is locked) (<em>new in 0.6.0</em>). If email sending is disabled, it is only possible via CLI.</p></li>
<li><p>ajouter/supprimer des droits dadministration</p></li>
<li><p>activer son compte (<em>nouveau dans la version 0.6.0</em>)</p></li>
<li><p>mettre à jour son adresse électronique (au cas où son compte serait bloqué) (<em>nouveau dans la version 0.6.0</em>)</p></li>
<li><p>réinitialiser son mot de passe (dans le cas où son compte est verrouillé) (<em>nouveau dans la version 0.6.0</em>). Si lenvoi des courriels est désactivé, cela nest possible que via linterface de lignes de commande (CLI).</p></li>
</ul>
</li>
<li><p>delete a user</p></li>
<li><p>supprimer le compte dun utilisateur</p></li>
</ul>
</section>
<section id="sports">
<h3>Sports<a class="headerlink" href="#sports" title="Lien permanent vers cette rubrique">#</a></h3>
<ul class="simple">
<li><p>enable or disable a sport (a sport can be disabled even if workout with this sport exists)</p></li>
<li><p>activer ou désactiver un sport (un sport peut être désactivé même si une séance avec ce sport existe)</p></li>
</ul>
</section>
</section>
<section id="translations">
<h2>Translations<a class="headerlink" href="#translations" title="Lien permanent vers cette rubrique">#</a></h2>
<p>FitTrackee is available in the following languages (which can be saved in the user preferences):</p>
<p>FitTrackee est disponible dans les langues suivantes (la langue peut être enregistrée dans les préférences de lutilisateur) :</p>
<ul class="simple">
<li><p>English</p></li>
<li><p>French (<em>new in 0.2.3</em>)</p></li>
<li><p>German (<em>new in 0.6.9</em>)</p></li>
<li><p>Dutch (<em>new in 0.7.8</em>)</p></li>
<li><p>Italian (<em>new in 0.7.10</em>)</p></li>
<li><p>Galician (<em>new in 0.7.15</em>)</p></li>
<li><p>Spanish (<em>new in 0.7.15</em>)</p></li>
<li><p>Norwegian Bokmål (<em>new in 0.7.15</em>)</p></li>
<li><p>Anglais</p></li>
<li><p>Français (<em>nouveau dans la version 0.2.3</em>)</p></li>
<li><p>Allemand (<em>nouveau dans la version 0.6.9</em>)</p></li>
<li><p>Néerlandais (<em>nouveau dans la version 0.7.8</em>)</p></li>
<li><p>Italien (<em>nouveau dans la version 0.7.10</em>)</p></li>
<li><p>Galicien (<em>nouveau dans la version 0.7.15</em>)</p></li>
<li><p>Espagnol (<em>nouveau dans la version 0.7.15</em>)</p></li>
<li><p>Norvégien (Bokmål) (<em>nouveau dans la version 0.7.15</em>)</p></li>
</ul>
<p>Translations status on <a class="reference external" href="https://hosted.weblate.org/engage/fittrackee/">Weblate</a> (may differ from the released version):</p>
<p>Etat davancement de la traduction sur <a class="reference external" href="https://hosted.weblate.org/engage/fittrackee/">Weblate</a> (peut différer de la version publiée):</p>
<figure class="align-default">
<img alt="https://hosted.weblate.org/widgets/fittrackee/-/multi-auto.svg" src="https://hosted.weblate.org/widgets/fittrackee/-/multi-auto.svg" /></figure>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Polish is not yet available in <strong>FitTrackee</strong> interface.</p>
<p>Le polonais nest pas encore disponible dans linterface de <strong>FitTrackee</strong></p>
</div>
</section>
<section id="screenshots">
<h2>Screenshots<a class="headerlink" href="#screenshots" title="Lien permanent vers cette rubrique">#</a></h2>
<h2>Captures décran<a class="headerlink" href="#screenshots" title="Lien permanent vers cette rubrique">#</a></h2>
<section id="dashboard">
<h3>Dashboard<a class="headerlink" href="#dashboard" title="Lien permanent vers cette rubrique">#</a></h3>
<h3>Tableau de bord<a class="headerlink" href="#dashboard" title="Lien permanent vers cette rubrique">#</a></h3>
<figure class="align-default">
<img alt="FitTrackee Dashboard" src="_images/fittrackee_screenshot-01.png" />
</figure>
</section>
<section id="workout-detail">
<h3>Workout detail<a class="headerlink" href="#workout-detail" title="Lien permanent vers cette rubrique">#</a></h3>
<h3>Page de détail dune séance<a class="headerlink" href="#workout-detail" title="Lien permanent vers cette rubrique">#</a></h3>
<figure class="align-default">
<img alt="FitTrackee Workout" src="_images/fittrackee_screenshot-02.png" />
<img alt="Séance sur FitTrackee" src="_images/fittrackee_screenshot-02.png" />
</figure>
</section>
<section id="workouts-list">
<h3>Workouts list<a class="headerlink" href="#workouts-list" title="Lien permanent vers cette rubrique">#</a></h3>
<h3>Liste des séances<a class="headerlink" href="#workouts-list" title="Lien permanent vers cette rubrique">#</a></h3>
<figure class="align-default">
<img alt="FitTrackee Workouts" src="_images/fittrackee_screenshot-03.png" />
<img alt="Séances sur FitTrackee" src="_images/fittrackee_screenshot-03.png" />
</figure>
</section>
<section id="statistics">
<h3>Statistics<a class="headerlink" href="#statistics" title="Lien permanent vers cette rubrique">#</a></h3>
<h3>Statistiques<a class="headerlink" href="#statistics" title="Lien permanent vers cette rubrique">#</a></h3>
<figure class="align-default">
<img alt="FitTrackee Statistics" src="_images/fittrackee_screenshot-04.png" />
<img alt="Statistics sur FitTrackee" src="_images/fittrackee_screenshot-04.png" />
</figure>
</section>
<section id="id1">
<h3>Administration<a class="headerlink" href="#id1" title="Lien permanent vers cette rubrique">#</a></h3>
<figure class="align-default">
<img alt="FitTrackee Administration" src="_images/fittrackee_screenshot-05.png" />
<img alt="Administration de FitTrackee" src="_images/fittrackee_screenshot-05.png" />
</figure>
<figure class="align-default">
<img alt="FitTrackee Sports Administration" src="_images/fittrackee_screenshot-06.png" />
<img alt="Administration des sports sur FitTrackee" src="_images/fittrackee_screenshot-06.png" />
</figure>
</section>
</section>
@ -609,21 +608,21 @@ A user with an inactive account cannot log in. (<em>new in 0.6.0</em>).</p></li>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Features</a><ul>
<li><a class="reference internal" href="#workouts">Workouts</a></li>
<li><a class="reference internal" href="#account-preferences">Account &amp; preferences</a></li>
<li><a class="reference internal" href="#">Fonctionnalités</a><ul>
<li><a class="reference internal" href="#workouts">Séances</a></li>
<li><a class="reference internal" href="#account-preferences">Compte et préférences</a></li>
<li><a class="reference internal" href="#administration">Administration</a><ul>
<li><a class="reference internal" href="#application">Application</a></li>
<li><a class="reference internal" href="#users">Users</a></li>
<li><a class="reference internal" href="#users">Utilisateurs</a></li>
<li><a class="reference internal" href="#sports">Sports</a></li>
</ul>
</li>
<li><a class="reference internal" href="#translations">Translations</a></li>
<li><a class="reference internal" href="#screenshots">Screenshots</a><ul>
<li><a class="reference internal" href="#dashboard">Dashboard</a></li>
<li><a class="reference internal" href="#workout-detail">Workout detail</a></li>
<li><a class="reference internal" href="#workouts-list">Workouts list</a></li>
<li><a class="reference internal" href="#statistics">Statistics</a></li>
<li><a class="reference internal" href="#screenshots">Captures décran</a><ul>
<li><a class="reference internal" href="#dashboard">Tableau de bord</a></li>
<li><a class="reference internal" href="#workout-detail">Page de détail dune séance</a></li>
<li><a class="reference internal" href="#workouts-list">Liste des séances</a></li>
<li><a class="reference internal" href="#statistics">Statistiques</a></li>
<li><a class="reference internal" href="#id1">Administration</a></li>
</ul>
</li>

View File

@ -161,24 +161,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul>
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a></li>

View File

@ -161,24 +161,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul>
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a></li>

View File

@ -3,7 +3,7 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="next" title="Features" href="features.html" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="next" title="Fonctionnalités" href="features.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Documentation FitTrackee 0.7.17</title>
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul>
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a></li>
@ -232,40 +232,37 @@
<section id="fittrackee">
<h1>FitTrackee<a class="headerlink" href="#fittrackee" title="Lien permanent vers cette rubrique">#</a></h1>
<div class="line-block">
<div class="line">This web application allows you to track your outdoor activities (workouts)
from gpx files and keep your data on your own server.</div>
<div class="line">No mobile app has been developed yet, but several existing mobile apps can
store workouts data locally and export them into a gpx file.</div>
<div class="line">Examples for Android (non-exhaustive list):</div>
<div class="line">Cette application web vous permet de suivre vos activités de plein air à partir de fichiers gpx et de conserver vos données sur votre propre serveur.</div>
<div class="line">Aucune application mobile na encore été développée, mais plusieurs applications mobiles existantes peuvent stocker les données des séances localement et les exporter dans un fichier au format gpx.</div>
<div class="line">Exemples pour Android (liste non exhaustive) :</div>
<div class="line">* <a class="reference external" href="https://github.com/jonasoreland/runnerup">Runner Up</a> (GPL v3)</div>
<div class="line">* <a class="reference external" href="https://gitlab.com/brvier/ForRunners">ForRunners</a> (GPL v3)</div>
<div class="line">* <a class="reference external" href="https://github.com/OpenTracksApp/OpenTracks">OpenTracks</a> (Apache License)</div>
<div class="line">* <a class="reference external" href="https://codeberg.org/jannis/FitoTrack">FitoTrack</a> (GPL v3)</div>
</div>
<div class="line-block">
<div class="line">Maps are displayed using <a class="reference external" href="https://www.openstreetmap.org">Open Street
Map</a>.</div>
<div class="line">It is also possible to add a workout without a gpx file.</div>
<div class="line">Les cartes sont affichées à laide de <a class="reference external" href="https://www.openstreetmap.org">Open Street Map</a>.</div>
<div class="line">Il est également possible dajouter une séance sans fichier gpx.</div>
</div>
<div class="line-block">
<div class="line"><strong>Still under heavy development (some features may be unstable).</strong></div>
<div class="line">(see <a class="reference external" href="https://github.com/SamR1/FitTrackee/issues">issues</a> for more information)</div>
<div class="line"><strong>En cours de développement (certaines fonctionnalités peuvent être instables).</strong></div>
<div class="line">(cf. <a class="reference external" href="https://github.com/SamR1/FitTrackee/issues">tickets</a> pour plus dinformations)</div>
</div>
<figure class="align-default">
<img alt="FitTrackee Dashboard" src="_images/fittrackee_screenshot-01.png" />
</figure>
</section>
<section id="table-of-contents">
<h1>Table of contents<a class="headerlink" href="#table-of-contents" title="Lien permanent vers cette rubrique">#</a></h1>
<h1>Table des matières<a class="headerlink" href="#table-of-contents" title="Lien permanent vers cette rubrique">#</a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="api/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="cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1"><a class="reference internal" href="api/index.html">Documentation de lAPI</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a></li>
</ul>
</div>
@ -281,7 +278,7 @@ Map</a>.</div>
<div class="context">
<span>Next</span>
</div>
<div class="title">Features</div>
<div class="title">Fonctionnalités</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="next" title="Installation" href="installation.html" /><link rel="prev" title="Features" href="features.html" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="next" title="Installation" href="installation.html" /><link rel="prev" title="Fonctionnalités" href="features.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>OAuth 2.0 - Documentation FitTrackee 0.7.17</title>
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Fonctionnalités</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a></li>
@ -231,97 +231,88 @@
<article role="main">
<section id="oauth-2-0">
<h1>OAuth 2.0<a class="headerlink" href="#oauth-2-0" title="Lien permanent vers cette rubrique">#</a></h1>
<p>(<em>new in 0.7.0</em>)</p>
<p>FitTrackee provides a REST API (see <a class="reference external" href="api/index.html">documentation</a>) whose
most endpoints require authentication/authorization.</p>
<p>To allow a third-party application to interact with API endpoints, an
<a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc6749">OAuth2</a> client can be created
in user settings (“apps” tab).</p>
<p>(<em>nouveau dans la version in 0.7.0</em>)</p>
<p>FitTrackee fournit une API REST (voir <a class="reference external" href="api/index.html">documentation</a>) dont la plupart des points daccès nécessitent une authentification/autorisation.</p>
<p>Pour permettre à une application tierce dinteragir avec les points daccès de lAPI, un client <a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc6749">OAuth2</a> peut être créé dans les paramètres de lutilisateur (onglet “apps”).</p>
<div class="admonition warning">
<p class="admonition-title">Avertissement</p>
<p>OAuth2 endpoints requiring authentication are not accessible by third-party
applications (<a class="reference external" href="api/oauth2.html">documentation</a>), only by FitTrackee
client (first-party application).</p>
<p>Les points dentrée OAuth2 nécessitant une authentification ne sont pas accessibles par des applications tierces (<a class="reference external" href="api/oauth2.html">documentation</a>), seulement par lapplication web FitTrackee).</p>
</div>
<p>FitTrackee supports only <a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1">Authorization Code</a>
flow (with <a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc7636">PKCE</a> support).
It allows to exchange an authorization code for an access token.
The client ID and secret must be sent in the POST body.
It is recommended to use PKCE to provide a better security.</p>
<p>Il ne prend en charge que le flux avec un <a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc6749#section-1.3.1">Code dAutorisation</a> (avec prise en charge de <a class="reference external" href="https://datatracker.ietf.org/doc/html/rfc7636">PKCE</a>). Il permet déchanger un code dautorisation contre un jeton daccès. Lidentifiant et le secret du client doivent être envoyés dans le corps du message (méthode « POST »). Il est recommandé dutiliser PKCE pour assurer une meilleure sécurité.</p>
<section id="scopes">
<h2>Scopes<a class="headerlink" href="#scopes" title="Lien permanent vers cette rubrique">#</a></h2>
<p>The following scopes are available:</p>
<p>Les scopes suivants sont disponibles :</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">application:write</span></code>: grants write access to application configuration (only for users with administration rights),</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">profile:read</span></code>: grants read access to auth endpoints,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">profile:write</span></code>: grants write access to auth endpoints,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">users:read</span></code>: grants read access to users endpoints,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">users:write</span></code>: grants write access to users endpoints,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workouts:read</span></code>: grants read access to workouts-related endpoints,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workouts:write</span></code>: grants write access to workouts-related endpoints.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">application:write</span></code> : permet daccéder en écriture à la configuration de lapplication (uniquement pour les utilisateurs ayant des droits dadministration),</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">profile:read</span></code> : accorde un accès en lecture aux points dentrée dauthentification/profil utilisateur,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">profile:write</span></code> : accorde laccès en écriture aux points dentrée dauthentification/profil utilisateur,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">users:read</span></code> : accorde un accès en lecture aux points dentrée des utilisateurs,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">users:write</span></code> : accorde un accès en écriture aux points dentrée des utilisateurs,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workouts:read</span></code>: accorde un accès en lecture aux points dentrée associés aux séances,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">workouts:write</span></code>: accorde un accès en écriture aux points dentrée associés aux séances,</p></li>
</ul>
</section>
<section id="flow">
<h2>Flow<a class="headerlink" href="#flow" title="Lien permanent vers cette rubrique">#</a></h2>
<h2>Flux<a class="headerlink" href="#flow" title="Lien permanent vers cette rubrique">#</a></h2>
<ul>
<li><p>The user creates an App (client) on FitTrackee for a third-party application.</p>
<li><p>Lutilisateur crée une application (client) sur FitTrackee pour une application tierce.</p>
<figure class="align-default">
<img alt="OAuth2 client creation on FitTrackee" src="_images/fittrackee_screenshot-07.png" />
<img alt="Création d'un client OAuth2 sur FitTrackee" src="_images/fittrackee_screenshot-07.png" />
</figure>
<div class="line-block">
<div class="line">After registration, the client id and secret are shown.</div>
<div class="line">They must be stored in the 3rd-party application by the user.</div>
<div class="line">Après lenregistrement, lidentifiant et le secret du client sont affichés.</div>
<div class="line">Ils doivent être stockés dans lapplication tierce par lutilisateur.</div>
</div>
</li>
<li><div class="line-block">
<div class="line">The 3rd-party app needs to redirect to FitTrackee, in order for the user to authorize the 3rd-party app to access user data on FitTrackee.</div>
<div class="line">Lapplication tierce doit rediriger vers FitTrackee, afin que lutilisateur puisse autoriser lapplication tierce à accéder aux données de lutilisateur sur FitTrackee.</div>
</div>
<figure class="align-default">
<img alt="App authorization on FitTrackee" src="_images/fittrackee_screenshot-08.png" />
<img alt="Autorisation de l'application sur FitTrackee" src="_images/fittrackee_screenshot-08.png" />
</figure>
<div class="line-block">
<div class="line">The authorization URL is <code class="docutils literal notranslate"><span class="pre">https://&lt;FITTRACKEE_HOST&gt;/profile/apps/authorize</span></code>.</div>
<div class="line">The required parameters are:</div>
<div class="line">LURL pour lautorisation est <code class="docutils literal notranslate"><span class="pre">https://&lt;FITTRACKEE_HOST&gt;/profile/apps/authorize</span></code>.</div>
<div class="line">Les paramètres requis sont les suivants :</div>
</div>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">client_id</span></code>: the client id displayed after registration</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">response_type</span></code>: <code class="docutils literal notranslate"><span class="pre">code</span></code>, since FitTrackee only supports Authorization Code flow.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">scope</span></code>: scopes separated with space.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">client_id</span></code> : lidentifiant du client affiché après lenregistrement</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">response_type</span></code> : <code class="docutils literal notranslate"><span class="pre">code</span></code>, FitTrackee ne supportant que le flux de code dautorisation.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">scope</span></code> : scopes séparés par des espaces.</p></li>
</ul>
<div class="line-block">
<div class="line">and optional parameters:</div>
<div class="line">et des paramètres facultatifs :</div>
</div>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">state</span></code>: unique value to prevent cross-site request forgery</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">state</span></code> : valeur unique pour empêcher la falsification des requêtes entre les sites</p></li>
</ul>
<div class="line-block">
<div class="line">For PKCE, the following parameters are mandatory:</div>
<div class="line">Pour PKCE, les paramètres suivants sont obligatoires :</div>
</div>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">code_challenge</span></code>: string generated from a code verifier</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">code_challenge_method</span></code>: method used to create challenge, for instance « S256 »</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">code_challenge</span></code> : chaîne de caractères générée par un vérificateur de code</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">code_challenge_method</span></code> : méthode utilisée pour créer le challenge, par exemple « S256 »</p></li>
</ul>
<div class="line-block">
<div class="line">Example for PKCE:</div>
<div class="line">Exemple pour PKCE:</div>
<div class="line"><code class="docutils literal notranslate"><span class="pre">https://&lt;FITTRACKEE_HOST&gt;/profile/apps/authorize?response_type=code&amp;client_id=&lt;CLIENT_ID&gt;&amp;scope=profile%3Aread+workouts%3Awrite&amp;state=&lt;STATE&gt;&amp;code_challenge=&lt;CODE_CHALLENGE&gt;&amp;code_challenge_method=S256</span></code></div>
</div>
</li>
<li><div class="line-block">
<div class="line">After the authorization, FitTrackee redirects to the 3rd-party app, so the 3rd-party app can get the authorization code from the redirect URL and then fetches an access token with the client id and secret (endpoint <a class="reference external" href="https://samr1.github.io/FitTrackee/api/oauth2.html#post--api-oauth-token">/api/oauth/token</a>).</div>
<div class="line">Example of a redirect URL:</div>
<div class="line">Après lautorisation, FitTrackee redirige vers lapplication tierce, de sorte que lapplication tierce puisse obtenir le code dautorisation à partir de lURL de redirection et récupère ensuite un jeton daccès avec lidentifiant et le secret du client (point daccès <a class="reference external" href="https://samr1.github.io/FitTrackee/api/oauth2.html#post--api-oauth-token">/api/oauth/token</a>).</div>
<div class="line">Exemple dURL de redirection :</div>
<div class="line"><code class="docutils literal notranslate"><span class="pre">https://example.com/callback?code=&lt;AUTHORIZATION_CODE&gt;&amp;state=&lt;STATE&gt;</span></code></div>
</div>
</li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>OAuth2 support is implemented with <a class="reference external" href="https://docs.authlib.org/en/latest/">Authlib</a> library.</p>
<p>La prise en charge dOAuth2 est mise en œuvre avec la bibliothèque <a class="reference external" href="https://docs.authlib.org/en/latest/">Authlib</a> bibliothèque.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Avertissement</p>
<div class="line-block">
<div class="line">If FitTrackee is running behind a proxy, the <code class="docutils literal notranslate"><span class="pre">X-Forwarded-Proto</span></code> header must be set.</div>
<div class="line">For instance for <code class="docutils literal notranslate"><span class="pre">nginx</span></code>:</div>
<div class="line">Si FitTrackee fonctionne derrière un proxy, len-tête <code class="docutils literal notranslate"><span class="pre">X-Forwarded-Proto</span></code> doit être défini.</div>
<div class="line">Par exemple pour <code class="docutils literal notranslate"><span class="pre">nginx</span></code> :</div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>proxy_set_header X-Forwarded-Proto $scheme;
</pre></div>
@ -329,13 +320,13 @@ It is recommended to use PKCE to provide a better security.</p>
</div>
</section>
<section id="resources">
<h2>Resources<a class="headerlink" href="#resources" title="Lien permanent vers cette rubrique">#</a></h2>
<p>Some resources about OAuth 2.0:</p>
<h2>Ressources<a class="headerlink" href="#resources" title="Lien permanent vers cette rubrique">#</a></h2>
<p>Quelques ressources sur OAuth 2.0 :</p>
<ul class="simple">
<li><p><a class="reference external" href="https://www.oauth.com">OAuth 2.0 Simplified</a> by <a class="reference external" href="https://aaronparecki.com">Aaron Parecki</a> (example for <a class="reference external" href="https://www.oauth.com/oauth2-servers/server-side-apps/example-flow/">authorization code flow with PKCE</a>)</p></li>
<li><p><a class="reference external" href="https://www.oauth.com">OAuth 2.0 Simplified</a> par <a class="reference external" href="https://aaronparecki.com">Aaron Parecki</a> (exemple pour le flux avec le <a class="reference external" href="https://www.oauth.com/oauth2-servers/server-side-apps/example-flow/">code dauthorisation et PKCE</a>)</p></li>
<li><p><a class="reference external" href="https://requests-oauthlib.readthedocs.io/en/latest/examples/real_world_example.html">Web App Example of OAuth 2 web application flow</a> with Requests-OAuthlib (python)</p></li>
<li><p><a class="reference external" href="https://docs.authlib.org/en/latest/client/oauth2.html#oauth-2-session">OAuth 2 Session</a> with Authlib (python)</p></li>
<li><p><a class="reference external" href="https://codeberg.org/SamR1/ft-oauth-client">Minimal example of an application interacting with FitTrackee</a> (python)</p></li>
<li><p><a class="reference external" href="https://codeberg.org/SamR1/ft-oauth-client">Exemple dune application minimale interagissant avec FitTrackee</a> (python)</p></li>
</ul>
</section>
</section>
@ -361,7 +352,7 @@ It is recommended to use PKCE to provide a better security.</p>
<span>Previous</span>
</div>
<div class="title">Features</div>
<div class="title">Fonctionnalités</div>
</div>
</a>
@ -401,8 +392,8 @@ It is recommended to use PKCE to provide a better security.</p>
<ul>
<li><a class="reference internal" href="#">OAuth 2.0</a><ul>
<li><a class="reference internal" href="#scopes">Scopes</a></li>
<li><a class="reference internal" href="#flow">Flow</a></li>
<li><a class="reference internal" href="#resources">Resources</a></li>
<li><a class="reference internal" href="#flow">Flux</a></li>
<li><a class="reference internal" href="#resources">Ressources</a></li>
</ul>
</li>
</ul>

Binary file not shown.

View File

@ -161,24 +161,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul>
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a></li>

File diff suppressed because one or more lines are too long

View File

@ -3,10 +3,10 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="next" title="API documentation" href="api/index.html" /><link rel="prev" title="Command line interface" href="cli.html" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Recherche" href="search.html" /><link rel="next" title="Documentation de lAPI" href="api/index.html" /><link rel="prev" title="Interface de ligne de commande" href="cli.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Third-party tools - Documentation FitTrackee 0.7.17</title>
<title>Outils tiers - Documentation FitTrackee 0.7.17</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Command line interface</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Troubleshooting</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrator</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="troubleshooting/index.html">Dépannage</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting/administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Change log</a></li>
@ -230,11 +230,11 @@
</div>
<article role="main">
<section id="third-party-tools">
<h1>Third-party tools<a class="headerlink" href="#third-party-tools" title="Lien permanent vers cette rubrique">#</a></h1>
<p>Thanks to the contributors, the following tools are available:</p>
<h1>Outils tiers<a class="headerlink" href="#third-party-tools" title="Lien permanent vers cette rubrique">#</a></h1>
<p>Grâce aux contributeurs, les outils suivants sont disponibles :</p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/jat255/strava-to-fittrackee">strava-to-fittrackee</a> (import workouts from a Strava account)</p></li>
<li><p><a class="reference external" href="https://github.com/ebrithiljonas/fittrackee-uploader">FitTrackee Uploader</a> (upload .gpx and .fit files)</p></li>
<li><p><a class="reference external" href="https://github.com/jat255/strava-to-fittrackee">strava-to-fittrackee</a> (importer des séances à partir dun compte Strava)</p></li>
<li><p><a class="reference external" href="https://github.com/ebrithiljonas/fittrackee-uploader">FitTrackee Uploader</a> (ajouter des fichiers .gpx et .fit)</p></li>
</ul>
</section>
@ -248,7 +248,7 @@
<div class="context">
<span>Next</span>
</div>
<div class="title">API documentation</div>
<div class="title">Documentation de lAPI</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
@ -259,7 +259,7 @@
<span>Previous</span>
</div>
<div class="title">Command line interface</div>
<div class="title">Interface de ligne de commande</div>
</div>
</a>

View File

@ -3,10 +3,10 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Change log" href="../changelog.html" /><link rel="prev" title="Troubleshooting" href="index.html" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Change log" href="../changelog.html" /><link rel="prev" title="Dépannage" href="index.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Administrator - Documentation FitTrackee 0.7.17</title>
<title>Administrateur - Documentation FitTrackee 0.7.17</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Troubleshooting</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Administrator</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">Dépannage</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -230,35 +230,35 @@
</div>
<article role="main">
<section id="administrator">
<h1>Administrator<a class="headerlink" href="#administrator" title="Lien permanent vers cette rubrique">#</a></h1>
<h1>Administrateur<a class="headerlink" href="#administrator" title="Lien permanent vers cette rubrique">#</a></h1>
<section id="fittrackee-fails-to-start">
<h2><cite>FitTrackee fails to start</cite><a class="headerlink" href="#fittrackee-fails-to-start" title="Lien permanent vers cette rubrique">#</a></h2>
<h2><cite>FitTrackee ne démarre pas</cite><a class="headerlink" href="#fittrackee-fails-to-start" title="Lien permanent vers cette rubrique">#</a></h2>
<ul>
<li><p>Check the database URL in <a class="reference external" href="../installation.html#envvar-DATABASE_URL">environment variables</a> if the following error is displayed in <strong>gunicorn</strong> logs:</p>
<li><p>Vérifiez lURL de la base de données dans les <a class="reference external" href="../installation.html#envvar-DATABASE_URL">variables denvironnement</a> si lerreur suivante est affichée dans les logs de <strong>gunicorn</strong> :</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sqlalchemy</span><span class="o">.</span><span class="n">exc</span><span class="o">.</span><span class="n">NoSuchModuleError</span><span class="p">:</span> <span class="n">Can</span><span class="s1">&#39;t load plugin: sqlalchemy.dialects:postgres</span>
</pre></div>
</div>
<p>It must start with <code class="docutils literal notranslate"><span class="pre">postgresql://</span></code> (engine URLs starting with <code class="docutils literal notranslate"><span class="pre">postgres://</span></code> are no longer supported).</p>
</li>
<li><p>Check the email URL in <a class="reference external" href="../installation.html#envvar-EMAIL_URL">environment variables</a> if the following error is displayed in <strong>gunicorn</strong> logs:</p>
<li><p>Vérifiez lURL du serveur SMTP dans les <a class="reference external" href="../installation.html#envvar-EMAIL_URL">environment variables</a> si lerreur suivante est affichée dans les logs de <strong>gunicorn</strong> :</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">fittrackee</span><span class="o">.</span><span class="n">emails</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">InvalidEmailUrlScheme</span>
</pre></div>
</div>
<p>A valid <code class="docutils literal notranslate"><span class="pre">EMAIL_URL</span></code> must be provided (see <a class="reference external" href="../installation.html#emails">emails</a>).</p>
<p>Une valeur valide pour la variable <code class="docutils literal notranslate"><span class="pre">EMAIL_URL</span></code> doit être fourni (voir <a class="reference external" href="../installation.html#emails">courriels</a>).</p>
</li>
</ul>
</section>
<section id="map-images-are-not-displayed-but-map-is-shown-in-workout-detail">
<h2><cite>Map images are not displayed but map is shown in Workout detail</cite><a class="headerlink" href="#map-images-are-not-displayed-but-map-is-shown-in-workout-detail" title="Lien permanent vers cette rubrique">#</a></h2>
<h2><cite>Les images de la carte ne sont pas affichées mais la carte est affichée dans le détail de la séance</cite><a class="headerlink" href="#map-images-are-not-displayed-but-map-is-shown-in-workout-detail" title="Lien permanent vers cette rubrique">#</a></h2>
<ul class="simple">
<li><p>Check the path in <a class="reference external" href="../installation.html#envvar-UPLOAD_FOLDER">environment variables</a>. <code class="docutils literal notranslate"><span class="pre">UPLOAD_FOLDER</span></code> must be set with an absolute path.</p></li>
<li><p>Vérifier le chemin dans les <a class="reference external" href="../installation.html#envvar-UPLOAD_FOLDER">variables denvironnement</a>. <code class="docutils literal notranslate"><span class="pre">UPLOAD_FOLDER</span></code> doit être défini avec un chemin absolu.</p></li>
</ul>
</section>
<section id="failed-to-upload-or-download-files">
<h2><cite>Failed to upload or download files</cite><a class="headerlink" href="#failed-to-upload-or-download-files" title="Lien permanent vers cette rubrique">#</a></h2>
<h2><cite>Échec du chargement ou du téléchargement de fichiers</cite><a class="headerlink" href="#failed-to-upload-or-download-files" title="Lien permanent vers cette rubrique">#</a></h2>
<ul class="simple">
<li><p>Check <code class="docutils literal notranslate"><span class="pre">client_max_body_size</span></code> in <strong>nginx</strong> config. Increase the value to handle larger files (see <strong>nginx</strong> <a class="reference external" href="https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size">documentation</a>).</p></li>
<li><p>Increase <strong>gunicorn</strong> <a class="reference external" href="https://docs.gunicorn.org/en/stable/settings.html#timeout">timeout</a> value if the following error is displayed in gunicorn log: <code class="docutils literal notranslate"><span class="pre">[CRITICAL]</span> <span class="pre">WORKER</span> <span class="pre">TIMEOUT</span></code>.</p></li>
<li><p>Vérifiez <code class="docutils literal notranslate"><span class="pre">client_max_body_size</span></code> dans la configuration <strong>nginx</strong>. Augmentez la valeur pour gérer des fichiers plus volumineux (voir la <a class="reference external" href="https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size">documentation de **nginx**</a>).</p></li>
<li><p>Augmenter le délai dattente (timeout) <strong>gunicorn</strong> &lt;<a class="reference external" href="https://docs.gunicorn.org/en/stable/settings.html#timeout">https://docs.gunicorn.org/en/stable/settings.html#timeout</a>&gt;`__ si lerreur suivante est affichée dans le journal de gunicorn : <code class="docutils literal notranslate"><span class="pre">[CRITICAL]</span> <span class="pre">WORKER</span> <span class="pre">TIMEOUT</span></code>.</p></li>
</ul>
</section>
</section>
@ -284,7 +284,7 @@
<span>Previous</span>
</div>
<div class="title">Troubleshooting</div>
<div class="title">Dépannage</div>
</div>
</a>
@ -322,10 +322,10 @@
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Administrator</a><ul>
<li><a class="reference internal" href="#fittrackee-fails-to-start"><cite>FitTrackee fails to start</cite></a></li>
<li><a class="reference internal" href="#map-images-are-not-displayed-but-map-is-shown-in-workout-detail"><cite>Map images are not displayed but map is shown in Workout detail</cite></a></li>
<li><a class="reference internal" href="#failed-to-upload-or-download-files"><cite>Failed to upload or download files</cite></a></li>
<li><a class="reference internal" href="#">Administrateur</a><ul>
<li><a class="reference internal" href="#fittrackee-fails-to-start"><cite>FitTrackee ne démarre pas</cite></a></li>
<li><a class="reference internal" href="#map-images-are-not-displayed-but-map-is-shown-in-workout-detail"><cite>Les images de la carte ne sont pas affichées mais la carte est affichée dans le détail de la séance</cite></a></li>
<li><a class="reference internal" href="#failed-to-upload-or-download-files"><cite>Échec du chargement ou du téléchargement de fichiers</cite></a></li>
</ul>
</li>
</ul>

View File

@ -3,10 +3,10 @@
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Administrator" href="administrator.html" /><link rel="prev" title="Workouts" href="../api/workouts.html" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Recherche" href="../search.html" /><link rel="next" title="Administrateur" href="administrator.html" /><link rel="prev" title="Séances" href="../api/workouts.html" />
<!-- Generated with Sphinx 7.0.1 and Furo 2023.05.20 -->
<title>Troubleshooting - Documentation FitTrackee 0.7.17</title>
<title>Dépannage - Documentation FitTrackee 0.7.17</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
@ -163,24 +163,24 @@
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../features.html">Fonctionnalités</a></li>
<li class="toctree-l1"><a class="reference internal" href="../oauth.html">OAuth 2.0</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command line interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Third-party tools</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../api/index.html">API documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of API documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../api/auth.html">Authentication and account</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Interface de ligne de commande</a></li>
<li class="toctree-l1"><a class="reference internal" href="../third_party_tools.html">Outils tiers</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../api/index.html">Documentation de lAPI</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Documentation de lAPI</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../api/auth.html">Authentification et compte</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/records.html">Records</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/sports.html">Sports</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/stats.html">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/users.html">Users</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/workouts.html">Workouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/stats.html">Statistiques</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/users.html">Utilisateurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../api/workouts.html">Séances</a></li>
</ul>
</li>
<li class="toctree-l1 current has-children current-page"><a class="current reference internal" href="#">Troubleshooting</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Troubleshooting</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="administrator.html">Administrator</a></li>
<li class="toctree-l1 current has-children current-page"><a class="current reference internal" href="#">Dépannage</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Dépannage</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="administrator.html">Administrateur</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
@ -230,13 +230,13 @@
</div>
<article role="main">
<section id="troubleshooting">
<h1>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Lien permanent vers cette rubrique">#</a></h1>
<h1>Dépannage<a class="headerlink" href="#troubleshooting" title="Lien permanent vers cette rubrique">#</a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="administrator.html">Administrator</a><ul>
<li class="toctree-l2"><a class="reference internal" href="administrator.html#fittrackee-fails-to-start"><cite>FitTrackee fails to start</cite></a></li>
<li class="toctree-l2"><a class="reference internal" href="administrator.html#map-images-are-not-displayed-but-map-is-shown-in-workout-detail"><cite>Map images are not displayed but map is shown in Workout detail</cite></a></li>
<li class="toctree-l2"><a class="reference internal" href="administrator.html#failed-to-upload-or-download-files"><cite>Failed to upload or download files</cite></a></li>
<li class="toctree-l1"><a class="reference internal" href="administrator.html">Administrateur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="administrator.html#fittrackee-fails-to-start"><cite>FitTrackee ne démarre pas</cite></a></li>
<li class="toctree-l2"><a class="reference internal" href="administrator.html#map-images-are-not-displayed-but-map-is-shown-in-workout-detail"><cite>Les images de la carte ne sont pas affichées mais la carte est affichée dans le détail de la séance</cite></a></li>
<li class="toctree-l2"><a class="reference internal" href="administrator.html#failed-to-upload-or-download-files"><cite>Échec du chargement ou du téléchargement de fichiers</cite></a></li>
</ul>
</li>
</ul>
@ -253,7 +253,7 @@
<div class="context">
<span>Next</span>
</div>
<div class="title">Administrator</div>
<div class="title">Administrateur</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
@ -264,7 +264,7 @@
<span>Previous</span>
</div>
<div class="title">Workouts</div>
<div class="title">Séances</div>
</div>
</a>

Binary file not shown.

View File

@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: FitTrackee 0.7.17\n"
"\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-18 15:19+0200\n"
"POT-Creation-Date: 2023-06-18 20:45+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -38,11 +38,11 @@ msgid "**Example responses**:"
msgstr ""
#: ../../<autoflask>:1
msgid "success"
msgid "success:"
msgstr ""
#: ../../<autoflask>:1
msgid "error on registration"
msgid "error on registration:"
msgstr ""
#: ../../<autoflask>:0
@ -74,43 +74,47 @@ msgid "Status Codes"
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload - sorry, that username is already taken - Errors: - username: 3 to 30 characters required - username: only alphanumeric characters and the underscore character \"_\" allowed - email: valid email must be provided - password: 8 characters required"
msgid "``success``"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid payload"
msgid "- ``invalid payload`` - ``sorry, that username is already taken`` - ``sorry, you must agree privacy policy to register`` - ``username: 3 to 30 characters required`` - ``username: only alphanumeric characters and the underscore character \"_\" allowed`` - ``email: valid email must be provided`` - ``password: 8 characters required``"
msgstr ""
#: ../../<autoflask>:1
msgid "sorry, that username is already taken"
msgid "``invalid payload``"
msgstr ""
#: ../../<autoflask>:1
msgid "Errors:"
msgid "``sorry, that username is already taken``"
msgstr ""
#: ../../<autoflask>:1
msgid "username: 3 to 30 characters required"
msgid "``sorry, you must agree privacy policy to register``"
msgstr ""
#: ../../<autoflask>:1
msgid "username: only alphanumeric characters and the underscore character \"_\" allowed"
msgid "``username: 3 to 30 characters required``"
msgstr ""
#: ../../<autoflask>:1
msgid "email: valid email must be provided"
msgid "``username: only alphanumeric characters and the underscore character \"_\" allowed``"
msgstr ""
#: ../../<autoflask>:1
msgid "password: 8 characters required"
msgid "``email: valid email must be provided``"
msgstr ""
#: ../../<autoflask>:1
msgid "error, registration is disabled"
msgid "``password: 8 characters required``"
msgstr ""
#: ../../<autoflask>:1
msgid "error, please try again or contact the administrator"
msgid "``error, registration is disabled``"
msgstr ""
#: ../../<autoflask>:1
msgid "``error, please try again or contact the administrator``"
msgstr ""
#: ../../<autoflask>:1
@ -126,7 +130,7 @@ msgid "confirmation token"
msgstr ""
#: ../../<autoflask>:1
msgid "account confirmation successful"
msgid "``account confirmation successful``"
msgstr ""
#: ../../<autoflask>:1
@ -138,11 +142,11 @@ msgid "If email sending is disabled, this endpoint is not available."
msgstr ""
#: ../../<autoflask>:1
msgid "confirmation email resent"
msgid "``confirmation email resent``"
msgstr ""
#: ../../<autoflask>:1
msgid "the requested URL was not found on the server"
msgid "``the requested URL was not found on the server``"
msgstr ""
#: ../../<autoflask>:1
@ -154,7 +158,7 @@ msgid "Only user with an active account can log in."
msgstr ""
#: ../../<autoflask>:1
msgid "successful login"
msgid "successful login:"
msgstr ""
#: ../../<autoflask>:1
@ -166,11 +170,11 @@ msgid "password"
msgstr ""
#: ../../<autoflask>:1
msgid "successfully logged in"
msgid "``successfully logged in``"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid credentials"
msgid "``invalid credentials``"
msgstr ""
#: ../../<autoflask>:1
@ -190,23 +194,19 @@ msgid "OAuth 2.0 Bearer Token"
msgstr ""
#: ../../<autoflask>:1
msgid "success."
msgid "- ``provide a valid auth token`` - ``signature expired, please log in again`` - ``invalid token, please log in again``"
msgstr ""
#: ../../<autoflask>:1
msgid "- provide a valid auth token - signature expired, please log in again - invalid token, please log in again"
msgid "``provide a valid auth token``"
msgstr ""
#: ../../<autoflask>:1
msgid "provide a valid auth token"
msgid "``signature expired, please log in again``"
msgstr ""
#: ../../<autoflask>:1
msgid "signature expired, please log in again"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid token, please log in again"
msgid "``invalid token, please log in again``"
msgstr ""
#: ../../<autoflask>:1
@ -238,11 +238,7 @@ msgid "user birth date (format: ``%Y-%m-%d``)"
msgstr ""
#: ../../<autoflask>:1
msgid "user profile updated"
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload"
msgid "``user profile updated``"
msgstr ""
#: ../../<autoflask>:1
@ -314,15 +310,15 @@ msgid "does week start on Monday?"
msgstr ""
#: ../../<autoflask>:1
msgid "user preferences updated"
msgid "``user preferences updated``"
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload - password: password and password confirmation don't match"
msgid "- ``invalid payload`` - ``password: password and password confirmation don't match``"
msgstr ""
#: ../../<autoflask>:1
msgid "password: password and password confirmation don't match"
msgid "``password: password and password confirmation don't match``"
msgstr ""
#: ../../<autoflask>:1
@ -342,19 +338,19 @@ msgid "stopped speed threshold used by gpxpy"
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload - invalid hexadecimal color"
msgid "``user sport preferences updated``"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid hexadecimal color"
msgid "- ``invalid payload`` - ``invalid hexadecimal color``"
msgstr ""
#: ../../<autoflask>:1
msgid "- sport does not exist"
msgid "``invalid hexadecimal color``"
msgstr ""
#: ../../<autoflask>:1
msgid "sport does not exist"
msgid "``sport does not exist``"
msgstr ""
#: ../../<autoflask>:1
@ -386,31 +382,31 @@ msgid "image file (allowed extensions: .jpg, .png, .gif)"
msgstr ""
#: ../../<autoflask>:1
msgid "user picture updated"
msgid "``user picture updated``"
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload - no file part - no selected file - file extension not allowed"
msgid "- ``invalid payload`` - ``no file part`` - ``no selected file`` - ``file extension not allowed``"
msgstr ""
#: ../../<autoflask>:1
msgid "no file part"
msgid "``no file part``"
msgstr ""
#: ../../<autoflask>:1
msgid "no selected file"
msgid "``no selected file``"
msgstr ""
#: ../../<autoflask>:1
msgid "file extension not allowed"
msgid "``file extension not allowed``"
msgstr ""
#: ../../<autoflask>:1
msgid "error during picture update: file size exceeds 1.0MB"
msgid "``error during picture update: file size exceeds 1.0MB``"
msgstr ""
#: ../../<autoflask>:1
msgid "error during picture update"
msgid "``error during picture update``"
msgstr ""
#: ../../<autoflask>:1
@ -422,7 +418,7 @@ msgid "picture deleted"
msgstr ""
#: ../../<autoflask>:1
msgid "error during picture deletion"
msgid "``error during picture deletion``"
msgstr ""
#: ../../<autoflask>:1
@ -434,7 +430,7 @@ msgid "If email sending is disabled, this endpoint is not available"
msgstr ""
#: ../../<autoflask>:1
msgid "password reset request processed"
msgid "``password reset request processed``"
msgstr ""
#: ../../<autoflask>:1
@ -470,23 +466,23 @@ msgid "user new password"
msgstr ""
#: ../../<autoflask>:1
msgid "user account updated"
msgid "``user account updated``"
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload - email is missing - current password is missing - email: valid email must be provided - password: 8 characters required"
msgid "- ``invalid payload`` - ``email is missing`` - ``current password is missing`` - ``email: valid email must be provided`` - ``password: 8 characters required``"
msgstr ""
#: ../../<autoflask>:1
msgid "email is missing"
msgid "``email is missing``"
msgstr ""
#: ../../<autoflask>:1
msgid "current password is missing"
msgid "``current password is missing``"
msgstr ""
#: ../../<autoflask>:1
msgid "- provide a valid auth token - signature expired, please log in again - invalid token, please log in again - invalid credentials"
msgid "- ``provide a valid auth token`` - ``signature expired, please log in again`` - ``invalid token, please log in again`` - ``invalid credentials``"
msgstr ""
#: ../../<autoflask>:1
@ -502,11 +498,11 @@ msgid "password reset token"
msgstr ""
#: ../../<autoflask>:1
msgid "password updated"
msgid "``password updated``"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid token, please request a new token"
msgid "``invalid token, please request a new token``"
msgstr ""
#: ../../<autoflask>:1
@ -514,7 +510,7 @@ msgid "Update user email after confirmation."
msgstr ""
#: ../../<autoflask>:1
msgid "email updated"
msgid "``email updated``"
msgstr ""
#: ../../<autoflask>:1
@ -522,41 +518,33 @@ msgid "User logout. If a valid token is provided, it will be blacklisted."
msgstr ""
#: ../../<autoflask>:1
msgid "successful logout"
msgid "successful logout:"
msgstr ""
#: ../../<autoflask>:1
msgid "error on logout"
msgid "error on logout:"
msgstr ""
#: ../../<autoflask>:1
msgid "successfully logged out"
msgid "``successfully logged out``"
msgstr ""
#: ../../<autoflask>:1
msgid "- provide a valid auth token - The access token provided is expired, revoked, malformed, or invalid for other reasons."
msgid "- ``provide a valid auth token`` - ``The access token provided is expired, revoked, malformed, or invalid for other reasons.``"
msgstr ""
#: ../../<autoflask>:1
msgid "The access token provided is expired, revoked, malformed, or invalid for other reasons."
msgid "``The access token provided is expired, revoked, malformed, or invalid for other reasons.``"
msgstr ""
#: ../../<autoflask>:1
msgid "- error on token blacklist"
msgstr ""
#: ../../<autoflask>:1
msgid "error on token blacklist"
msgid "``error on token blacklist``"
msgstr ""
#: ../../<autoflask>:1
msgid "The authenticated user accepts the privacy policy."
msgstr ""
#: ../../<autoflask>:1
msgid "internal server error"
msgstr ""
#: ../../<autoflask>:1
msgid "Get a data export info for authenticated user if a request exists."
msgstr ""
@ -578,11 +566,11 @@ msgid "file name and size (in bytes) when export is successful"
msgstr ""
#: ../../<autoflask>:1
msgid "if a request exists"
msgid "if a request exists:"
msgstr ""
#: ../../<autoflask>:1
msgid "if no request"
msgid "if no request:"
msgstr ""
#: ../../<autoflask>:1
@ -590,15 +578,15 @@ msgid "Request a data export for authenticated user."
msgstr ""
#: ../../<autoflask>:1
msgid "- ongoing request exists - completed request already exists"
msgid "- ``ongoing request exists`` - ``completed request already exists``"
msgstr ""
#: ../../<autoflask>:1
msgid "ongoing request exists"
msgid "``ongoing request exists``"
msgstr ""
#: ../../<autoflask>:1
msgid "completed request already exists"
msgid "``completed request already exists``"
msgstr ""
#: ../../<autoflask>:1
@ -610,7 +598,7 @@ msgid "filename"
msgstr ""
#: ../../<autoflask>:1
msgid "file not found"
msgid "``file not found``"
msgstr ""
#: ../source/api/configuration.rst:2
@ -622,7 +610,7 @@ msgid "Get Application configuration."
msgstr ""
#: ../../<autoflask>:1
msgid "error on getting configuration"
msgid "``error on getting configuration``"
msgstr ""
#: ../../<autoflask>:1
@ -670,19 +658,19 @@ msgid "instance privacy policy"
msgstr ""
#: ../../<autoflask>:1
msgid "- provide a valid auth token - signature expired, please log in again - invalid token, please log in again - valid email must be provided for admin contact"
msgid "- ``provide a valid auth token`` - ``signature expired, please log in again`` - ``invalid token, please log in again`` - ``valid email must be provided for admin contact``"
msgstr ""
#: ../../<autoflask>:1
msgid "valid email must be provided for admin contact"
msgid "``valid email must be provided for admin contact``"
msgstr ""
#: ../../<autoflask>:1
msgid "you do not have permissions"
msgid "``you do not have permissions``"
msgstr ""
#: ../../<autoflask>:1
msgid "error when updating configuration"
msgid "``error when updating configuration``"
msgstr ""
#: ../../<autoflask>:1
@ -711,11 +699,11 @@ msgid "This endpoint is only accessible by FitTrackee client (first-party applic
msgstr ""
#: ../../<autoflask>:1
msgid "without parameters"
msgid "without parameters:"
msgstr ""
#: ../../<autoflask>:1
msgid "with 'page' parameter"
msgid "with 'page' parameter:"
msgstr ""
#: ../../<autoflask>:0
@ -751,7 +739,7 @@ msgid "client scopes"
msgstr ""
#: ../../<autoflask>:1
msgid "client description (`OPTIONAL`)"
msgid "client description (``OPTIONAL``)"
msgstr ""
#: ../../<autoflask>:1
@ -759,7 +747,7 @@ msgid "Get an OAuth2 client (app) by 'client_id'."
msgstr ""
#: ../../<autoflask>:1
msgid "not found"
msgid "not found:"
msgstr ""
#: ../../<autoflask>:1
@ -767,7 +755,7 @@ msgid "OAuth2 client client_id"
msgstr ""
#: ../../<autoflask>:1
msgid "OAuth2 client not found"
msgid "``OAuth2 client not found``"
msgstr ""
#: ../../<autoflask>:1
@ -823,7 +811,7 @@ msgid "method used to create challenge, for instance \"S256\" (mandatory if `cod
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload - errors returned by Authlib library"
msgid "- ``invalid payload`` - errors returned by Authlib library"
msgstr ""
#: ../../<autoflask>:1
@ -854,10 +842,6 @@ msgstr ""
msgid "refresh token (for token refresh)"
msgstr ""
#: ../../<autoflask>:1
msgid "- errors returned by Authlib library"
msgstr ""
#: ../../<autoflask>:1
msgid "Revoke a token for a given OAuth2 client (app)."
msgstr ""
@ -920,11 +904,11 @@ msgid "Get all sports"
msgstr ""
#: ../../<autoflask>:1
msgid "for non admin user :"
msgid "for non admin user:"
msgstr ""
#: ../../<autoflask>:1
msgid "for admin user :"
msgid "for admin user:"
msgstr ""
#: ../../<autoflask>:1
@ -932,15 +916,19 @@ msgid "Get a sport"
msgstr ""
#: ../../<autoflask>:1
msgid "success for non admin user :"
msgid "success for non admin user:"
msgstr ""
#: ../../<autoflask>:1
msgid "success for admin user :"
msgid "success for admin user:"
msgstr ""
#: ../../<autoflask>:1
msgid "sport not found"
msgid "sport not found:"
msgstr ""
#: ../../<autoflask>:1
msgid "``sport not found``"
msgstr ""
#: ../../<autoflask>:1
@ -973,11 +961,11 @@ msgid "**Example requests**:"
msgstr ""
#: ../../<autoflask>:1
msgid "with parameters"
msgid "with parameters:"
msgstr ""
#: ../../<autoflask>:1
msgid "no workouts"
msgid "no workouts:"
msgstr ""
#: ../../<autoflask>:1
@ -1017,11 +1005,7 @@ msgid "``year``: year (default)"
msgstr ""
#: ../../<autoflask>:1
msgid "- user does not exist"
msgstr ""
#: ../../<autoflask>:1
msgid "user does not exist"
msgid "``user does not exist``"
msgstr ""
#: ../../<autoflask>:1
@ -1029,15 +1013,15 @@ msgid "Get workouts statistics for a user by sport."
msgstr ""
#: ../../<autoflask>:1
msgid "without parameters (get stats for all sports with workouts)"
msgid "without parameters (get stats for all sports with workouts):"
msgstr ""
#: ../../<autoflask>:1
msgid "with sport id"
msgid "with sport id:"
msgstr ""
#: ../../<autoflask>:1
msgid "- user does not exist - sport does not exist"
msgid "- ``user does not exist`` - ``sport does not exist``"
msgstr ""
#: ../../<autoflask>:1
@ -1063,7 +1047,7 @@ msgid "**Scope**: ``users:read``"
msgstr ""
#: ../../<autoflask>:1
msgid "with some query parameters"
msgid "with some query parameters:"
msgstr ""
#: ../../<autoflask>:1
@ -1094,16 +1078,20 @@ msgstr ""
msgid "user name"
msgstr ""
#: ../../<autoflask>:1
msgid "- ``user does not exist``"
msgstr ""
#: ../../<autoflask>:1
msgid "get user picture"
msgstr ""
#: ../../<autoflask>:1
msgid "- user does not exist - No picture."
msgid "- ``user does not exist`` - ``No picture.``"
msgstr ""
#: ../../<autoflask>:1
msgid "No picture."
msgid "``No picture.``"
msgstr ""
#: ../../<autoflask>:1
@ -1151,15 +1139,15 @@ msgid "reset user password"
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload - valid email must be provided - new email must be different than curent email"
msgid "- ``invalid payload`` - ``valid email must be provided`` - ``new email must be different than curent email``"
msgstr ""
#: ../../<autoflask>:1
msgid "valid email must be provided"
msgid "``valid email must be provided``"
msgstr ""
#: ../../<autoflask>:1
msgid "new email must be different than curent email"
msgid "``new email must be different than curent email``"
msgstr ""
#: ../../<autoflask>:1
@ -1179,11 +1167,11 @@ msgid "user account deleted"
msgstr ""
#: ../../<autoflask>:1
msgid "- you do not have permissions - you can not delete your account, no other user has admin rights"
msgid "- ``you do not have permissions`` - ``you can not delete your account, no other user has admin rights``"
msgstr ""
#: ../../<autoflask>:1
msgid "you can not delete your account, no other user has admin rights"
msgid "``you can not delete your account, no other user has admin rights``"
msgstr ""
#: ../source/api/workouts.rst:2
@ -1196,7 +1184,7 @@ msgid "Get workouts for the authenticated user."
msgstr ""
#: ../../<autoflask>:1
msgid "returning at least one workout"
msgid "returning at least one workout:"
msgstr ""
#: ../../<autoflask>:1
@ -1268,7 +1256,7 @@ msgid "workout short id"
msgstr ""
#: ../../<autoflask>:1
msgid "workout not found"
msgid "``workout not found``"
msgstr ""
#: ../../<autoflask>:1
@ -1276,11 +1264,11 @@ msgid "Get gpx file for a workout displayed on map with Leaflet."
msgstr ""
#: ../../<autoflask>:1
msgid "- workout not found - no gpx file for this workout"
msgid "- ``workout not found`` - ``no gpx file for this workout``"
msgstr ""
#: ../../<autoflask>:1
msgid "no gpx file for this workout"
msgid "``no gpx file for this workout``"
msgstr ""
#: ../../<autoflask>:1
@ -1308,7 +1296,7 @@ msgid "workout map id"
msgstr ""
#: ../../<autoflask>:1
msgid "map does not exist"
msgid "``map does not exist``"
msgstr ""
#: ../../<autoflask>:1
@ -1340,11 +1328,11 @@ msgid "Download gpx file."
msgstr ""
#: ../../<autoflask>:1
msgid "- workout not found - no gpx file for workout"
msgid "- ``workout not found`` - ``no gpx file for workout``"
msgstr ""
#: ../../<autoflask>:1
msgid "no gpx file for workout"
msgid "``no gpx file for workout``"
msgstr ""
#: ../../<autoflask>:1
@ -1360,7 +1348,7 @@ msgid "sport id and notes (example: ``{\"sport_id\": 1, \"notes\": \"\"}``). Dou
msgstr ""
#: ../../<autoflask>:1
msgid "workout created"
msgid "``workout created``"
msgstr ""
#: ../../<autoflask>:1
@ -1399,6 +1387,10 @@ msgstr ""
msgid "workout date, in user timezone (format: ``%Y-%m-%d %H:%M``)"
msgstr ""
#: ../../<autoflask>:1
msgid "workout created"
msgstr ""
#: ../../<autoflask>:1
msgid "Update a workout."
msgstr ""
@ -3006,7 +2998,8 @@ msgid "Hiking"
msgstr ""
#: ../source/changelog.md:1016
msgid "Montain Biking"
#: ../source/features.rst:19
msgid "Mountain Biking"
msgstr ""
#: ../source/changelog.md:1017
@ -3341,10 +3334,6 @@ msgstr ""
msgid "Cycling (Virtual) (*new in 0.7.3*)"
msgstr ""
#: ../source/features.rst:19
msgid "Mountain Biking"
msgstr ""
#: ../source/features.rst:20
msgid "Mountain Biking (Electric) (*new in 0.5.0*)"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: FitTrackee 0.7.17\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-06-18 15:20+0200\n"
"POT-Creation-Date: 2023-06-18 20:35+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@ -42,11 +42,11 @@ msgid "**Example responses**:"
msgstr ""
#: ../../<autoflask>:1
msgid "success"
msgid "success:"
msgstr ""
#: ../../<autoflask>:1
msgid "error on registration"
msgid "error on registration:"
msgstr ""
#: ../../<autoflask>
@ -80,50 +80,54 @@ msgid "Status Codes"
msgstr ""
#: ../../<autoflask>:1
msgid ""
"- invalid payload - sorry, that username is already taken - Errors: -"
" username: 3 to 30 characters required - username: only "
"alphanumeric characters and the underscore character \"_\" allowed"
" - email: valid email must be provided - password: 8 characters "
"required"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid payload"
msgstr ""
#: ../../<autoflask>:1
msgid "sorry, that username is already taken"
msgstr ""
#: ../../<autoflask>:1
msgid "Errors:"
msgstr ""
#: ../../<autoflask>:1
msgid "username: 3 to 30 characters required"
msgid "``success``"
msgstr ""
#: ../../<autoflask>:1
msgid ""
"username: only alphanumeric characters and the underscore character \"_\""
" allowed"
"- ``invalid payload`` - ``sorry, that username is already taken`` - "
"``sorry, you must agree privacy policy to register`` - ``username: 3 to "
"30 characters required`` - ``username: only alphanumeric characters and "
"the underscore character \"_\" allowed`` - ``email: valid email must be"
" provided`` - ``password: 8 characters required``"
msgstr ""
#: ../../<autoflask>:1
msgid "email: valid email must be provided"
msgid "``invalid payload``"
msgstr ""
#: ../../<autoflask>:1
msgid "password: 8 characters required"
msgid "``sorry, that username is already taken``"
msgstr ""
#: ../../<autoflask>:1
msgid "error, registration is disabled"
msgid "``sorry, you must agree privacy policy to register``"
msgstr ""
#: ../../<autoflask>:1
msgid "error, please try again or contact the administrator"
msgid "``username: 3 to 30 characters required``"
msgstr ""
#: ../../<autoflask>:1
msgid ""
"``username: only alphanumeric characters and the underscore character "
"\"_\" allowed``"
msgstr ""
#: ../../<autoflask>:1
msgid "``email: valid email must be provided``"
msgstr ""
#: ../../<autoflask>:1
msgid "``password: 8 characters required``"
msgstr ""
#: ../../<autoflask>:1
msgid "``error, registration is disabled``"
msgstr ""
#: ../../<autoflask>:1
msgid "``error, please try again or contact the administrator``"
msgstr ""
#: ../../<autoflask>:1
@ -139,7 +143,7 @@ msgid "confirmation token"
msgstr ""
#: ../../<autoflask>:1
msgid "account confirmation successful"
msgid "``account confirmation successful``"
msgstr ""
#: ../../<autoflask>:1
@ -151,11 +155,11 @@ msgid "If email sending is disabled, this endpoint is not available."
msgstr ""
#: ../../<autoflask>:1
msgid "confirmation email resent"
msgid "``confirmation email resent``"
msgstr ""
#: ../../<autoflask>:1
msgid "the requested URL was not found on the server"
msgid "``the requested URL was not found on the server``"
msgstr ""
#: ../../<autoflask>:1
@ -167,7 +171,7 @@ msgid "Only user with an active account can log in."
msgstr ""
#: ../../<autoflask>:1
msgid "successful login"
msgid "successful login:"
msgstr ""
#: ../../<autoflask>:1
@ -179,11 +183,11 @@ msgid "password"
msgstr ""
#: ../../<autoflask>:1
msgid "successfully logged in"
msgid "``successfully logged in``"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid credentials"
msgid "``invalid credentials``"
msgstr ""
#: ../../<autoflask>:1
@ -202,26 +206,22 @@ msgstr ""
msgid "OAuth 2.0 Bearer Token"
msgstr ""
#: ../../<autoflask>:1
msgid "success."
msgstr ""
#: ../../<autoflask>:1
msgid ""
"- provide a valid auth token - signature expired, please log in again - "
"invalid token, please log in again"
"- ``provide a valid auth token`` - ``signature expired, please log in "
"again`` - ``invalid token, please log in again``"
msgstr ""
#: ../../<autoflask>:1
msgid "provide a valid auth token"
msgid "``provide a valid auth token``"
msgstr ""
#: ../../<autoflask>:1
msgid "signature expired, please log in again"
msgid "``signature expired, please log in again``"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid token, please log in again"
msgid "``invalid token, please log in again``"
msgstr ""
#: ../../<autoflask>:1
@ -254,11 +254,7 @@ msgid "user birth date (format: ``%Y-%m-%d``)"
msgstr ""
#: ../../<autoflask>:1
msgid "user profile updated"
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload"
msgid "``user profile updated``"
msgstr ""
#: ../../<autoflask>:1
@ -330,17 +326,17 @@ msgid "does week start on Monday?"
msgstr ""
#: ../../<autoflask>:1
msgid "user preferences updated"
msgid "``user preferences updated``"
msgstr ""
#: ../../<autoflask>:1
msgid ""
"- invalid payload - password: password and password confirmation don't "
"match"
"- ``invalid payload`` - ``password: password and password confirmation "
"don't match``"
msgstr ""
#: ../../<autoflask>:1
msgid "password: password and password confirmation don't match"
msgid "``password: password and password confirmation don't match``"
msgstr ""
#: ../../<autoflask>:1
@ -360,19 +356,19 @@ msgid "stopped speed threshold used by gpxpy"
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload - invalid hexadecimal color"
msgid "``user sport preferences updated``"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid hexadecimal color"
msgid "- ``invalid payload`` - ``invalid hexadecimal color``"
msgstr ""
#: ../../<autoflask>:1
msgid "- sport does not exist"
msgid "``invalid hexadecimal color``"
msgstr ""
#: ../../<autoflask>:1
msgid "sport does not exist"
msgid "``sport does not exist``"
msgstr ""
#: ../../<autoflask>:1
@ -404,33 +400,33 @@ msgid "image file (allowed extensions: .jpg, .png, .gif)"
msgstr ""
#: ../../<autoflask>:1
msgid "user picture updated"
msgid "``user picture updated``"
msgstr ""
#: ../../<autoflask>:1
msgid ""
"- invalid payload - no file part - no selected file - file extension not "
"allowed"
"- ``invalid payload`` - ``no file part`` - ``no selected file`` - ``file "
"extension not allowed``"
msgstr ""
#: ../../<autoflask>:1
msgid "no file part"
msgid "``no file part``"
msgstr ""
#: ../../<autoflask>:1
msgid "no selected file"
msgid "``no selected file``"
msgstr ""
#: ../../<autoflask>:1
msgid "file extension not allowed"
msgid "``file extension not allowed``"
msgstr ""
#: ../../<autoflask>:1
msgid "error during picture update: file size exceeds 1.0MB"
msgid "``error during picture update: file size exceeds 1.0MB``"
msgstr ""
#: ../../<autoflask>:1
msgid "error during picture update"
msgid "``error during picture update``"
msgstr ""
#: ../../<autoflask>:1
@ -442,7 +438,7 @@ msgid "picture deleted"
msgstr ""
#: ../../<autoflask>:1
msgid "error during picture deletion"
msgid "``error during picture deletion``"
msgstr ""
#: ../../<autoflask>:1
@ -454,7 +450,7 @@ msgid "If email sending is disabled, this endpoint is not available"
msgstr ""
#: ../../<autoflask>:1
msgid "password reset request processed"
msgid "``password reset request processed``"
msgstr ""
#: ../../<autoflask>:1
@ -490,27 +486,29 @@ msgid "user new password"
msgstr ""
#: ../../<autoflask>:1
msgid "user account updated"
msgid "``user account updated``"
msgstr ""
#: ../../<autoflask>:1
msgid ""
"- invalid payload - email is missing - current password is missing - "
"email: valid email must be provided - password: 8 characters required"
"- ``invalid payload`` - ``email is missing`` - ``current password is "
"missing`` - ``email: valid email must be provided`` - ``password: 8 "
"characters required``"
msgstr ""
#: ../../<autoflask>:1
msgid "email is missing"
msgid "``email is missing``"
msgstr ""
#: ../../<autoflask>:1
msgid "current password is missing"
msgid "``current password is missing``"
msgstr ""
#: ../../<autoflask>:1
msgid ""
"- provide a valid auth token - signature expired, please log in again - "
"invalid token, please log in again - invalid credentials"
"- ``provide a valid auth token`` - ``signature expired, please log in "
"again`` - ``invalid token, please log in again`` - ``invalid "
"credentials``"
msgstr ""
#: ../../<autoflask>:1
@ -526,11 +524,11 @@ msgid "password reset token"
msgstr ""
#: ../../<autoflask>:1
msgid "password updated"
msgid "``password updated``"
msgstr ""
#: ../../<autoflask>:1
msgid "invalid token, please request a new token"
msgid "``invalid token, please request a new token``"
msgstr ""
#: ../../<autoflask>:1
@ -538,7 +536,7 @@ msgid "Update user email after confirmation."
msgstr ""
#: ../../<autoflask>:1
msgid "email updated"
msgid "``email updated``"
msgstr ""
#: ../../<autoflask>:1
@ -546,45 +544,37 @@ msgid "User logout. If a valid token is provided, it will be blacklisted."
msgstr ""
#: ../../<autoflask>:1
msgid "successful logout"
msgid "successful logout:"
msgstr ""
#: ../../<autoflask>:1
msgid "error on logout"
msgid "error on logout:"
msgstr ""
#: ../../<autoflask>:1
msgid "successfully logged out"
msgid "``successfully logged out``"
msgstr ""
#: ../../<autoflask>:1
msgid ""
"- provide a valid auth token - The access token provided is expired, "
"revoked, malformed, or invalid for other reasons."
"- ``provide a valid auth token`` - ``The access token provided is "
"expired, revoked, malformed, or invalid for other reasons.``"
msgstr ""
#: ../../<autoflask>:1
msgid ""
"The access token provided is expired, revoked, malformed, or invalid for "
"other reasons."
"``The access token provided is expired, revoked, malformed, or invalid "
"for other reasons.``"
msgstr ""
#: ../../<autoflask>:1
msgid "- error on token blacklist"
msgstr ""
#: ../../<autoflask>:1
msgid "error on token blacklist"
msgid "``error on token blacklist``"
msgstr ""
#: ../../<autoflask>:1
msgid "The authenticated user accepts the privacy policy."
msgstr ""
#: ../../<autoflask>:1
msgid "internal server error"
msgstr ""
#: ../../<autoflask>:1
msgid "Get a data export info for authenticated user if a request exists."
msgstr ""
@ -606,11 +596,11 @@ msgid "file name and size (in bytes) when export is successful"
msgstr ""
#: ../../<autoflask>:1
msgid "if a request exists"
msgid "if a request exists:"
msgstr ""
#: ../../<autoflask>:1
msgid "if no request"
msgid "if no request:"
msgstr ""
#: ../../<autoflask>:1
@ -618,15 +608,15 @@ msgid "Request a data export for authenticated user."
msgstr ""
#: ../../<autoflask>:1
msgid "- ongoing request exists - completed request already exists"
msgid "- ``ongoing request exists`` - ``completed request already exists``"
msgstr ""
#: ../../<autoflask>:1
msgid "ongoing request exists"
msgid "``ongoing request exists``"
msgstr ""
#: ../../<autoflask>:1
msgid "completed request already exists"
msgid "``completed request already exists``"
msgstr ""
#: ../../<autoflask>:1
@ -638,7 +628,7 @@ msgid "filename"
msgstr ""
#: ../../<autoflask>:1
msgid "file not found"
msgid "``file not found``"
msgstr ""
#: ../source/api/configuration.rst:2
@ -650,7 +640,7 @@ msgid "Get Application configuration."
msgstr ""
#: ../../<autoflask>:1
msgid "error on getting configuration"
msgid "``error on getting configuration``"
msgstr ""
#: ../../<autoflask>:1
@ -699,21 +689,21 @@ msgstr ""
#: ../../<autoflask>:1
msgid ""
"- provide a valid auth token - signature expired, please log in again - "
"invalid token, please log in again - valid email must be provided for "
"admin contact"
"- ``provide a valid auth token`` - ``signature expired, please log in "
"again`` - ``invalid token, please log in again`` - ``valid email must be "
"provided for admin contact``"
msgstr ""
#: ../../<autoflask>:1
msgid "valid email must be provided for admin contact"
msgid "``valid email must be provided for admin contact``"
msgstr ""
#: ../../<autoflask>:1
msgid "you do not have permissions"
msgid "``you do not have permissions``"
msgstr ""
#: ../../<autoflask>:1
msgid "error when updating configuration"
msgid "``error when updating configuration``"
msgstr ""
#: ../../<autoflask>:1
@ -745,11 +735,11 @@ msgid ""
msgstr ""
#: ../../<autoflask>:1
msgid "without parameters"
msgid "without parameters:"
msgstr ""
#: ../../<autoflask>:1
msgid "with 'page' parameter"
msgid "with 'page' parameter:"
msgstr ""
#: ../../<autoflask>
@ -785,7 +775,7 @@ msgid "client scopes"
msgstr ""
#: ../../<autoflask>:1
msgid "client description (`OPTIONAL`)"
msgid "client description (``OPTIONAL``)"
msgstr ""
#: ../../<autoflask>:1
@ -793,7 +783,7 @@ msgid "Get an OAuth2 client (app) by 'client_id'."
msgstr ""
#: ../../<autoflask>:1
msgid "not found"
msgid "not found:"
msgstr ""
#: ../../<autoflask>:1
@ -801,7 +791,7 @@ msgid "OAuth2 client client_id"
msgstr ""
#: ../../<autoflask>:1
msgid "OAuth2 client not found"
msgid "``OAuth2 client not found``"
msgstr ""
#: ../../<autoflask>:1
@ -865,7 +855,7 @@ msgid ""
msgstr ""
#: ../../<autoflask>:1
msgid "- invalid payload - errors returned by Authlib library"
msgid "- ``invalid payload`` - errors returned by Authlib library"
msgstr ""
#: ../../<autoflask>:1
@ -898,10 +888,6 @@ msgstr ""
msgid "refresh token (for token refresh)"
msgstr ""
#: ../../<autoflask>:1
msgid "- errors returned by Authlib library"
msgstr ""
#: ../../<autoflask>:1
msgid "Revoke a token for a given OAuth2 client (app)."
msgstr ""
@ -963,11 +949,11 @@ msgid "Get all sports"
msgstr ""
#: ../../<autoflask>:1
msgid "for non admin user :"
msgid "for non admin user:"
msgstr ""
#: ../../<autoflask>:1
msgid "for admin user :"
msgid "for admin user:"
msgstr ""
#: ../../<autoflask>:1
@ -975,15 +961,19 @@ msgid "Get a sport"
msgstr ""
#: ../../<autoflask>:1
msgid "success for non admin user :"
msgid "success for non admin user:"
msgstr ""
#: ../../<autoflask>:1
msgid "success for admin user :"
msgid "success for admin user:"
msgstr ""
#: ../../<autoflask>:1
msgid "sport not found"
msgid "sport not found:"
msgstr ""
#: ../../<autoflask>:1
msgid "``sport not found``"
msgstr ""
#: ../../<autoflask>:1
@ -1015,11 +1005,11 @@ msgid "**Example requests**:"
msgstr ""
#: ../../<autoflask>:1
msgid "with parameters"
msgid "with parameters:"
msgstr ""
#: ../../<autoflask>:1
msgid "no workouts"
msgid "no workouts:"
msgstr ""
#: ../../<autoflask>:1
@ -1063,11 +1053,7 @@ msgid "``year``: year (default)"
msgstr ""
#: ../../<autoflask>:1
msgid "- user does not exist"
msgstr ""
#: ../../<autoflask>:1
msgid "user does not exist"
msgid "``user does not exist``"
msgstr ""
#: ../../<autoflask>:1
@ -1075,15 +1061,15 @@ msgid "Get workouts statistics for a user by sport."
msgstr ""
#: ../../<autoflask>:1
msgid "without parameters (get stats for all sports with workouts)"
msgid "without parameters (get stats for all sports with workouts):"
msgstr ""
#: ../../<autoflask>:1
msgid "with sport id"
msgid "with sport id:"
msgstr ""
#: ../../<autoflask>:1
msgid "- user does not exist - sport does not exist"
msgid "- ``user does not exist`` - ``sport does not exist``"
msgstr ""
#: ../../<autoflask>:1
@ -1109,7 +1095,7 @@ msgid "**Scope**: ``users:read``"
msgstr ""
#: ../../<autoflask>:1
msgid "with some query parameters"
msgid "with some query parameters:"
msgstr ""
#: ../../<autoflask>:1
@ -1144,16 +1130,20 @@ msgstr ""
msgid "user name"
msgstr ""
#: ../../<autoflask>:1
msgid "- ``user does not exist``"
msgstr ""
#: ../../<autoflask>:1
msgid "get user picture"
msgstr ""
#: ../../<autoflask>:1
msgid "- user does not exist - No picture."
msgid "- ``user does not exist`` - ``No picture.``"
msgstr ""
#: ../../<autoflask>:1
msgid "No picture."
msgid "``No picture.``"
msgstr ""
#: ../../<autoflask>:1
@ -1204,16 +1194,16 @@ msgstr ""
#: ../../<autoflask>:1
msgid ""
"- invalid payload - valid email must be provided - new email must be "
"different than curent email"
"- ``invalid payload`` - ``valid email must be provided`` - ``new email "
"must be different than curent email``"
msgstr ""
#: ../../<autoflask>:1
msgid "valid email must be provided"
msgid "``valid email must be provided``"
msgstr ""
#: ../../<autoflask>:1
msgid "new email must be different than curent email"
msgid "``new email must be different than curent email``"
msgstr ""
#: ../../<autoflask>:1
@ -1236,12 +1226,12 @@ msgstr ""
#: ../../<autoflask>:1
msgid ""
"- you do not have permissions - you can not delete your account, no other"
" user has admin rights"
"- ``you do not have permissions`` - ``you can not delete your account, no"
" other user has admin rights``"
msgstr ""
#: ../../<autoflask>:1
msgid "you can not delete your account, no other user has admin rights"
msgid "``you can not delete your account, no other user has admin rights``"
msgstr ""
#: ../source/api/workouts.rst:2 ../source/features.rst:13
@ -1253,7 +1243,7 @@ msgid "Get workouts for the authenticated user."
msgstr ""
#: ../../<autoflask>:1
msgid "returning at least one workout"
msgid "returning at least one workout:"
msgstr ""
#: ../../<autoflask>:1
@ -1327,7 +1317,7 @@ msgid "workout short id"
msgstr ""
#: ../../<autoflask>:1
msgid "workout not found"
msgid "``workout not found``"
msgstr ""
#: ../../<autoflask>:1
@ -1335,11 +1325,11 @@ msgid "Get gpx file for a workout displayed on map with Leaflet."
msgstr ""
#: ../../<autoflask>:1
msgid "- workout not found - no gpx file for this workout"
msgid "- ``workout not found`` - ``no gpx file for this workout``"
msgstr ""
#: ../../<autoflask>:1
msgid "no gpx file for this workout"
msgid "``no gpx file for this workout``"
msgstr ""
#: ../../<autoflask>:1
@ -1367,7 +1357,7 @@ msgid "workout map id"
msgstr ""
#: ../../<autoflask>:1
msgid "map does not exist"
msgid "``map does not exist``"
msgstr ""
#: ../../<autoflask>:1
@ -1399,11 +1389,11 @@ msgid "Download gpx file."
msgstr ""
#: ../../<autoflask>:1
msgid "- workout not found - no gpx file for workout"
msgid "- ``workout not found`` - ``no gpx file for workout``"
msgstr ""
#: ../../<autoflask>:1
msgid "no gpx file for workout"
msgid "``no gpx file for workout``"
msgstr ""
#: ../../<autoflask>:1
@ -1421,7 +1411,7 @@ msgid ""
msgstr ""
#: ../../<autoflask>:1
msgid "workout created"
msgid "``workout created``"
msgstr ""
#: ../../<autoflask>:1
@ -1461,6 +1451,10 @@ msgstr ""
msgid "workout date, in user timezone (format: ``%Y-%m-%d %H:%M``)"
msgstr ""
#: ../../<autoflask>:1
msgid "workout created"
msgstr ""
#: ../../<autoflask>:1
msgid "Update a workout."
msgstr ""
@ -3062,8 +3056,8 @@ msgstr ""
msgid "Hiking"
msgstr ""
#: ../source/changelog.md:1016
msgid "Montain Biking"
#: ../source/changelog.md:1016 ../source/features.rst:19
msgid "Mountain Biking"
msgstr ""
#: ../source/changelog.md:1017 ../source/features.rst:23
@ -3403,10 +3397,6 @@ msgstr ""
msgid "Cycling (Virtual) (*new in 0.7.3*)"
msgstr ""
#: ../source/features.rst:19
msgid "Mountain Biking"
msgstr ""
#: ../source/features.rst:20
msgid "Mountain Biking (Electric) (*new in 0.5.0*)"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -58,8 +58,8 @@ def get_application_config() -> Union[Dict, HttpResponse]:
"status": "success"
}
:statuscode 200: success
:statuscode 500: error on getting configuration
:statuscode 200: ``success``
:statuscode 500: ``error on getting configuration``
"""
try:
@ -125,15 +125,15 @@ def update_application_config(auth_user: User) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 400: invalid payload
:statuscode 200: ``success``
:statuscode 400: ``invalid payload``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- valid email must be provided for admin contact
:statuscode 403: you do not have permissions
:statuscode 500: error when updating configuration
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
- ``valid email must be provided for admin contact``
:statuscode 403: ``you do not have permissions``
:statuscode 500: ``error when updating configuration``
"""
config_data = request.get_json()
if not config_data:
@ -209,6 +209,6 @@ def health_check() -> Union[Dict, HttpResponse]:
"status": "success"
}
:statuscode 200: success
:statuscode 200: ``success``
"""
return {'status': 'success', 'message': 'pong!'}

View File

@ -47,14 +47,14 @@ def get_clients(auth_user: User) -> Dict:
**Example request**:
- without parameters
- without parameters:
.. sourcecode:: http
GET /api/oauth/apps HTTP/1.1
Content-Type: application/json
- with 'page' parameter
- with 'page' parameter:
.. sourcecode:: http
@ -99,11 +99,11 @@ def get_clients(auth_user: User) -> Dict:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
params = request.args.copy()
page = int(params.get('page', 1))
@ -177,17 +177,16 @@ def create_client(auth_user: User) -> Union[HttpResponse, Tuple[Dict, int]]:
:json string client_uri: client URL
:json array redirect_uri: list of client redirect URLs (string)
:json string scope: client scopes
:json string client_description: client description (`OPTIONAL`)
:json string client_description: client description (``OPTIONAL``)
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 400:
- invalid payload
:statuscode 200: ``success``
:statuscode 400: ``invalid payload``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
client_metadata = request.get_json()
if not client_metadata:
@ -268,7 +267,7 @@ def get_client_by_client_id(
**Example responses**:
- success
- success:
.. sourcecode:: http
@ -293,7 +292,7 @@ def get_client_by_client_id(
"status": "success"
}
- not found
- not found:
.. sourcecode:: http
@ -309,12 +308,12 @@ def get_client_by_client_id(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: OAuth2 client not found
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``OAuth2 client not found``
"""
return get_client(
auth_user, client_id=None, client_client_id=client_client_id
@ -341,7 +340,7 @@ def get_client_by_id(
**Example responses**:
- success
- success:
.. sourcecode:: http
@ -366,7 +365,7 @@ def get_client_by_id(
"status": "success"
}
- not found
- not found:
.. sourcecode:: http
@ -382,12 +381,12 @@ def get_client_by_id(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: OAuth2 client not found
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``OAuth2 client not found``
"""
return get_client(auth_user, client_id=client_id, client_client_id=None)
@ -423,10 +422,10 @@ def delete_client(
:statuscode 204: OAuth2 client deleted
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: OAuth2 client not found
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``OAuth2 client not found``
"""
client = OAuth2Client.query.filter_by(
id=client_id,
@ -474,12 +473,12 @@ def revoke_client_tokens(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: OAuth2 client not found
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``OAuth2 client not found``
"""
client = OAuth2Client.query.filter_by(id=client_id).first()
@ -534,14 +533,14 @@ def authorize(auth_user: User) -> Union[HttpResponse, Dict]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 400:
- invalid payload
- ``invalid payload``
- errors returned by Authlib library
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
data = request.form
if (
@ -603,13 +602,12 @@ def issue_token() -> Response:
(for token issue with PKCE, not mandatory)
:form string refresh_token: refresh token (for token refresh)
:statuscode 200: success
:statuscode 400:
- errors returned by Authlib library
:statuscode 200: ``success``
:statuscode 400: errors returned by Authlib library
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
return authorization_server.create_token_response()
@ -639,12 +637,11 @@ def revoke_token() -> Response:
:form string client_secret: OAuth2 client secret
:form string token: access token to revoke
:statuscode 200: success
:statuscode 400:
- errors returned by Authlib library
:statuscode 200: ``success``
:statuscode 400: errors returned by Authlib library
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
return authorization_server.create_endpoint_response('revocation')

View File

@ -91,7 +91,7 @@ def register_user() -> Union[Tuple[Dict, int], HttpResponse]:
**Example responses**:
- success
- success:
.. sourcecode:: http
@ -102,7 +102,7 @@ def register_user() -> Union[Tuple[Dict, int], HttpResponse]:
"status": "success"
}
- error on registration
- error on registration:
.. sourcecode:: http
@ -121,21 +121,18 @@ def register_user() -> Union[Tuple[Dict, int], HttpResponse]:
fallback to 'en' (english))
:<json boolean accepted_policy: ``true`` if user accepted privacy policy
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 400:
- invalid payload
- sorry, that username is already taken
- Errors:
- username: 3 to 30 characters required
- username:
only alphanumeric characters and the underscore
character "_" allowed
- email: valid email must be provided
- password: 8 characters required
:statuscode 403:
error, registration is disabled
:statuscode 500:
error, please try again or contact the administrator
- ``invalid payload``
- ``sorry, that username is already taken``
- ``sorry, you must agree privacy policy to register``
- ``username: 3 to 30 characters required``
- ``username: only alphanumeric characters and the underscore
character "_" allowed``
- ``email: valid email must be provided``
- ``password: 8 characters required``
:statuscode 403: ``error, registration is disabled``
:statuscode 500: ``error, please try again or contact the administrator``
"""
if not current_app.config.get('is_registration_enabled'):
return ForbiddenErrorResponse('error, registration is disabled')
@ -204,7 +201,7 @@ def login_user() -> Union[Dict, HttpResponse]:
**Example responses**:
- successful login
- successful login:
.. sourcecode:: http
@ -232,10 +229,10 @@ def login_user() -> Union[Dict, HttpResponse]:
:<json string email: user email
:<json string password: password
:statuscode 200: successfully logged in
:statuscode 400: invalid payload
:statuscode 401: invalid credentials
:statuscode 500: error, please try again or contact the administrator
:statuscode 200: ``successfully logged in``
:statuscode 400: ``invalid payload``
:statuscode 401: ``invalid credentials``
:statuscode 500: ``error, please try again or contact the administrator``
"""
# get post data
@ -373,11 +370,11 @@ def get_authenticated_user_profile(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success.
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
return {'status': 'success', 'data': auth_user.serialize(auth_user)}
@ -497,14 +494,13 @@ def edit_user(auth_user: User) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: user profile updated
:statuscode 400:
- invalid payload
:statuscode 200: ``user profile updated``
:statuscode 400: ``invalid payload``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 500: error, please try again or contact the administrator
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 500: ``error, please try again or contact the administrator``
"""
# get post data
post_data = request.get_json()
@ -668,19 +664,19 @@ def update_user_account(auth_user: User) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: user account updated
:statuscode 200: ``user account updated``
:statuscode 400:
- invalid payload
- email is missing
- current password is missing
- email: valid email must be provided
- password: 8 characters required
- ``invalid payload``
- ``email is missing``
- ``current password is missing``
- ``email: valid email must be provided``
- ``password: 8 characters required``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- invalid credentials
:statuscode 500: error, please try again or contact the administrator
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
- ``invalid credentials``
:statuscode 500: ``error, please try again or contact the administrator``
"""
data = request.get_json()
if not data:
@ -901,15 +897,15 @@ def edit_user_preferences(auth_user: User) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: user preferences updated
:statuscode 200: ``user preferences updated``
:statuscode 400:
- invalid payload
- password: password and password confirmation don't match
- ``invalid payload``
- ``password: password and password confirmation don't match``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 500: error, please try again or contact the administrator
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 500: ``error, please try again or contact the administrator``
"""
# get post data
post_data = request.get_json()
@ -999,17 +995,16 @@ def edit_user_sport_preferences(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: user preferences updated
:statuscode 200: ``user sport preferences updated``
:statuscode 400:
- invalid payload
- invalid hexadecimal color
- ``invalid payload``
- ``invalid hexadecimal color``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404:
- sport does not exist
:statuscode 500: error, please try again or contact the administrator
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``sport does not exist``
:statuscode 500: ``error, please try again or contact the administrator``
"""
post_data = request.get_json()
if (
@ -1094,12 +1089,11 @@ def reset_user_sport_preferences(
:statuscode 204: user preferences deleted
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404:
- sport does not exist
:statuscode 500: error, please try again or contact the administrator
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``sport does not exist``
:statuscode 500: ``error, please try again or contact the administrator``
"""
sport = Sport.query.filter_by(id=sport_id).first()
if not sport:
@ -1151,18 +1145,18 @@ def edit_picture(auth_user: User) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: user picture updated
:statuscode 200: ``user picture updated``
:statuscode 400:
- invalid payload
- no file part
- no selected file
- file extension not allowed
- ``invalid payload``
- ``no file part``
- ``no selected file``
- ``file extension not allowed``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 413: error during picture update: file size exceeds 1.0MB
:statuscode 500: error during picture update
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 413: ``error during picture update: file size exceeds 1.0MB``
:statuscode 500: ``error during picture update``
"""
try:
response_object = get_error_response_if_file_is_invalid(
@ -1235,10 +1229,10 @@ def del_picture(auth_user: User) -> Union[Tuple[Dict, int], HttpResponse]:
:statuscode 204: picture deleted
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 500: error during picture deletion
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 500: ``error during picture deletion``
"""
try:
@ -1282,9 +1276,9 @@ def request_password_reset() -> Union[Dict, HttpResponse]:
:<json string email: user email
:statuscode 200: password reset request processed
:statuscode 400: invalid payload
:statuscode 404: the requested URL was not found on the server
:statuscode 200: ``password reset request processed``
:statuscode 400: ``invalid payload``
:statuscode 404: ``the requested URL was not found on the server``
"""
if not current_app.config['CAN_SEND_EMAILS']:
@ -1353,10 +1347,10 @@ def update_password() -> Union[Dict, HttpResponse]:
:<json string password: password (8 characters required)
:<json string token: password reset token
:statuscode 200: password updated
:statuscode 400: invalid payload
:statuscode 401: invalid token, please request a new token
:statuscode 500: error, please try again or contact the administrator
:statuscode 200: ``password updated``
:statuscode 400: ``invalid payload``
:statuscode 401: ``invalid token, please request a new token``
:statuscode 500: ``error, please try again or contact the administrator``
"""
post_data = request.get_json()
@ -1433,9 +1427,9 @@ def update_email() -> Union[Dict, HttpResponse]:
:<json string token: password reset token
:statuscode 200: email updated
:statuscode 400: invalid payload
:statuscode 500: error, please try again or contact the administrator
:statuscode 200: ``email updated``
:statuscode 400: ``invalid payload``
:statuscode 500: ``error, please try again or contact the administrator``
"""
post_data = request.get_json()
@ -1493,9 +1487,9 @@ def confirm_account() -> Union[Dict, HttpResponse]:
:<json string token: confirmation token
:statuscode 200: account confirmation successful
:statuscode 400: invalid payload
:statuscode 500: error, please try again or contact the administrator
:statuscode 200: ``account confirmation successful``
:statuscode 400: ``invalid payload``
:statuscode 500: ``error, please try again or contact the administrator``
"""
post_data = request.get_json()
@ -1556,10 +1550,10 @@ def resend_account_confirmation_email() -> Union[Dict, HttpResponse]:
:<json string email: user email
:statuscode 200: confirmation email resent
:statuscode 400: invalid payload
:statuscode 404: the requested URL was not found on the server
:statuscode 500: error, please try again or contact the administrator
:statuscode 200: ``confirmation email resent``
:statuscode 400: ``invalid payload``
:statuscode 404: ``the requested URL was not found on the server``
:statuscode 500: ``error, please try again or contact the administrator``
"""
if not current_app.config['CAN_SEND_EMAILS']:
@ -1603,7 +1597,7 @@ def logout_user(auth_user: User) -> Union[Tuple[Dict, int], HttpResponse]:
**Example responses**:
- successful logout
- successful logout:
.. sourcecode:: http
@ -1615,7 +1609,7 @@ def logout_user(auth_user: User) -> Union[Tuple[Dict, int], HttpResponse]:
"status": "success"
}
- error on logout
- error on logout:
.. sourcecode:: http
@ -1629,13 +1623,12 @@ def logout_user(auth_user: User) -> Union[Tuple[Dict, int], HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: successfully logged out
:statuscode 200: ``successfully logged out``
:statuscode 401:
- provide a valid auth token
- The access token provided is expired, revoked, malformed, or invalid
for other reasons.
:statuscode 500:
- error on token blacklist
- ``provide a valid auth token``
- ``The access token provided is expired, revoked, malformed, or invalid
for other reasons.``
:statuscode 500: ``error on token blacklist``
"""
auth_token = request.headers.get('Authorization', '').split(' ')[1]
@ -1682,14 +1675,13 @@ def accept_privacy_policy(auth_user: User) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 400:
- invalid payload
:statuscode 200: ``success``
:statuscode 400: ``invalid payload``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 500: internal server error
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 500: ``error, please try again or contact the administrator``
"""
post_data = request.get_json()
if not post_data or not post_data.get('accepted_policy'):
@ -1738,15 +1730,15 @@ def request_user_data_export(auth_user: User) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 400:
- ongoing request exists
- completed request already exists
- ``ongoing request exists``
- ``completed request already exists``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 500: internal server error
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 500: ``error, please try again or contact the administrator``
"""
existing_export_request = UserDataExport.query.filter_by(
user_id=auth_user.id
@ -1800,7 +1792,7 @@ def get_user_data_export(auth_user: User) -> Union[Dict, HttpResponse]:
**Example response**:
- if a request exists
- if a request exists:
.. sourcecode:: http
@ -1817,7 +1809,7 @@ def get_user_data_export(auth_user: User) -> Union[Dict, HttpResponse]:
}
}
- if no request
- if no request:
.. sourcecode:: http
@ -1831,11 +1823,11 @@ def get_user_data_export(auth_user: User) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
export_request = UserDataExport.query.filter_by(
user_id=auth_user.id
@ -1874,12 +1866,12 @@ def download_data_export(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: file not found
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``file not found``
"""
export_request = UserDataExport.query.filter_by(
user_id=auth_user.id

View File

@ -47,14 +47,14 @@ def get_users(auth_user: User) -> Dict:
**Example request**:
- without parameters
- without parameters:
.. sourcecode:: http
GET /api/users HTTP/1.1
Content-Type: application/json
- with some query parameters
- with some query parameters:
.. sourcecode:: http
@ -180,11 +180,11 @@ def get_users(auth_user: User) -> Dict:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
params = request.args.copy()
@ -325,13 +325,13 @@ def get_single_user(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404:
- user does not exist
- ``user does not exist``
"""
if user_name != auth_user.username and not auth_user.admin:
return ForbiddenErrorResponse()
@ -369,10 +369,10 @@ def get_picture(user_name: str) -> Any:
:param integer user_name: user name
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 404:
- user does not exist
- No picture.
- ``user does not exist``
- ``No picture.``
"""
try:
@ -504,19 +504,18 @@ def update_user(auth_user: User, user_name: str) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 400:
- invalid payload
- valid email must be provided
- new email must be different than curent email
- ``invalid payload``
- ``valid email must be provided``
- ``new email must be different than curent email``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 403: you do not have permissions
:statuscode 404:
- user does not exist
:statuscode 500:
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 403: ``you do not have permissions``
:statuscode 404: ``user does not exist``
:statuscode 500: ``error, please try again or contact the administrator``
"""
user_data = request.get_json()
if not user_data:
@ -632,15 +631,14 @@ def delete_user(
:statuscode 204: user account deleted
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 403:
- you do not have permissions
- you can not delete your account, no other user has admin rights
:statuscode 404:
- user does not exist
:statuscode 500: error, please try again or contact the administrator
- ``you do not have permissions``
- ``you can not delete your account, no other user has admin rights``
:statuscode 404: ``user does not exist``
:statuscode 500: ``error, please try again or contact the administrator``
"""
try:

View File

@ -110,11 +110,11 @@ def get_records(auth_user: User) -> Dict:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
records = (

View File

@ -35,7 +35,7 @@ def get_sports(auth_user: User) -> Dict:
**Example response**:
- for non admin user :
- for non admin user:
.. sourcecode:: http
@ -98,7 +98,7 @@ def get_sports(auth_user: User) -> Dict:
"status": "success"
}
- for admin user :
- for admin user:
.. sourcecode:: http
@ -169,11 +169,11 @@ def get_sports(auth_user: User) -> Dict:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
"""
sports = Sport.query.order_by(Sport.id).all()
@ -213,7 +213,7 @@ def get_sport(auth_user: User, sport_id: int) -> Union[Dict, HttpResponse]:
**Example response**:
- success for non admin user :
- success for non admin user:
.. sourcecode:: http
@ -236,7 +236,7 @@ def get_sport(auth_user: User, sport_id: int) -> Union[Dict, HttpResponse]:
"status": "success"
}
- success for admin user :
- success for admin user:
.. sourcecode:: http
@ -260,7 +260,7 @@ def get_sport(auth_user: User, sport_id: int) -> Union[Dict, HttpResponse]:
"status": "success"
}
- sport not found
- sport not found:
.. sourcecode:: http
@ -278,12 +278,12 @@ def get_sport(auth_user: User, sport_id: int) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: sport not found
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``sport not found``
"""
sport = Sport.query.filter_by(id=sport_id).first()
@ -326,7 +326,7 @@ def update_sport(auth_user: User, sport_id: int) -> Union[Dict, HttpResponse]:
**Example responses**:
- success
- success:
.. sourcecode:: http
@ -350,7 +350,7 @@ def update_sport(auth_user: User, sport_id: int) -> Union[Dict, HttpResponse]:
"status": "success"
}
- sport not found
- sport not found:
.. sourcecode:: http
@ -371,14 +371,14 @@ def update_sport(auth_user: User, sport_id: int) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: sport updated
:statuscode 400: invalid payload
:statuscode 400: ``invalid payload``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 403: you do not have permissions
:statuscode 404: sport not found
:statuscode 500:
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 403: ``you do not have permissions``
:statuscode 404: ``sport not found``
:statuscode 500: ``error, please try again or contact the administrator``
"""
sport_data = request.get_json()

View File

@ -185,13 +185,13 @@ def get_workouts_by_time(
**Example requests**:
- without parameters
- without parameters:
.. sourcecode:: http
GET /api/stats/admin/by_time HTTP/1.1
- with parameters
- with parameters:
.. sourcecode:: http
@ -200,7 +200,7 @@ def get_workouts_by_time(
**Example responses**:
- success
- success:
.. sourcecode:: http
@ -243,7 +243,7 @@ def get_workouts_by_time(
"status": "success"
}
- no workouts
- no workouts:
.. sourcecode:: http
@ -270,13 +270,12 @@ def get_workouts_by_time(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404:
- user does not exist
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``user does not exist``
"""
return get_workouts(user_name, 'by_time')
@ -294,13 +293,13 @@ def get_workouts_by_sport(
**Example requests**:
- without parameters (get stats for all sports with workouts)
- without parameters (get stats for all sports with workouts):
.. sourcecode:: http
GET /api/stats/admin/by_sport HTTP/1.1
- with sport id
- with sport id:
.. sourcecode:: http
@ -308,7 +307,7 @@ def get_workouts_by_sport(
**Example responses**:
- success
- success:
.. sourcecode:: http
@ -347,7 +346,7 @@ def get_workouts_by_sport(
"status": "success"
}
- no workouts
- no workouts:
.. sourcecode:: http
@ -367,14 +366,14 @@ def get_workouts_by_sport(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404:
- user does not exist
- sport does not exist
- ``user does not exist``
- ``sport does not exist``
"""
return get_workouts(user_name, 'by_sport')
@ -414,12 +413,12 @@ def get_application_stats(auth_user: User) -> Dict:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 403: you do not have permissions
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 403: ``you do not have permissions``
"""
nb_workouts = Workout.query.filter().count()

View File

@ -65,13 +65,13 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]:
**Example requests**:
- without parameters
- without parameters:
.. sourcecode:: http
GET /api/workouts/ HTTP/1.1
- with some query parameters
- with some query parameters:
.. sourcecode:: http
@ -79,7 +79,7 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]:
**Example responses**:
- returning at least one workout
- returning at least one workout:
.. sourcecode:: http
@ -187,7 +187,7 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]:
:query integer per_page: number of workouts per page
(default: 5, max: 100)
:query integer sport_id: sport id
:quert string title: any part (or all) of the workout title;
:query string title: any part (or all) of the workout title;
title matching is case-insensitive
:query string from: start date (format: ``%Y-%m-%d``)
:query string to: end date (format: ``%Y-%m-%d``)
@ -206,12 +206,12 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]:
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 500:
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 500: ``error, please try again or contact the administrator``
"""
try:
@ -315,7 +315,7 @@ def get_workout(
**Example responses**:
- success
- success:
.. sourcecode:: http
@ -377,13 +377,13 @@ def get_workout(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 403: you do not have permissions
:statuscode 404: workout not found
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 403: ``you do not have permissions``
:statuscode 404: ``workout not found``
"""
workout_uuid = decode_short_id(workout_short_id)
@ -499,15 +499,15 @@ def get_workout_gpx(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404:
- workout not found
- no gpx file for this workout
:statuscode 500:
- ``workout not found``
- ``no gpx file for this workout``
:statuscode 500: ``error, please try again or contact the administrator``
"""
return get_workout_data(auth_user, workout_short_id, 'gpx')
@ -570,15 +570,15 @@ def get_workout_chart_data(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404:
- workout not found
- no gpx file for this workout
:statuscode 500:
- ``workout not found``
- ``no gpx file for this workout``
:statuscode 500: ``error, please try again or contact the administrator``
"""
return get_workout_data(auth_user, workout_short_id, 'chart_data')
@ -624,14 +624,14 @@ def get_segment_gpx(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 400: no gpx file for this workout
:statuscode 200: ``success``
:statuscode 400: ``no gpx file for this workout``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: workout not found
:statuscode 500:
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``workout not found``
:statuscode 500: ``error, please try again or contact the administrator``
"""
return get_workout_data(auth_user, workout_short_id, 'gpx', segment_id)
@ -647,7 +647,7 @@ def get_segment_chart_data(
auth_user: User, workout_short_id: str, segment_id: int
) -> Union[Dict, HttpResponse]:
"""
Get chart data from a workout gpx file, to display it with Recharts
Get chart data from a workout gpx file, to display it with Chart.js.
**Scope**: ``workouts:read``
@ -697,14 +697,14 @@ def get_segment_chart_data(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: success
:statuscode 400: no gpx file for this workout
:statuscode 200: ``success``
:statuscode 400: ``no gpx file for this workout``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: workout not found
:statuscode 500:
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``workout not found``
:statuscode 500: ``error, please try again or contact the administrator``
"""
return get_workout_data(
@ -739,14 +739,14 @@ def download_workout_gpx(
:param string workout_short_id: workout short id
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404:
- workout not found
- no gpx file for workout
- ``workout not found``
- ``no gpx file for workout``
"""
workout_uuid = decode_short_id(workout_short_id)
workout = Workout.query.filter_by(
@ -794,13 +794,13 @@ def get_map(map_id: int) -> Union[HttpResponse, Response]:
:param string map_id: workout map id
:statuscode 200: success
:statuscode 200: ``success``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: map does not exist
:statuscode 500:
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``map does not exist``
:statuscode 500: ``error, please try again or contact the administrator``
"""
try:
@ -967,16 +967,16 @@ def post_workout(auth_user: User) -> Union[Tuple[Dict, int], HttpResponse]:
:statuscode 201: workout created
:statuscode 400:
- invalid payload
- no file part
- no selected file
- file extension not allowed
- ``invalid payload``
- ``no file part``
- ``no selected file``
- ``file extension not allowed``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 413: error during picture update: file size exceeds 1.0MB
:statuscode 500:
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 413: ``error during picture update: file size exceeds 1.0MB``
:statuscode 500: ``error, please try again or contact the administrator``
"""
try:
@ -1151,12 +1151,12 @@ def post_workout_no_gpx(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 201: workout created
:statuscode 400: invalid payload
:statuscode 400: ``invalid payload``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 500:
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 500: ``error, please try again or contact the administrator``
"""
workout_data = request.get_json()
@ -1325,13 +1325,13 @@ def update_workout(
:reqheader Authorization: OAuth 2.0 Bearer Token
:statuscode 200: workout updated
:statuscode 400: invalid payload
:statuscode 400: ``invalid payload``
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: workout not found
:statuscode 500:
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``workout not found``
:statuscode 500: ``error, please try again or contact the administrator``
"""
workout_data = request.get_json()
@ -1418,11 +1418,11 @@ def delete_workout(
:statuscode 204: workout deleted
:statuscode 401:
- provide a valid auth token
- signature expired, please log in again
- invalid token, please log in again
:statuscode 404: workout not found
:statuscode 500: error, please try again or contact the administrator
- ``provide a valid auth token``
- ``signature expired, please log in again``
- ``invalid token, please log in again``
:statuscode 404: ``workout not found``
:statuscode 500: ``error, please try again or contact the administrator``
"""