Projekt

Obecné

Profil

Stáhnout (12.3 KB) Statistiky
| Větev: | Tag: | Revize:
1
<!doctype html>
2
<html lang="en">
3
<head>
4
<meta charset="utf-8">
5
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
6
<meta name="generator" content="pdoc 0.10.0" />
7
<title>sql_app.api.pcs_web API documentation</title>
8
<meta name="description" content="" />
9
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
10
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
11
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
12
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
13
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
14
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
15
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
16
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
17
</head>
18
<body>
19
<main>
20
<article id="content">
21
<header>
22
<h1 class="title">Module <code>sql_app.api.pcs_web</code></h1>
23
</header>
24
<section id="section-intro">
25
<details class="source">
26
<summary>
27
<span>Expand source code</span>
28
</summary>
29
<pre><code class="python">from typing import List
30
from fastapi import Depends, FastAPI, HTTPException, APIRouter, Form
31
from sqlalchemy.orm import Session
32
from sql_app import crud, models, schemas
33
from ..database import SessionLocal, engine
34
from fastapi import FastAPI, Request
35
from fastapi.responses import HTMLResponse
36
from fastapi.staticfiles import StaticFiles
37
from fastapi.templating import Jinja2Templates
38

    
39
models.Base.metadata.create_all(bind=engine)
40

    
41
# Path to html templates used in this file
42
templates = Jinja2Templates(directory=&#34;../templates/pcs&#34;)
43

    
44
# prefix used for all endpoints in this file
45
pcs_web = APIRouter(prefix=&#34;/api/v1&#34;)
46

    
47

    
48
# Dependency
49
def get_db():
50
    db = SessionLocal()
51
    try:
52
        yield db
53
    finally:
54
        db.close()
55

    
56

    
57
@pcs_web.get(&#34;/pcs-web&#34;, response_class=HTMLResponse)
58
async def read_pcs(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
59
    &#34;&#34;&#34;
60
    Returns template with all pcs currently saved in database
61
    &#34;&#34;&#34;
62
    pcs = crud.get_pcs(db, skip=skip, limit=limit)
63
    return templates.TemplateResponse(&#34;pcs.html&#34;, {&#34;request&#34;: request, &#34;pcs&#34;: pcs})
64

    
65

    
66
@pcs_web.get(&#34;/pc-team/{pc_id}&#34;, response_class=HTMLResponse)
67
async def connect_pc_team(request: Request, pc_id: int, db: Session = Depends(get_db)):
68
    &#34;&#34;&#34;
69
    Returns template with Form for connecting pc with team
70
    &#34;&#34;&#34;
71
    pc = crud.get_pc(db, pc_id)
72
    teams = crud.get_teams(db, 0, 100)
73
    return templates.TemplateResponse(&#34;pcteam.html&#34;,
74
                                      {&#34;request&#34;: request, &#34;pc&#34;: pc, &#34;teams&#34;: teams})
75

    
76

    
77
@pcs_web.post(&#34;/pcs-web/{pc_id}&#34;, response_class=HTMLResponse)
78
async def connect_post(request: Request, pc_id: int, team: str = Form(...), skip: int = 0, limit: int = 100,
79
                       db: Session = Depends(get_db)):
80
    &#34;&#34;&#34;
81
    Endpoint called from within form for connecting pc with team. Updates certain pc with new team.
82
    &#34;&#34;&#34;
83
    old_pc = crud.update_pc(db, pc_id, team)
84
    pcs = crud.get_pcs(db, skip=skip, limit=limit)
85
    return templates.TemplateResponse(&#34;pcs.html&#34;, {&#34;request&#34;: request, &#34;pcs&#34;: pcs})</code></pre>
86
</details>
87
</section>
88
<section>
89
</section>
90
<section>
91
</section>
92
<section>
93
<h2 class="section-title" id="header-functions">Functions</h2>
94
<dl>
95
<dt id="sql_app.api.pcs_web.connect_pc_team"><code class="name flex">
96
<span>async def <span class="ident">connect_pc_team</span></span>(<span>request: starlette.requests.Request, pc_id: int, db: sqlalchemy.orm.session.Session = Depends(get_db))</span>
97
</code></dt>
98
<dd>
99
<div class="desc"><p>Returns template with Form for connecting pc with team</p></div>
100
<details class="source">
101
<summary>
102
<span>Expand source code</span>
103
</summary>
104
<pre><code class="python">@pcs_web.get(&#34;/pc-team/{pc_id}&#34;, response_class=HTMLResponse)
105
async def connect_pc_team(request: Request, pc_id: int, db: Session = Depends(get_db)):
106
    &#34;&#34;&#34;
107
    Returns template with Form for connecting pc with team
108
    &#34;&#34;&#34;
109
    pc = crud.get_pc(db, pc_id)
110
    teams = crud.get_teams(db, 0, 100)
111
    return templates.TemplateResponse(&#34;pcteam.html&#34;,
112
                                      {&#34;request&#34;: request, &#34;pc&#34;: pc, &#34;teams&#34;: teams})</code></pre>
113
</details>
114
</dd>
115
<dt id="sql_app.api.pcs_web.connect_post"><code class="name flex">
116
<span>async def <span class="ident">connect_post</span></span>(<span>request: starlette.requests.Request, pc_id: int, team: str = Form(Ellipsis), skip: int = 0, limit: int = 100, db: sqlalchemy.orm.session.Session = Depends(get_db))</span>
117
</code></dt>
118
<dd>
119
<div class="desc"><p>Endpoint called from within form for connecting pc with team. Updates certain pc with new team.</p></div>
120
<details class="source">
121
<summary>
122
<span>Expand source code</span>
123
</summary>
124
<pre><code class="python">@pcs_web.post(&#34;/pcs-web/{pc_id}&#34;, response_class=HTMLResponse)
125
async def connect_post(request: Request, pc_id: int, team: str = Form(...), skip: int = 0, limit: int = 100,
126
                       db: Session = Depends(get_db)):
127
    &#34;&#34;&#34;
128
    Endpoint called from within form for connecting pc with team. Updates certain pc with new team.
129
    &#34;&#34;&#34;
130
    old_pc = crud.update_pc(db, pc_id, team)
131
    pcs = crud.get_pcs(db, skip=skip, limit=limit)
132
    return templates.TemplateResponse(&#34;pcs.html&#34;, {&#34;request&#34;: request, &#34;pcs&#34;: pcs})</code></pre>
133
</details>
134
</dd>
135
<dt id="sql_app.api.pcs_web.get_db"><code class="name flex">
136
<span>def <span class="ident">get_db</span></span>(<span>)</span>
137
</code></dt>
138
<dd>
139
<div class="desc"></div>
140
<details class="source">
141
<summary>
142
<span>Expand source code</span>
143
</summary>
144
<pre><code class="python">def get_db():
145
    db = SessionLocal()
146
    try:
147
        yield db
148
    finally:
149
        db.close()</code></pre>
150
</details>
151
</dd>
152
<dt id="sql_app.api.pcs_web.read_pcs"><code class="name flex">
153
<span>async def <span class="ident">read_pcs</span></span>(<span>request: starlette.requests.Request, skip: int = 0, limit: int = 100, db: sqlalchemy.orm.session.Session = Depends(get_db))</span>
154
</code></dt>
155
<dd>
156
<div class="desc"><p>Returns template with all pcs currently saved in database</p></div>
157
<details class="source">
158
<summary>
159
<span>Expand source code</span>
160
</summary>
161
<pre><code class="python">@pcs_web.get(&#34;/pcs-web&#34;, response_class=HTMLResponse)
162
async def read_pcs(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
163
    &#34;&#34;&#34;
164
    Returns template with all pcs currently saved in database
165
    &#34;&#34;&#34;
166
    pcs = crud.get_pcs(db, skip=skip, limit=limit)
167
    return templates.TemplateResponse(&#34;pcs.html&#34;, {&#34;request&#34;: request, &#34;pcs&#34;: pcs})</code></pre>
168
</details>
169
</dd>
170
</dl>
171
</section>
172
<section>
173
</section>
174
</article>
175
<nav id="sidebar">
176
<h1>Index</h1>
177
<div class="toc">
178
<ul></ul>
179
</div>
180
<ul id="index">
181
<li><h3>Super-module</h3>
182
<ul>
183
<li><code><a title="sql_app.api" href="index.html">sql_app.api</a></code></li>
184
</ul>
185
</li>
186
<li><h3><a href="#header-functions">Functions</a></h3>
187
<ul class="">
188
<li><code><a title="sql_app.api.pcs_web.connect_pc_team" href="#sql_app.api.pcs_web.connect_pc_team">connect_pc_team</a></code></li>
189
<li><code><a title="sql_app.api.pcs_web.connect_post" href="#sql_app.api.pcs_web.connect_post">connect_post</a></code></li>
190
<li><code><a title="sql_app.api.pcs_web.get_db" href="#sql_app.api.pcs_web.get_db">get_db</a></code></li>
191
<li><code><a title="sql_app.api.pcs_web.read_pcs" href="#sql_app.api.pcs_web.read_pcs">read_pcs</a></code></li>
192
</ul>
193
</li>
194
</ul>
195
</nav>
196
</main>
197
<footer id="footer">
198
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
199
</footer>
200
</body>
201
</html>
(7-7/11)