Example #1
0
        query = Department.get_query(info)
        query = query.filter(DepartmentModel.id == self.departmentId)
        title = kwargs.get('title', None)
        if title:
            query = query.filter(DepartmentModel.title == title)
        return query.first()


class AzsConnection(relay.Connection):
    class Meta:
        node = Azs


SortEnumAzs = utils.sort_enum_for_model(
    AzsModel,
    'SortEnumAzs',
    lambda c, d:
        c.upper() + ('_ASC' if d else '_DESC')
)


class Kkt(SQLAlchemyObjectType):
    class Meta:
        model = KktModel
        # interfaces = (relay.Node, )


class KktConnection(relay.Connection):
    class Meta:
        node = Kkt

Example #2
0
    class Meta:
        node = Employee


class Role(SQLAlchemyObjectType):
    class Meta:
        model = RoleModel
        interfaces = (relay.Node, )


class RoleConnection(relay.Connection):
    class Meta:
        node = Role


SortEnumEmployee = utils.sort_enum_for_model(EmployeeModel, 'SortEnumEmployee',
    lambda c, d: c.upper() + ('_ASC' if d else '_DESC'))


class Query(graphene.ObjectType):
    node = relay.Node.Field()
    # Allow only single column sorting
    all_employees = SQLAlchemyConnectionField(
        EmployeeConnection,
        sort=graphene.Argument(
            SortEnumEmployee,
            default_value=utils.EnumValue('id_asc', EmployeeModel.id.asc())))
    # Allows sorting over multiple columns, by default over the primary key
    all_roles = SQLAlchemyConnectionField(RoleConnection)
    # Disable sorting over this field
    all_departments = SQLAlchemyConnectionField(DepartmentConnection, sort=None)
Example #3
0
# pylint: disable=too-few-public-methods
from graphene import relay
from graphene_sqlalchemy import utils
from core.db.models.domain_card import DomainCard as DomainCardModel
from core.graphql.schemas import (
    OptimizeResolveObjectType,
    OptimizeResolveConnection,
)


class DomainCard(OptimizeResolveObjectType):
    class Meta:
        model = DomainCardModel
        interfaces = (relay.Node,)
        only_fields = ('display_title', 'display_text', 'display_image', 'display_order')

    @staticmethod
    def resolve_display_image(model, info):
        value = model.display_image
        return value.strip() if value else value


class DomainCardsConnection(OptimizeResolveConnection):
    class Meta:
        node = DomainCard


DomainCardSortEnum = utils.sort_enum_for_model(DomainCardModel)
Example #4
0
    def optimize_resolve_domain_card(query_parent_path):
        query_child_path = '.'.join([query_parent_path, 'card'])

        return OptimizeResolveTuple(
            query_options=joinedload(query_child_path),
            query_child_path=query_child_path,
            child_node_class=DomainCard
        )


class UserCardsConnection(OptimizeResolveConnection):
    class Meta:
        node = UserCard


UserCardSortEnum = utils.sort_enum_for_model(UserCardModel)


class UserCardInput(graphene.InputObjectType):
    domain_card_id = graphene.ID(required=True)
    preference = graphene.Field(CardPreference, required=True)


def save_user_cards(inp, user):
    cards_inp = inp.get('user_cards')
    if cards_inp is None:
        return

    card_inp_dict = {}
    for card_inp in cards_inp:
        domain_card_id = from_global_id_assert_type(card_inp.domain_card_id, 'DomainCard')
Example #5
0
    get_credit_card,
    get_user,
    get_or_create_user,
    get_user_by_sub,
    get_cognito_attr_dict,
    populate_automatic_username,
)
from core.dbmethods.subscription import save_subscription
from core.order.actions.base import send_template_email
from core.order.order_manager import (
    USER_UPCOMING_ORDER_STATES,
    USER_PROPOSED_ORDER_STATES,
    USER_ORDER_HISTORY_STATES,
)

UserSortEnum = utils.sort_enum_for_model(UserModel)


class CreditCard(graphene.ObjectType):
    brand = graphene.String()
    country = graphene.String()
    exp_month = graphene.String()
    exp_year = graphene.String()
    last4 = graphene.String()
    name = graphene.String()


def _can_return_sensitive_info(user, identity):
    return user.cognito_sub == identity.id.subject or identity.can(admin_user_permission)

Example #6
0
        node = Persons


class Email(SQLAlchemyObjectType):
    class Meta:
        model = EmailModel
        interfaces = (Node, )


class EmailsConnection(Connection):
    class Meta:
        node = Email


SortEnumPerson = utils.sort_enum_for_model(
    PersonModel, 'SortEnumPerson', lambda c, d: c.upper() +
    ('_ASC' if d else '_DESC'))


class Query(ObjectType):
    node = Node.Field()
    all_persons = SQLAlchemyConnectionField(
        PersonConnection,
        sort=Argument(SortEnumPerson,
                      default_value=utils.EnumValue('id_asc',
                                                    PersonModel.id.asc())))
    all_next_person = SQLAlchemyConnectionField(PersonsConnection, sort=None)
    all_email = SQLAlchemyConnectionField(EmailsConnection)


class CreatePerson(Mutation):
        node = User


class Role(SQLAlchemyObjectType):
    class Meta:
        model = RoleModel
        interfaces = (relay.Node, )


class RoleConnection(relay.Connection):
    class Meta:
        node = Role


SortEnumUser = utils.sort_enum_for_model(
    UserModel, 'SortEnumUser', lambda c, d: c.upper() + ('_ASC'
                                                         if d else '_DESC'))


class Query(graphene.ObjectType):
    node = relay.Node.Field()
    # Allow only single column sorting
    all_users = SQLAlchemyConnectionField(
        UserConnections,
        sort=graphene.Argument(SortEnumUser,
                               default_value=utils.EnumValue(
                                   'id_asc', UserModel.id.asc())))
    # Allows sorting over multiple columns, by default over the primary key
    all_roles = SQLAlchemyConnectionField(RoleConnection)
    # Disable sorting over this field
    all_blogs = SQLAlchemyConnectionField(BlogConnection, sort=None)