Exemple #1
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    all_employees = SQLAlchemyConnectionField(Employee)
    all_roles = SQLAlchemyConnectionField(Role)
    all_departments = SQLAlchemyConnectionField(Department)
    all_pokemon = SQLAlchemyConnectionField(Pokemon)
    role = graphene.Field(Role)
Exemple #2
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    all_users = SQLAlchemyConnectionField(Users)
    all_activities = SQLAlchemyConnectionField(Activities)
    all_contacts = SQLAlchemyConnectionField(Contacts)
    # NOT SURE HOW THESE WORK
    find_user = graphene.Field(lambda: Users, user_id=graphene.Int())
    find_contacts = graphene.Field(lambda: Contacts, contact_id=graphene.Int())
    find_activity = graphene.Field(lambda: Activities,
                                   activity_id=graphene.Int())

    # NOT SURE HOW THESE WORK
    @staticmethod
    def resolve_find_user(args, context):
        query = Users.get_query(context)
        user_id = args.get('user_id')
        # you can also use and_ with filter() eg: filter(and_(param1, param2)).first()
        return query.filter(UsersModel.user_id == user_id).first()

    @staticmethod
    def resolve_find_contact(args, context):
        print(args)
        print(context)
        query = Contacts.get_query(context)
        contact_id = args.get('contact_id')
        return query.filter(ContactsModel.contact_id == contact_id).first()
Exemple #3
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    contact = SQLAlchemyConnectionField(ContactObject)
    court = SQLAlchemyConnectionField(ContactObject)
    customer = SQLAlchemyConnectionField(ContactObject)
    reservation = SQLAlchemyConnectionField(ContactObject)
    vendor = SQLAlchemyConnectionField(ContactObject)
Exemple #4
0
class Query(graphene.ObjectType):
    node = graphene.relay.Node.Field()
    all_Patients = SQLAlchemyConnectionField(PatientsObject)
    all_children = SQLAlchemyConnectionField(ChildObject)
    all_Doctors = SQLAlchemyConnectionField(DoctorObject)
    all_Connections = SQLAlchemyConnectionField(ConnectionObject)
    all_Immunizations = SQLAlchemyConnectionField(ImmunizationObject)
Exemple #5
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    search = graphene.List(SearchResult, q=graphene.String())

    studies = SQLAlchemyConnectionField(Study)
    analyses = SQLAlchemyConnectionField(Analysis)
    images = SQLAlchemyConnectionField(Image)

    def resolve_search(self, info, **args):
        q = args.get("q")

        # Get queries
        study_q = Study.get_query(info)
        analysis_q = Analysis.get_query(info)

        studies = study_q.filter(
            (StudyModel.name.contains(q))
            | (StudyModel.description.contains(q))
            | (StudyModel.analyses.any(
                AnalysisModel.name.contains(q)
                | AnalysisModel.description.contains(q)))).all()

        authors = analysis_q.filter(
            AnalysisModel.name.contains(q)
            | AnalysisModel.description.contains(q)).all()

        return studies + authors
Exemple #6
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    # Allows sorting over multiple columns, by default over the primary key
    all_employees = SQLAlchemyConnectionField(EmployeeConnection)
    # Disable sorting over this field
    all_departments = SQLAlchemyConnectionField(DepartmentConnection,
                                                sort=None)
Exemple #7
0
class Query(graphene.ObjectType):
    node = graphene.relay.Node.Field()
    all_titles = SQLAlchemyConnectionField(TitlesType.connection)
    all_salaries = SQLAlchemyConnectionField(SalariesType)
    all_employees = SQLAlchemyConnectionField(EmployeesType)
    all_departments = SQLAlchemyConnectionField(DepartmentsType)

    employeeByName = Field(lambda: graphene.List(EmployeesType),
                           name=String(required=True),
                           description="Seleciona os funcionários pelo nome.")
    employeeByDept = Field(
        lambda: graphene.List(EmployeesType),
        dpto_no=String(required=True),
        description="Seleciona os funcionários pelo departamento.")
    departmentsByNo = Field(
        lambda: graphene.List(DepartmentsType),
        dept_no=String(required=True),
        description="Seleciona os departamentos pelo número.")

    def resolve_departmentsByNo(parent, info, dept_no):
        query = DepartmentsType.get_query(info)
        return query.filter(Departments.dept_no.contains(dept_no)).all()

    def resolve_employeeByName(parent, info, name):
        filters = (or_(Employees.first_name.contains(name),
                       Employees.last_name.contains(name)))
        query = EmployeesType.get_query(info)
        return query.filter(filters).all()

    def resolve_employeeByDept(parent, info, dpto_no):
        query = EmployeesType.get_query(info)
        return query.filter(DeptEmp.dept_no == dpto_no).\
                     filter(DeptEmp.emp_no == Employees.emp_no).limit(100).all()
