def upsert(name, triangle):
    """ Handles upsert funtionality of mutations

    Parameters
    ----------
    name :
        The name of the Triangle
    triangle:
        The triangle instance
    """
    bytes_container = pickle.dumps(triangle)
    try:
        # If table exists
        exists = db_session.query(ModelTriangle).filter_by(name=name)
        if exists.first():
            exists.update({'edited': datetime.utcnow(),
                           'data': bytes_container})
        else:
            data = {'name': name,
                    'data': bytes_container,
                    'created': datetime.utcnow(),
                    'edited': datetime.utcnow()}
            db_session.add(ModelTriangle(**data))
    except:
        data = {'name': name,
                'data': bytes_container,
                'created': datetime.utcnow(),
                'edited': datetime.utcnow()}
        db_session.add(ModelTriangle(**data))
    db_session.commit()
    return db_session.query(ModelTriangle).filter_by(name=name).first()
 def mutate(self, info, input):
     data = utils.input_to_dictionary(input)
     person = db_session.query(ModelPeople).filter_by(id=data['id']).first()
     print("mutation Delete")
     db_session.delete(person)
     db_session.commit()
     person = db_session.query(ModelPeople).filter_by(id=data['id']).first()
     return DeletePerson(person=person)
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        match = ModelMatches(**data)
        db_session.query(ModelMatches).filter_by(
            match_id=data['match_id']).delete()
        db_session.commit()

        return DeleteMatch(match=match)
예제 #4
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        user = db_session.query(UserModel).filter_by(netid=data["netid"])
        user.update(data)
        db_session.commit()
        user = db_session.query(UserModel).filter_by(
            netid=data["netid"]).first()

        return UpdateUser(user=user)
예제 #5
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        question = db_session.query(QuestionModel).filter_by(id=data["id"])
        question.update(data)
        db_session.commit()
        question = db_session.query(QuestionModel).filter_by(
            id=data["id"]).first()

        return UpdateQuestion(question=question)
예제 #6
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)

        task = db_session.query(ModelTask).filter_by(id=data['id'])
        task.update(data)
        db_session.commit()
        task = db_session.query(ModelTask).filter_by(id=data['id']).first()

        return UpdateTask(task=task)
예제 #7
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)

        card = db_session.query(ModelCard).filter_by(id=data['id'])
        card.update(data)
        db_session.commit()
        card = db_session.query(ModelCard).filter_by(id=data['id']).first()

        return UpdateCard(card=card)
예제 #8
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        data["edited"] = datetime.utcnow()

        agent = db_session.query(ModelAgent).filter_by(id=data["id"])
        agent.update(data)
        db_session.commit()
        agent = db_session.query(ModelAgent).filter_by(id=data["id"]).first()

        return UpdateAgent(agent=agent)
예제 #9
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        data['edited'] = datetime.utcnow()

        person = db_session.query(ModelPeople).filter_by(id=data['id'])
        people.update(data)
        db_session.commit()
        person = db_session.query(ModelPeople).filter_by(id=data['id']).first()

        return UpdatePerson(person=person)
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        data['edited'] = datetime.utcnow()

        planet = db_session.query(ModelPlanet).filter_by(id=data['id'])
        planet.update(data)
        db_session.commit()
        planet = db_session.query(ModelPlanet).filter_by(id=data['id']).first()

        return UpdatePlanet(planet=planet)
예제 #11
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        data["edited"] = datetime.utcnow()

        customer = db_session.query(ModelCustomer).filter_by(id=data["id"])
        customer.update(data)
        db_session.commit()
        customer = db_session.query(ModelCustomer).filter_by(
            id=data["id"]).first()

        return UpdaterCustomer(customer=customer)
예제 #12
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)

        #filter_by refers to the columns or rows in the attributes
        service = db_session.query(ModelService).filter_by(
            service=data['service'])
        service.update(data)
        db_session.commit()
        service = db_session.query(ModelService).filter_by(
            service=data['service']).first()

        return UpdateService(service=service)
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        if "match_date" in data.keys():
            data['match_date'] = datetime.strptime(data['match_date'],
                                                   '%Y-%m-%d')

        match = db_session.query(ModelMatches).filter_by(
            match_id=data['match_id'])
        match.update(data)
        db_session.commit()
        match = db_session.query(ModelMatches).filter_by(
            match_id=data['match_id']).first()

        return UpdateMatch(match=match)
예제 #14
0
def check_passphrase(email, passphrase):
    user = db_session.query(ModelUser).filter_by(email=email).scalar()

    if bcrypt.checkpw(passphrase.encode(), user.passphrase):
        return user.id
    else:
        return None
