Total Complexity | 8 |
Total Lines | 52 |
Duplicated Lines | 0 % |
Coverage | 89.29% |
Changes | 0 |
1 | """ |
||
2 | byceps.blueprints.admin.snippet.helpers |
||
3 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||
4 | |||
5 | :Copyright: 2006-2021 Jochen Kupperschmidt |
||
6 | :License: Revised BSD (see `LICENSE` file for details) |
||
7 | """ |
||
8 | |||
9 | 1 | from typing import Optional |
|
10 | 1 | from flask import abort |
|
11 | |||
12 | 1 | from ....services.brand import service as brand_service |
|
13 | 1 | from ....services.brand.transfer.models import Brand |
|
14 | 1 | from ....services.site import service as site_service |
|
15 | 1 | from ....services.site.transfer.models import Site, SiteID |
|
16 | 1 | from ....services.snippet.dbmodels.snippet import Snippet as DbSnippet |
|
17 | 1 | from ....services.snippet import mountpoint_service, service as snippet_service |
|
18 | 1 | from ....services.snippet.transfer.models import Scope, SnippetID |
|
19 | 1 | from ....typing import BrandID |
|
20 | |||
21 | |||
22 | 1 | def find_brand_for_scope(scope: Scope) -> Optional[Brand]: |
|
23 | 1 | if scope.type_ != 'brand': |
|
24 | 1 | return None |
|
25 | |||
26 | return brand_service.find_brand(BrandID(scope.name)) |
||
27 | |||
28 | |||
29 | 1 | def find_site_for_scope(scope: Scope) -> Optional[Site]: |
|
30 | 1 | if scope.type_ != 'site': |
|
31 | 1 | return None |
|
32 | |||
33 | 1 | return site_service.find_site(SiteID(scope.name)) |
|
34 | |||
35 | |||
36 | 1 | def find_site_by_id(site_id: SiteID) -> Site: |
|
37 | 1 | site = site_service.find_site(site_id) |
|
38 | |||
39 | 1 | if site is None: |
|
40 | abort(404) |
||
41 | |||
42 | 1 | return site |
|
43 | |||
44 | |||
45 | 1 | def find_snippet_by_id(snippet_id: SnippetID) -> DbSnippet: |
|
46 | 1 | snippet = snippet_service.find_snippet(snippet_id) |
|
47 | |||
48 | 1 | if snippet is None: |
|
49 | abort(404) |
||
50 | |||
51 | return snippet |
||
52 |