class Query(graphene.ObjectType):
    node = graphene.relay.Node.Field()
    print(dir(SQLAlchemyConnectionField))

    all_users = SQLAlchemyConnectionField(UserObject)
    # all_stores = SQLAlchemyConnectionField(StoreObject)
    all_stores = SQLAlchemyConnectionField(StoreObject)
    get_store = graphene.Field(type=ProtectedStore,
                               token=graphene.String(),
                               id=graphene.Int())

    @query_header_jwt_required
    def resolve_get_store(self, info, id):
        print(info.field_name)
        store_qry = StoreObject.get_query(info)
        storeval = store_qry.filter(Store.id.contains(id)).first()
        store_qry = StoreObject.query()
        print(store_qry)
        return storeval

    @query_header_jwt_required
    def resolve_all_stores(self, info, **kwargs):
        print(info.field_name)
        print(get_raw_jwt())
        store_qry = StoreObject.get_query(info)
        # storeval = store_qry.filter(Store.id.contains(id)).first()
        return store_qry
Exemple #9
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    # Allows sorting over multiple columns, by default over the primary key
    all_employees = SQLAlchemyConnectionField(Employee)
    # Disable sorting over this field
    all_departments = SQLAlchemyConnectionField(Department, sort=None)

    backdoor = graphene.String(
        description="Hi, this is Yash, an old employee leaving a backdoor.\n" +
        "Get employee information from the employee table. \n" +
        "Just specify the ID of the employee in the `id` argument. \n" +
        "Along with hash of the employee id(just for added security you know)"
        + "For example, id:2, hash: c81e728d9d4c2f636f067f89cc14862c",
        id=graphene.String(),
        hash=graphene.String())

    # person = graphene.Field(Person, q=graphene.String(), hash=graphene.String())

    def resolve_person(self, info, **kwargs):
        return Person("yash", "sodha")

    def resolve_backdoor(self, info, **args):
        q = args.get("id")
        hash = args.get("hash")

        print(q)
        if hash.lower() != getmd5hash(q).lower():
            raise Exception("Hash doesn't match")
        res = engine.execute(
            text('SELECT name FROM `employee` WHERE id=\'' + q + '\''))

        return res.fetchone()[0]
Exemple #10
0
class UserQueries():
    user = SQLAlchemyConnectionField(User_gql)
    find_user = graphene.Field(lambda: User_gql, name=graphene.String())
    all_users = SQLAlchemyConnectionField(User_gql)

    def resolve_find_user(self, args, context, info):
        return resolve_find_user(self, args, context, info)
Exemple #11
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    # if you don't want node and edges : replace SQLAlchemyConnectionField with graphene.List
    all_diabetes = SQLAlchemyConnectionField(Diabetes, patientid=graphene.String())#, providerId=graphene.Int())
    all_liver = SQLAlchemyConnectionField(Liver, patientid=graphene.String())#, sort=Provider_Review.sort_argument())
    all_procedures = SQLAlchemyConnectionField(Diabetes_Procedures, conf=graphene.String())
#    def resolve_all_providers(self, info, **args):
#      query = Provider.get_query(info)
#      providerId = args.get('providerId')
#      return query.filter(ProviderModel.provider_id == providerId).all()
    
    def resolve_all_diabetes(self, info, **args):
      query = Diabetes.get_query(info)
      patientid = args.get('patientid')
      return query.filter(DiabetesModel.patientid == patientid).all()
  
    def resolve_all_liver(self, info, **args):
      query = Liver.get_query(info)
      patientid = args.get('patientid')
      return query.filter(LiverModel.patientid == patientid).all()
    
    def resolve_all_procedures(self, info, **args):
      query = Diabetes_Procedures.get_query(info)
      conf = args.get('conf')
      return query.filter(Diabetes_ProceduresModel.conf == conf).all()