예제 #15
0
    def mutate(self, info, **kwargs):
        card = db_session.query(ModelCard).filter_by(
            id=kwargs.get('id')).first()

        db_session.delete(card)
        db_session.commit()
        return DeleteCard(status="OK")
    def resolve_findMatch(args: Dict,
                          info: graphql.execution.base.ResolveInfo,
                          date: Union[str, None] = None):

        date = datetime.strptime(date, '%Y-%m-%d')
        match = db_session.query(ModelMatches).filter_by(match_date=date).all()

        return match
예제 #17
0
def create_uid(model):
	min_ = 10000
	max_ = 10000000
	uid =  randint(min_, max_)

	while db_session.query(model).filter_by(id=uid).first() is not None:
		uid = randint(min_, max_)

	return uid
예제 #18
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)

        service = db_session.query(ModelService).filter_by(
            service=data['service'])
        service.delete()
        db_session.commit()
        return RemoveService(
            service="Removed {} service".format(data['service']))
        #return RemoveService(service=service)
 def mutate(self, info, name, **kwargs):
     triangle = db_session.query(ModelTriangle).filter_by(name=name)
     updated_tri = AbstractTriangleMutation.transform(
         pickle.loads(triangle.first().data), **kwargs)
     assign_to = kwargs.get('assign_to', None)
     if assign_to:
         return AbstractTriangleMutation(triangle=upsert(assign_to, updated_tri))
     else:
         bytes_container = pickle.dumps(updated_tri)
         triangle.update({'data': bytes_container})
         return AbstractTriangleMutation(triangle=triangle.first())
예제 #20
0
    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        data["time_posted"] = datetime.utcnow()
        data["queue_pos"] = len(
            db_session.query(QuestionModel).filter(
                QuestionModel.course_id == data["course_id"]).filter(
                    QuestionModel.queue_pos > 0).all()) + 1

        question = QuestionModel(**data)
        db_session.add(question)
        db_session.commit()

        return CreateQuestion(question=question)
예제 #21
0
    def resolve_hub_keywords_list(self, info, **args):
        keywords = []

        q = db_session.query(hub_db.HubProjects).filter(
            getattr(hub_db.HubProjects, "show").is_(True)
        )

        c = Counter([key for data in q for key in data.keywords])

        for key, count in c.items():
            keywords.append(HubKeywords(key, count))

        return keywords
예제 #22
0
def save_user_data(kwargs):
    email = kwargs['data']['email']
    if db_session.query(kwargs['model']).filter_by(email=email).first(
    ):  #checks to see if user already made an account with the given email
        return "Email already in use"

    kwargs['data']['passphrase'] = hash_passphrase(
        kwargs['data']['passphrase'])
    kwargs['data']['id'] = create_uid(kwargs['model'])

    new_model = kwargs['model'](**kwargs['data'])
    db_session.add(new_model)
    db_session.commit()
    return "Account Created"
예제 #23
0
def save_services_data(kwargs):
    query_result = db_session.query(
        kwargs['model']).filter_by(user_id=kwargs['user_id'])

    if not query_result.first():  #.first() will return None if not found
        kwargs['data']['id'] = create_uid(kwargs['model'])
        kwargs['data']['user_id'] = kwargs['user_id']
        new_model = kwargs['model'](**kwargs['data'])
        db_session.add(new_model)
    else:
        query_result.update(
            kwargs["data"]
        )  #if we use .first() here then the object will not have the update attribute

    db_session.commit()
    return "Data Added"
예제 #24
0
 def resolve_nace_industry(self, info, **args):
     return (db_session.query(albania_db.AlbaniaNACEIndustry).filter(
         getattr(albania_db.AlbaniaNACEIndustry, "nace_id") ==
         args["nace_id"]).one())
예제 #25
0
 def resolve_nace_industry_list(self, info, **args):
     return db_session.query(albania_db.AlbaniaNACEIndustry)
예제 #26
0
	def resolve_find_service(self, info, service):
		service_name = db_session.query(ModelService).filter_by(service=service)		
		return service_name
예제 #27
0
 def resolve_script(self, info, **args):
     return db_session.query(albania_db.AlbaniaScript)
예제 #28
0
	def resolve_find_user(self, info, email):
		service_name = db_session.query(ModelUser).filter_by(email=email)		
		return service_name
 def mutate(self, info, name):
     db_session.query(ModelTriangle).filter_by(name=name).delete()
     db_session.commit()
     return DeleteTriangle(ok='ok')
예제 #30
0
 def resolve_jordan_industry(self, info, **args):
     return (db_session.query(jordan_db.JordanIndustry).filter(
         getattr(jordan_db.JordanIndustry, "industry_code") ==
         args["industry_code"]).one())