~homeworkprod/byceps

ref: 4237b3ec9496efe95dcce82bea3207ab9de4d520 byceps/byceps/services/tourney/match_service.py -rw-r--r-- 813 bytes
4237b3ec — Jochen Kupperschmidt Move ticketing blueprint into `site` subpackage 1 year, 11 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""
byceps.services.tourney.match_service
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:Copyright: 2006-2020 Jochen Kupperschmidt
:License: Modified BSD, see LICENSE for details.
"""

from typing import Optional

from ...database import db

from .models.match import Match as DbMatch
from .transfer.models import Match, MatchID


def create_match() -> Match:
    """Create a match."""
    match = DbMatch()

    db.session.add(match)
    db.session.commit()

    return _db_entity_to_match(match)


def find_match(match_id: MatchID) -> Optional[Match]:
    """Return the match with that id, or `None` if not found."""
    match = DbMatch.query.get(match_id)

    if match is None:
        return None

    return _db_entity_to_match(match)


def _db_entity_to_match(match: DbMatch) -> Match:
    return Match(match.id)