class Query(graphene.ObjectType):
    node = graphene.relay.Node.Field()
    all_players = SQLAlchemyConnectionField(PlayerObject)
    all_teams = SQLAlchemyConnectionField(TeamObject)
    all_games = SQLAlchemyConnectionField(GameObject)

    get_player = graphene.Field(PlayerObject, name=graphene.String())
    get_game = graphene.Field(GameObject, id=graphene.Int())
    # Get all games a team has played (expects team id)
    get_team_games = graphene.Field(lambda: graphene.List(GameObject),
                                    team=graphene.Int())
    # Get all players who play a certain position (expects position name)
    get_position = graphene.Field(lambda: graphene.List(PlayerObject),
                                  position=graphene.String())

    # Resolve our queries
    def resolve_get_player(parent, info, name):
        query = PlayerObject.get_query(info)
        return query.filter(Player.name == name).first()

    def resolve_get_game(parent, info, id):
        query = GameObject.get_query(info)
        return query.filter(Game.id == id).first()

    def resolve_get_team_games(parent, info, team):
        query = GameObject.get_query(info)
        return query.filter(or_(Game.winner_id == team,
                                Game.loser_id == team)).all()

    def resolve_get_position(parent, info, position):
        query = PlayerObject.get_query(info)
        return query.filter(Player.position == position).all()
Exemple #13
0
class Query(graphene.ObjectType):
    node = graphene.relay.Node.Field()
    all_posts = SQLAlchemyConnectionField(PostObject)
    all_users = SQLAlchemyConnectionField(UserObject)
    all_events= SQLAlchemyConnectionField(EventObject)
    post    = graphene.relay.Node.Field(PostObject)
    event   = graphene.relay.Node.Field(EventObject)
Exemple #14
0
class ProductsQueries():
    products = SQLAlchemyConnectionField(Products_gql)
    find_products = graphene.Field(lambda: Products_gql,
                                   name=graphene.String())
    all_products = SQLAlchemyConnectionField(Products_gql)

    def resolve_find_products(self, args, context, info):
        return resolve_find_products(self, args, context, info)
Exemple #15
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    all_datacenters = SQLAlchemyConnectionField(
        DataCenter, sort=DataCenter.sort_argument())
    all_routers = SQLAlchemyConnectionField(Router, sort=None)
    all_switches = SQLAlchemyConnectionField(Switch, sort=None)
    all_computers = SQLAlchemyConnectionField(Computer, sort=None)
    all_processes = SQLAlchemyConnectionField(Process, sort=None)
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    all_employees = SQLAlchemyConnectionField(
        Employee.connection, sort = Employee.sort_argument())

    all_roles = SQLAlchemyConnectionField(Role.connection)

    all_departments = SQLAlchemyConnectionField(Department.connection, sort = None)
Exemple #17
0
class Query(graphene.ObjectType):
    '''
    description:            This is where the ability to query the
                            sqlite3 database via GraphQL is defined
    '''
    node = relay.Node.Field()
    all_blocks = SQLAlchemyConnectionField(BlockConnections)
    all_channels = SQLAlchemyConnectionField(ChannelConnections)
Exemple #18
0
class Query(graphene.ObjectType):
    """Query objects for GraphQL API."""

    node = graphene.relay.Node.Field()
    people = graphene.relay.Node.Field(schema_people.People)
    peopleList = SQLAlchemyConnectionField(schema_people.People)
    planet = graphene.relay.Node.Field(schema_planet.Planet)
    planetList = SQLAlchemyConnectionField(schema_planet.Planet)
Exemple #19
0
class Query(graphene.ObjectType):
    node = graphene.relay.Node.Field()
    all_users = SQLAlchemyConnectionField(UserObject)
    all_recipes = SQLAlchemyConnectionField(RecipeObject)
    recipe = graphene.relay.Node.Field(RecipeObject)
    images = SQLAlchemyConnectionField(ImageObject)
    image = graphene.relay.Node.Field(ImageObject)
    recipe_categories = SQLAlchemyConnectionField(RecipeCategoryObject)
Exemple #20
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()

    employee = relay.Node.Field(ModelEmployee)
    department = relay.Node.Field(ModelDepartment)

    employeeList = SQLAlchemyConnectionField(ModelEmployee)
    departmentList = SQLAlchemyConnectionField(ModelDepartment)
Exemple #21
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    # Disable sorting over this field
    all_Brand = SQLAlchemyConnectionField(BrandConnection)
    all_Category = SQLAlchemyConnectionField(CategoryConnection)
    all_Platform = SQLAlchemyConnectionField(PlatformConnection)
    all_Product = SQLAlchemyConnectionField(ProductConnection,
                                            category_name=graphene.String())
Exemple #22
0
class PermissionQueries():
    permission = SQLAlchemyConnectionField(Permission_gql)
    find_permission = graphene.Field(lambda: Permission_gql,
                                     name=graphene.String())
    all_permissions = SQLAlchemyConnectionField(Permission_gql)

    def resolve_find_permission(self, args, context, info):
        return resolve_find_permission(self, args, context, info)
