Coverage for src/schemas/application_schema.py : 100%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# Application Schemas
2from marshmallow import fields
3from src import ma
4from src.model import ApplicationModel, ApplicationAdditionalModel
5from src.utils import SQLAlchemyAutoSchema
8class ApplicationMeta:
9 model = ApplicationModel
10 include_fk = True
13class ApplicationBase(SQLAlchemyAutoSchema):
14 rating = fields.Function(lambda obj: obj.content.rating)
15 rating_count = fields.Function(lambda obj: obj.content.rating_count)
16 popularity_score = fields.Function(
17 lambda obj: obj.content.popularity_score)
19 categorie = ma.Nested("GenreBase")
21 app_id = ma.Function(lambda obj: obj.app_id)
23 class Meta(ApplicationMeta):
24 pass
27class ApplicationExtra(ApplicationBase):
28 # Extra fields from join with 'recommended_application'
29 reco_engine = fields.String(attribute="engine", default=None)
30 reco_score = fields.Float(attribute="score", default=None)
32# ----
34class ApplicationAdditionalMeta:
35 model = ApplicationAdditionalModel
36 include_fk = True
38class ApplicationAdditionalBase(SQLAlchemyAutoSchema):
39 class Meta(ApplicationAdditionalMeta):
40 pass