Coverage for src/schemas/book_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# Book Schemas
2from marshmallow import fields
3from src import ma
4from src.model import BookModel, BookAdditionalModel
5from src.utils import SQLAlchemyAutoSchema
8class BookMeta:
9 model = BookModel
10 include_fk = True
13class BookBase(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 class Meta(BookMeta):
20 pass
23class BookExtra(BookBase):
24 # Extra fields from join with 'recommended_application'
25 reco_engine = fields.String(attribute="engine", default=None)
26 reco_score = fields.Float(attribute="score", default=None)
28# ----
30class BookAdditionalMeta:
31 model = BookAdditionalModel
32 include_fk = True
34class BookAdditionalBase(SQLAlchemyAutoSchema):
35 class Meta(BookAdditionalMeta):
36 pass