fossasia/open-event-orga-server

View on GitHub
app/api/schema/user_favourite_sessions.py

Summary

Maintainability
A
55 mins
Test Coverage
from marshmallow_jsonapi import fields
from marshmallow_jsonapi.flask import Relationship, Schema

from app.api.helpers.utilities import dasherize
from app.api.schema.base import GetterRelationship


class UserFavouriteSessionSchema(Schema):
    """
    Api schema for User Favourite Session Model
    """

    class Meta:
        type_ = 'user-favourite-session'
        self_view = 'v1.user_favourite_session_detail'
        self_view_kwargs = {'id': '<id>'}
        inflect = dasherize

    id = fields.Str(dump_only=True)

    session = Relationship(
        attribute='session',
        self_view='v1.user_favourite_session_session',
        self_view_kwargs={'id': '<id>'},
        related_view='v1.session_detail',
        related_view_kwargs={'user_favourite_session_id': '<id>'},
        schema='SessionSchema',
        type_='session',
    )

    user = GetterRelationship(
        dump_only=True,
        getter='safe_user',
        self_view='v1.user_favourite_session_user',
        self_view_kwargs={'id': '<id>'},
        related_view='v1.user_detail',
        related_view_kwargs={'user_favourite_session_id': '<id>'},
        schema='UserSchemaPublic',
        type_='user',
    )