Passed
Push — main ( b77d07...0a4857 )
by Jochen
07:55
created

find_brand_for_scope()   A

Complexity

Conditions 2

Size

Total Lines 5
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2.0625

Importance

Changes 0
Metric Value
cc 2
eloc 4
nop 1
dl 0
loc 5
ccs 3
cts 4
cp 0.75
crap 2.0625
rs 10
c 0
b 0
f 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