API - minor refactor and documentation update
This commit is contained in:
parent
649b773ba9
commit
97534b698b
@ -1,4 +1,4 @@
|
|||||||
# Sphinx build info version 1
|
# Sphinx build info version 1
|
||||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||||
config: 30c5e5361bea086cc59c229f2ef9de12
|
config: 49668bbf739dde28729baae15bc4e905
|
||||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||||
|
7
docs/_sources/api/configuration.rst.txt
Normal file
7
docs/_sources/api/configuration.rst.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Configuration
|
||||||
|
#############
|
||||||
|
|
||||||
|
.. autoflask:: fittrackee_api:create_app()
|
||||||
|
:endpoints:
|
||||||
|
config.get_application_config,
|
||||||
|
config.update_application_config
|
@ -7,6 +7,7 @@ API documentation
|
|||||||
|
|
||||||
activities
|
activities
|
||||||
auth
|
auth
|
||||||
|
configuration
|
||||||
records
|
records
|
||||||
sports
|
sports
|
||||||
stats
|
stats
|
||||||
|
@ -1098,7 +1098,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<script type="text/javascript" src="../_static/language_data.js"></script>
|
<script type="text/javascript" src="../_static/language_data.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Records" href="records.html" />
|
<link rel="next" title="Configuration" href="configuration.html" />
|
||||||
<link rel="prev" title="Activities" href="activities.html" />
|
<link rel="prev" title="Activities" href="activities.html" />
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
|
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
|
||||||
@ -89,7 +89,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="records.html" title="Next Chapter: Records"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Records »</span>
|
<a href="configuration.html" title="Next Chapter: Configuration"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Configuration »</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@ -545,7 +545,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
248
docs/api/configuration.html
Normal file
248
docs/api/configuration.html
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>Configuration — FitTrackee 0.3.0-beta
|
||||||
|
documentation</title>
|
||||||
|
<link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="../_static/custom.css" />
|
||||||
|
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||||||
|
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||||
|
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||||
|
<script type="text/javascript" src="../_static/language_data.js"></script>
|
||||||
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
|
<link rel="next" title="Records" href="records.html" />
|
||||||
|
<link rel="prev" title="Authentication" href="auth.html" />
|
||||||
|
<meta charset='utf-8'>
|
||||||
|
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
|
||||||
|
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
|
<script type="text/javascript" src="../_static/js/jquery-1.11.0.min.js "></script>
|
||||||
|
<script type="text/javascript" src="../_static/js/jquery-fix.js "></script>
|
||||||
|
<script type="text/javascript" src="../_static/bootstrap-3.3.7/js/bootstrap.min.js "></script>
|
||||||
|
<script type="text/javascript" src="../_static/bootstrap-sphinx.js "></script>
|
||||||
|
|
||||||
|
</head><body>
|
||||||
|
|
||||||
|
<div id="navbar" class="navbar navbar-default navbar-fixed-top">
|
||||||
|
<div class="container">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="../index.html">
|
||||||
|
FitTrackee</a>
|
||||||
|
<span class="navbar-text navbar-version pull-left"><b>0.3.0</b></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse nav-collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
|
||||||
|
<li><a href="https://github.com/SamR1/FitTrackee">GitHub</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="dropdown globaltoc-container">
|
||||||
|
<a role="button"
|
||||||
|
id="dLabelGlobalToc"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
data-target="#"
|
||||||
|
href="../index.html">Docs <b class="caret"></b></a>
|
||||||
|
<ul class="dropdown-menu globaltoc"
|
||||||
|
role="menu"
|
||||||
|
aria-labelledby="dLabelGlobalToc"><ul class="current">
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../features.html">Features</a></li>
|
||||||
|
<li class="toctree-l1 current"><a class="reference internal" href="index.html">API documentation</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Change log</a></li>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dropdown">
|
||||||
|
<a role="button"
|
||||||
|
id="dLabelLocalToc"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
data-target="#"
|
||||||
|
href="#">Page <b class="caret"></b></a>
|
||||||
|
<ul class="dropdown-menu localtoc"
|
||||||
|
role="menu"
|
||||||
|
aria-labelledby="dLabelLocalToc"><ul>
|
||||||
|
<li><a class="reference internal" href="#">Configuration</a></li>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="auth.html" title="Previous Chapter: Authentication"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Authentication</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="records.html" title="Next Chapter: Records"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Records »</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="hidden-sm">
|
||||||
|
<div id="sourcelink">
|
||||||
|
<a href="../_sources/api/configuration.rst.txt"
|
||||||
|
rel="nofollow">Source</a>
|
||||||
|
</div></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<form class="navbar-form navbar-right" action="../search.html" method="get">
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="text" name="q" class="form-control" placeholder="Search" />
|
||||||
|
</div>
|
||||||
|
<input type="hidden" name="check_keywords" value="yes" />
|
||||||
|
<input type="hidden" name="area" value="default" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="body col-md-12 content" role="main">
|
||||||
|
|
||||||
|
<div class="section" id="configuration">
|
||||||
|
<h1>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h1>
|
||||||
|
<dl class="get">
|
||||||
|
<dt id="get--api-config">
|
||||||
|
<code class="sig-name descname">GET </code><code class="sig-name descname">/api/config</code><a class="headerlink" href="#get--api-config" title="Permalink to this definition">¶</a></dt>
|
||||||
|
<dd><p>Get Application config</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/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>
|
||||||
|
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
||||||
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
||||||
|
|
||||||
|
<span class="p">{</span>
|
||||||
|
<span class="nt">"data"</span><span class="p">:</span> <span class="p">{</span>
|
||||||
|
<span class="nt">"gpx_limit_import"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
|
||||||
|
<span class="nt">"is_registration_enabled"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
|
||||||
|
<span class="nt">"max_single_file_size"</span><span class="p">:</span> <span class="mi">1048576</span><span class="p">,</span>
|
||||||
|
<span class="nt">"max_zip_file_size"</span><span class="p">:</span> <span class="mi">10485760</span><span class="p">,</span>
|
||||||
|
<span class="nt">"max_users"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
|
||||||
|
<span class="nt">"registration"</span><span class="p">:</span> <span class="kc">false</span>
|
||||||
|
<span class="p">},</span>
|
||||||
|
<span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span>
|
||||||
|
<span class="p">}</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<dl class="field-list simple">
|
||||||
|
<dt class="field-odd">Status Codes</dt>
|
||||||
|
<dd class="field-odd"><ul class="simple">
|
||||||
|
<li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – success</p></li>
|
||||||
|
<li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a> – Error on getting configuration.</p></li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="patch">
|
||||||
|
<dt id="patch--api-config">
|
||||||
|
<code class="sig-name descname">PATCH </code><code class="sig-name descname">/api/config</code><a class="headerlink" href="#patch--api-config" title="Permalink to this definition">¶</a></dt>
|
||||||
|
<dd><p>Update Application config</p>
|
||||||
|
<p>Authenticated user must be an admin</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/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>
|
||||||
|
<div class="highlight-http notranslate"><div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
|
||||||
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
|
||||||
|
|
||||||
|
<span class="p">{</span>
|
||||||
|
<span class="nt">"data"</span><span class="p">:</span> <span class="p">{</span>
|
||||||
|
<span class="nt">"gpx_limit_import"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
|
||||||
|
<span class="nt">"is_registration_enabled"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
|
||||||
|
<span class="nt">"max_single_file_size"</span><span class="p">:</span> <span class="mi">1048576</span><span class="p">,</span>
|
||||||
|
<span class="nt">"max_zip_file_size"</span><span class="p">:</span> <span class="mi">10485760</span><span class="p">,</span>
|
||||||
|
<span class="nt">"max_users"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
|
||||||
|
<span class="nt">"registration"</span><span class="p">:</span> <span class="kc">true</span>
|
||||||
|
<span class="p">},</span>
|
||||||
|
<span class="nt">"status"</span><span class="p">:</span> <span class="s2">"success"</span>
|
||||||
|
<span class="p">}</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<dl class="field-list simple">
|
||||||
|
<dt class="field-odd">Parameters</dt>
|
||||||
|
<dd class="field-odd"><ul class="simple">
|
||||||
|
<li><p><strong>auth_user_id</strong> (<em>integer</em>) – authenticate user id (from JSON Web Token)</p></li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
<dt class="field-even">Request JSON Object</dt>
|
||||||
|
<dd class="field-even"><ul class="simple">
|
||||||
|
<li><p><strong>gpx_limit_import</strong> (<em>integrer</em>) – max number of files in zip archive</p></li>
|
||||||
|
<li><p><strong>max_single_file_size</strong> (<em>integrer</em>) – max size of a single file</p></li>
|
||||||
|
<li><p><strong>max_zip_file_size</strong> (<em>integrer</em>) – max size of a zip archive</p></li>
|
||||||
|
<li><p><strong>max_users</strong> (<em>integrer</em>) – max users allowed to register on instance</p></li>
|
||||||
|
<li><p><strong>registration</strong> (<em>boolean</em>) – is registration enabled ?</p></li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
<dt class="field-odd">Request Headers</dt>
|
||||||
|
<dd class="field-odd"><ul class="simple">
|
||||||
|
<li><p><a class="reference external" href="https://tools.ietf.org/html/rfc7235#section-4.2">Authorization</a> – OAuth 2.0 Bearer Token</p></li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
<dt class="field-even">Status Codes</dt>
|
||||||
|
<dd class="field-even"><ul class="simple">
|
||||||
|
<li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">200 OK</a> – success</p></li>
|
||||||
|
<li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">400 Bad Request</a> – invalid payload</p></li>
|
||||||
|
<li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">401 Unauthorized</a> – <ul>
|
||||||
|
<li><p>Provide a valid auth token.</p></li>
|
||||||
|
<li><p>Signature expired. Please log in again.</p></li>
|
||||||
|
<li><p>Invalid token. Please log in again.</p></li>
|
||||||
|
</ul>
|
||||||
|
</p></li>
|
||||||
|
<li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">403 Forbidden</a> – You do not have permissions.</p></li>
|
||||||
|
<li><p><a class="reference external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">500 Internal Server Error</a> – Error on updating configuration.</p></li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<p class="pull-right">
|
||||||
|
<a href="#">Back to top</a>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -130,6 +130,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="activities.html">Activities</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="activities.html">Activities</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="auth.html">Authentication</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="auth.html">Authentication</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="records.html">Records</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="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="stats.html">Statistics</a></li>
|
||||||
@ -151,7 +152,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Sports" href="sports.html" />
|
<link rel="next" title="Sports" href="sports.html" />
|
||||||
<link rel="prev" title="Authentication" href="auth.html" />
|
<link rel="prev" title="Configuration" href="configuration.html" />
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
|
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
|
||||||
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
|
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
|
||||||
@ -85,7 +85,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="auth.html" title="Previous Chapter: Authentication"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Authentication</span>
|
<a href="configuration.html" title="Previous Chapter: Configuration"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Configuration</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
@ -249,7 +249,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -459,7 +459,7 @@ Authenticated user must be an admin</p>
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -396,7 +396,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -361,7 +361,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -316,7 +316,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -223,7 +223,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -127,7 +127,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -169,6 +169,11 @@
|
|||||||
<td>
|
<td>
|
||||||
<a href="api/auth.html#get--api-auth-profile"><code class="xref">GET /api/auth/profile</code></a></td><td>
|
<a href="api/auth.html#get--api-auth-profile"><code class="xref">GET /api/auth/profile</code></a></td><td>
|
||||||
<em></em></td></tr>
|
<em></em></td></tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>
|
||||||
|
<a href="api/configuration.html#get--api-config"><code class="xref">GET /api/config</code></a></td><td>
|
||||||
|
<em></em></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
@ -264,6 +269,11 @@
|
|||||||
<td>
|
<td>
|
||||||
<a href="api/activities.html#patch--api-activities-(int-activity_id)"><code class="xref">PATCH /api/activities/(int:activity_id)</code></a></td><td>
|
<a href="api/activities.html#patch--api-activities-(int-activity_id)"><code class="xref">PATCH /api/activities/(int:activity_id)</code></a></td><td>
|
||||||
<em></em></td></tr>
|
<em></em></td></tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>
|
||||||
|
<a href="api/configuration.html#patch--api-config"><code class="xref">PATCH /api/config</code></a></td><td>
|
||||||
|
<em></em></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
@ -284,7 +294,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -168,6 +168,7 @@ Map</a>.</div>
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="api/index.html">API documentation</a><ul>
|
<li class="toctree-l1"><a class="reference internal" href="api/index.html">API documentation</a><ul>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="api/activities.html">Activities</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="api/activities.html">Activities</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="api/auth.html">Authentication</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/records.html">Records</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/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/stats.html">Statistics</a></li>
|
||||||
@ -204,7 +205,7 @@ Map</a>.</div>
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -363,7 +363,7 @@ $ make upgrade-db
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
BIN
docs/objects.inv
BIN
docs/objects.inv
Binary file not shown.
@ -147,7 +147,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -148,7 +148,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -150,7 +150,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -141,7 +141,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
© Copyright 2018 - 2019, SamR1.<br/>
|
© Copyright 2018 - 2019, SamR1.<br/>
|
||||||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.<br/>
|
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.1.<br/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
7
docsrc/source/api/configuration.rst
Normal file
7
docsrc/source/api/configuration.rst
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Configuration
|
||||||
|
#############
|
||||||
|
|
||||||
|
.. autoflask:: fittrackee_api:create_app()
|
||||||
|
:endpoints:
|
||||||
|
config.get_application_config,
|
||||||
|
config.update_application_config
|
@ -7,6 +7,7 @@ API documentation
|
|||||||
|
|
||||||
activities
|
activities
|
||||||
auth
|
auth
|
||||||
|
configuration
|
||||||
records
|
records
|
||||||
sports
|
sports
|
||||||
stats
|
stats
|
||||||
|
@ -45,7 +45,7 @@ def create_app():
|
|||||||
from .activities.records import records_blueprint # noqa
|
from .activities.records import records_blueprint # noqa
|
||||||
from .activities.sports import sports_blueprint # noqa
|
from .activities.sports import sports_blueprint # noqa
|
||||||
from .activities.stats import stats_blueprint # noqa
|
from .activities.stats import stats_blueprint # noqa
|
||||||
from .application.config import config_blueprint # noqa
|
from .application.app_config import config_blueprint # noqa
|
||||||
|
|
||||||
app.register_blueprint(users_blueprint, url_prefix='/api')
|
app.register_blueprint(users_blueprint, url_prefix='/api')
|
||||||
app.register_blueprint(auth_blueprint, url_prefix='/api')
|
app.register_blueprint(auth_blueprint, url_prefix='/api')
|
||||||
|
@ -36,12 +36,21 @@ def app_config_registration_disabled():
|
|||||||
return config
|
return config
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
def get_app_config(app_type):
|
||||||
def app():
|
if app_type == 'with_registration':
|
||||||
|
return app_config_with_registration()
|
||||||
|
elif app_type == 'no_registration':
|
||||||
|
return app_config_registration_disabled()
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def get_app(app_type=None):
|
||||||
app = create_app()
|
app = create_app()
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
db.create_all()
|
db.create_all()
|
||||||
app_db_config = app_config_with_registration()
|
app_db_config = get_app_config(app_type)
|
||||||
|
if app_db_config:
|
||||||
update_app_config_from_database(app, app_db_config)
|
update_app_config_from_database(app, app_db_config)
|
||||||
yield app
|
yield app
|
||||||
db.session.remove()
|
db.session.remove()
|
||||||
@ -53,33 +62,19 @@ def app():
|
|||||||
return app
|
return app
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def app():
|
||||||
|
yield from get_app('with_registration')
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def app_no_config():
|
def app_no_config():
|
||||||
app = create_app()
|
yield from get_app()
|
||||||
with app.app_context():
|
|
||||||
db.create_all()
|
|
||||||
yield app
|
|
||||||
db.session.remove()
|
|
||||||
db.drop_all()
|
|
||||||
# close unused idle connections => avoid the following error:
|
|
||||||
# FATAL: remaining connection slots are reserved for non-replication
|
|
||||||
# superuser connections
|
|
||||||
db.engine.dispose()
|
|
||||||
return app
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def app_no_registration():
|
def app_no_registration():
|
||||||
app = create_app()
|
yield from get_app('no_registration')
|
||||||
with app.app_context():
|
|
||||||
db.create_all()
|
|
||||||
app_db_config = app_config_registration_disabled()
|
|
||||||
update_app_config_from_database(app, app_db_config)
|
|
||||||
yield app
|
|
||||||
db.session.remove()
|
|
||||||
db.drop_all()
|
|
||||||
db.engine.dispose()
|
|
||||||
return app
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
|
@ -50,9 +50,7 @@ def test_get_config_no_config(app_no_config, user_1_admin):
|
|||||||
assert 'Error on getting configuration.' in data['message']
|
assert 'Error on getting configuration.' in data['message']
|
||||||
|
|
||||||
|
|
||||||
def test_get_config_several_config(
|
def test_get_config_several_config(app, app_config, user_1_admin):
|
||||||
app, app_config, user_1_admin
|
|
||||||
):
|
|
||||||
client = app.test_client()
|
client = app.test_client()
|
||||||
resp_login = client.post(
|
resp_login = client.post(
|
||||||
'/api/auth/login',
|
'/api/auth/login',
|
||||||
@ -84,9 +82,7 @@ def test_update_config_as_admin(app, user_1_admin):
|
|||||||
response = client.patch(
|
response = client.patch(
|
||||||
'/api/config',
|
'/api/config',
|
||||||
content_type='application/json',
|
content_type='application/json',
|
||||||
data=json.dumps(
|
data=json.dumps(dict(registration=True, max_users=10)),
|
||||||
dict(registration=True, max_users=10)
|
|
||||||
),
|
|
||||||
headers=dict(
|
headers=dict(
|
||||||
Authorization='Bearer '
|
Authorization='Bearer '
|
||||||
+ json.loads(resp_login.data.decode())['auth_token']
|
+ json.loads(resp_login.data.decode())['auth_token']
|
||||||
@ -150,9 +146,7 @@ def test_update_config_not_admin(app, user_1):
|
|||||||
response = client.patch(
|
response = client.patch(
|
||||||
'/api/config',
|
'/api/config',
|
||||||
content_type='application/json',
|
content_type='application/json',
|
||||||
data=json.dumps(
|
data=json.dumps(dict(registration=True, max_users=10)),
|
||||||
dict(registration=True, max_users=10)
|
|
||||||
),
|
|
||||||
headers=dict(
|
headers=dict(
|
||||||
Authorization='Bearer '
|
Authorization='Bearer '
|
||||||
+ json.loads(resp_login.data.decode())['auth_token']
|
+ json.loads(resp_login.data.decode())['auth_token']
|
||||||
@ -199,9 +193,7 @@ def test_update_config_no_config(app_no_config, user_1_admin):
|
|||||||
response = client.patch(
|
response = client.patch(
|
||||||
'/api/config',
|
'/api/config',
|
||||||
content_type='application/json',
|
content_type='application/json',
|
||||||
data=json.dumps(
|
data=json.dumps(dict(registration=True, max_users=10)),
|
||||||
dict(registration=True, max_users=10)
|
|
||||||
),
|
|
||||||
headers=dict(
|
headers=dict(
|
||||||
Authorization='Bearer '
|
Authorization='Bearer '
|
||||||
+ json.loads(resp_login.data.decode())['auth_token']
|
+ json.loads(resp_login.data.decode())['auth_token']
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
"""empty message
|
"""add application config in database
|
||||||
|
|
||||||
Revision ID: 8a0aad4c838c
|
Revision ID: 8a0aad4c838c
|
||||||
Revises: 1345afe3b11d
|
Revises: 1345afe3b11d
|
||||||
|
Loading…
Reference in New Issue
Block a user