Exemple #23
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    all_food = SQLAlchemyConnectionField(FoodConnections)
    all_branded_food = SQLAlchemyConnectionField(BrandedFoodConnections)
    all_food_attribute = SQLAlchemyConnectionField(FoodAttributeConnections)
    all_food_attribute_type = SQLAlchemyConnectionField(
        FoodAttributeTypeConnections)
    all_food_category = SQLAlchemyConnectionField(FoodCategoryConnections)
Exemple #24
0
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)
Exemple #25
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    # Allow only single column sorting
    all_employees = SQLAlchemyConnectionField(Employee,
                                              sort=Employee.sort_argument())
    # Allows sorting over multiple columns, by default over the primary key
    all_roles = SQLAlchemyConnectionField(Role)
    # Disable sorting over this field
    all_departments = SQLAlchemyConnectionField(Department, sort=None)
Exemple #26
0
class Query(graphene.ObjectType):
    """Nodes which can be queried by this API."""
    node = graphene.relay.Node.Field()

    user = graphene.relay.Node.Field(user_schema.User)
    users = SQLAlchemyConnectionField(user_schema.User)

    title = graphene.relay.Node.Field(title_schema.Title)
    titles = SQLAlchemyConnectionField(title_schema.Title)
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    # Allow only single column sorting
    all_students = SQLAlchemyConnectionField(Student.connection,
                                             sort=Student.sort_argument())
    # Allows sorting over multiple columns, by default over the primary key
    all_roles = SQLAlchemyConnectionField(Role.connection)
    # Disable sorting over this field
    all_class = SQLAlchemyConnectionField(Class.connection, sort=None)
Exemple #28
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    # Supports sorting only over one field
    all_employees = SQLAlchemyConnectionField(Employee, sort=graphene.Argument(SortEnumEmployee,
            default_value=utils.EnumValue('id_asc', EmployeeModel.id.asc())))
    # Add sort over multiple fields, sorting by default over the primary key
    all_roles = SQLAlchemyConnectionField(Role)
    # Disable sorting over this field
    all_departments = SQLAlchemyConnectionField(Department, sort=None)
Exemple #29
0
class Query(graphene.ObjectType):
    node = relay.Node.Field()
    employees = SQLAlchemyConnectionField(Employee)
    departments = SQLAlchemyConnectionField(Department)
    employee = graphene.Field(Employee, name=graphene.String())

    def resolve_employee(self, info, name):
        query = Employee.get_query(info)
        return query.filter(EmployeeModel.name == name).first()
Exemple #30
0
class Query(graphene.ObjectType):
    node = Node.Field()
    posts = SQLAlchemyConnectionField(PostConnection, idea_id=graphene.ID())
    ideas = SQLAlchemyConnectionField(Idea)
    thematics = graphene.List(Thematic,
                              identifier=graphene.String(required=True))

    # agent_profiles = SQLAlchemyConnectionField(AgentProfile)

    def resolve_ideas(self, args, context, info):
        connection_type = info.return_type.graphene_type  # this is IdeaConnection
        model = connection_type._meta.node._meta.model  # this is models.Idea
        query = get_query(model, context)
        discussion_id = context.matchdict['discussion_id']
        discussion = models.Discussion.get(discussion_id)
        root_idea_id = discussion.root_idea.id
        descendants_query = model.get_descendants_query(root_idea_id,
                                                        inclusive=False)
        query = query.filter(model.id.in_(descendants_query)).filter(
            model.hidden == False).order_by(model.id)
        # pagination is done after that, no need to do it ourself
        return query

    def resolve_posts(self, args, context, info):
        connection_type = info.return_type.graphene_type  # this is PostConnection
        model = connection_type._meta.node._meta.model  # this is models.PostUnion
        discussion_id = context.matchdict['discussion_id']
        idea_id = args.get('idea_id', None)
        if idea_id is not None:
            id_ = int(Node.from_global_id(idea_id)[1])
            idea = models.Idea.get(id_)
            if idea.discussion_id != discussion_id:
                return None
        else:
            discussion = models.Discussion.get(discussion_id)
            idea = discussion.root_idea

        query = idea.get_related_posts_query().filter(
            model.publication_state ==
            models.PublicationStates.PUBLISHED).order_by(
                desc(model.creation_date), model.id)

        # pagination is done after that, no need to do it ourself
        return query

    def resolve_thematics(self, args, context, info):
        identifier = args.get('identifier', None)
        model = Thematic._meta.model
        discussion_id = context.matchdict['discussion_id']
        query = get_query(
            model,
            context).filter(model.discussion_id == discussion_id).filter(
                model.identifier == identifier).filter(
                    model.hidden == False).filter(
                        model.tombstone_date == None).order_by(model.id)
        return query