Total Complexity | 3 |
Total Lines | 37 |
Duplicated Lines | 0 % |
Coverage | 0% |
Changes | 0 |
1 | """ |
||
2 | byceps.services.language.service |
||
3 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||
4 | |||
5 | :Copyright: 2014-2022 Jochen Kupperschmidt |
||
6 | :License: Revised BSD (see `LICENSE` file for details) |
||
7 | """ |
||
8 | |||
9 | from __future__ import annotations |
||
10 | |||
11 | from sqlalchemy import select |
||
12 | |||
13 | from ...database import db |
||
14 | |||
15 | from .dbmodels import Language as DbLanguage |
||
16 | from .transfer.models import Language |
||
17 | |||
18 | |||
19 | def create_language(code: str) -> Language: |
||
20 | """Create a language.""" |
||
21 | db_language = DbLanguage(code) |
||
22 | db.session.add(db_language) |
||
23 | db.session.commit() |
||
24 | |||
25 | return _db_entity_to_language(db_language) |
||
26 | |||
27 | |||
28 | def get_languages() -> list[Language]: |
||
29 | """Return all languages.""" |
||
30 | db_languages = db.session.scalars(select(DbLanguage)).all() |
||
31 | |||
32 | return [_db_entity_to_language(db_language) for db_language in db_languages] |
||
33 | |||
34 | |||
35 | def _db_entity_to_language(db_language: DbLanguage) -> Language: |
||
36 | return Language(code=db_language.code) |
||
37 |