Exemple #1
0
 def mutate(self, info, **kwargs):
     validate_empty_fields(**kwargs)
     query = Room.get_query(info)
     responses = []
     errors = []
     room = query.filter_by(id=kwargs['room_id']).first()
     if not room:
         raise GraphQLError("Non-existent room id")
     for each_response in kwargs['responses']:
         question = QuestionModel.query.filter_by(
             id=each_response.question_id).first()
         if not question:
             errors.append(
                 "Response to question {} was not saved because it does not exist".format(each_response.question_id)) # noqa
             continue
         question_type = question.question_type
         each_response['room_id'] = kwargs['room_id']
         responses, errors = create_response(question_type,
                                             errors,
                                             responses,
                                             **each_response)
     if errors:
         raise GraphQLError(
             ('The following errors occured: {}').format(
                 str(errors).strip('[]'))
             )
     return CreateResponse(response=responses)
Exemple #2
0
    def __init__(self, **kwargs):
        validate_empty_fields(**kwargs)

        self.name = kwargs['name']
        self.device_type = kwargs['device_type']
        self.date_added = kwargs['date_added']
        self.last_seen = kwargs['last_seen']
        self.location = kwargs['location']
        self.room_id = kwargs.get('room_id')
Exemple #3
0
 def mutate(self, info, **kwargs):
     validate_empty_fields(**kwargs)
     tag = TagModel(**kwargs)
     payload = {
         'model': TagModel, 'field': 'name', 'value':  kwargs['name']
         }
     with SaveContextManager(
        tag, 'Tag', payload
     ):
         return CreateTag(tag=tag)
Exemple #4
0
 def mutate(self, info, tag_id, **kwargs):
     validate_empty_fields(**kwargs)
     query_tag = Tag.get_query(info)
     tag = query_tag.filter(TagModel.id == tag_id,
                            TagModel.state == "active").first()
     if not tag:
         raise GraphQLError("Tag not found")
     update_entity_fields(tag, **kwargs)
     tag.save()
     return UpdateTag(tag=tag)
Exemple #5
0
 def mutate(self, info, resource_id, **kwargs):
     validate_empty_fields(**kwargs)
     query = Resource.get_query(info)
     active_resources = query.filter(ResourceModel.state == "active")
     exact_resource = active_resources.filter(
         ResourceModel.id == resource_id).first()
     if not exact_resource:
         raise GraphQLError("Resource not found")
     update_entity_fields(exact_resource, **kwargs)
     exact_resource.save()
     return UpdateRoomResource(resource=exact_resource)
Exemple #6
0
 def mutate(self, info, structure_id, **kwargs):
     validate_empty_fields(**kwargs)
     query = Structure.get_query(info)
     active_structure = query.filter(
         StructureModel.structure_id == structure_id,
         StructureModel.state == "active").first()
     if not active_structure:
         raise GraphQLError('Structure not found')
     update_entity_fields(active_structure, **kwargs)
     active_structure.save()
     return UpdateOfficeStructure(structure=active_structure)
Exemple #7
0
 def mutate(self, info, room_id, **kwargs):
     validate_empty_fields(**kwargs)
     query_room = Room.get_query(info)
     active_rooms = query_room.filter(RoomModel.state == "active")
     room = active_rooms.filter(RoomModel.id == room_id).first()
     if not room:
         raise GraphQLError("Room not found")
     update_entity_fields(room, **kwargs)
     room.save()
     requests.get(url=Config.MRM_PUSH_URL, params="hello")
     return UpdateFirebaseToken(room=room)
Exemple #8
0
 def mutate(self, info, **kwargs):
     validate_empty_fields(**kwargs)
     validate_question_type(**kwargs)
     validate_date_time_range(**kwargs)
     question = QuestionModel(**kwargs)
     payload = {
         'model': QuestionModel,
         'field': 'question',
         'value': kwargs['question']
     }
     with SaveContextManager(question, 'Question', payload):
         return CreateQuestion(question=question)
Exemple #9
0
 def mutate(self, info, node_list):
     validate_structure_nodes(node_list)
     admin_location_id = admin_roles.user_location_for_analytics_view()
     nodes = []
     for node in node_list:
         validate_empty_fields(**node)
         node['name'] = node.name.strip()
         node['tag'] = node.tag.strip()
         nodes.append(StructureModel(**node, location_id=admin_location_id))
     db_session.add_all(nodes)
     db_session.commit()
     return CreateStructure(structure=nodes)
Exemple #10
0
 def mutate(self, info, room_id, **kwargs):
     validate_empty_fields(**kwargs)
     query_room = Room.get_query(info)
     active_rooms = query_room.filter(RoomModel.state == "active")
     room = active_rooms.filter(RoomModel.id == room_id).first()
     if not room:
         raise GraphQLError("Room not found")
     update_entity_fields(room, **kwargs)
     room.save()
     subscriber.update_room_token.delay(room.calendar_id,
                                        room.firebase_token)
     return UpdateFirebaseToken(room=room)
Exemple #11
0
    def mutate(self, info, device_id, **kwargs):
        validate_empty_fields(**kwargs)

        query_device = Devices.get_query(info)
        exact_device = query_device.filter(
            DevicesModel.id == device_id
        ).first()
        if not exact_device:
            raise GraphQLError("Device ID not found")
        update_entity_fields(exact_device, **kwargs)

        exact_device.save()
        return UpdateDevice(device=exact_device)
Exemple #12
0
 def mutate(self, info, question_id, **kwargs):
     validate_empty_fields(**kwargs)
     validate_question_type(**kwargs)
     query_question = Question.get_query(info)
     active_questions = query_question.filter(
         QuestionModel.state == "active")
     exact_question = active_questions.filter(
         QuestionModel.id == question_id).first()
     if not exact_question:
         raise GraphQLError("Question not found")
     validate_date_time_range(**kwargs)
     update_entity_fields(exact_question, **kwargs)
     exact_question.save()
     return UpdateQuestion(question=exact_question)
Exemple #13
0
    def mutate(self, info, office_id, **kwargs):
        validate_empty_fields(**kwargs)
        get_office = Office.get_query(info)
        result = get_office.filter(OfficeModel.state == "active")
        exact_office = result.filter(OfficeModel.id == office_id).first()
        if not exact_office:
            raise GraphQLError("Office not found")
        admin_roles.create_rooms_update_delete_office(office_id)
        try:
            update_entity_fields(exact_office, **kwargs)
            exact_office.save()
        except exc.SQLAlchemyError:
            raise GraphQLError("Action Failed")

        return UpdateOffice(office=exact_office)
Exemple #14
0
 def mutate(self, info, room_id, **kwargs):
     validate_empty_fields(**kwargs)
     query_room = Room.get_query(info)
     active_rooms = query_room.filter(RoomModel.state == "active")
     room = active_rooms.filter(RoomModel.id == room_id).first()
     if not room:
         raise GraphQLError("Room not found")
     admin_roles.update_delete_rooms_create_resource(room_id)
     room_tags = []
     if kwargs.get('room_tags'):
         room_tags = kwargs.pop('room_tags')
     update_entity_fields(room, **kwargs)
     previous_tags = room.room_tags
     previous_tags.clear()
     save_room_tags(room, room_tags)
     return UpdateRoom(room=room)
Exemple #15
0
 def mutate(self, info, **kwargs):
     validate_empty_fields(**kwargs)
     if 'parent_id' in kwargs:
         validate_parent_node_id(parent_id=kwargs['parent_id'])
     if 'tag_id' in kwargs:
         verify_tag_id(tag_id=kwargs['tag_id'])
     node = OfficeStructureModel(**kwargs)
     payload = {
         'model': OfficeStructureModel,
         'field': 'name',
         'value':  kwargs['name']
         }
     with SaveContextManager(
       node, 'node level', payload
     ):
         return CreateNode(node=node)
Exemple #16
0
 def mutate(self, info, **kwargs):
     # Validate if the country given is a valid country
     validate_country_field(**kwargs)
     validate_timezone_field(**kwargs)
     validate_url(**kwargs)
     validate_empty_fields(**kwargs)
     location = LocationModel(**kwargs)
     admin = get_user_from_db()
     email = admin.email
     username = email.split("@")[0]
     admin_name = username.split(".")[0]
     payload = {
         'model': LocationModel, 'field': 'name', 'value':  kwargs['name']
         }
     with SaveContextManager(location, 'Location', payload):
         if not send_email_notification(email, location.name, admin_name):
             raise GraphQLError("Location created but email not sent")
         return CreateLocation(location=location)
Exemple #17
0
 def mutate(self, info, **kwargs):
     validate_empty_fields(**kwargs)
     validate_question_type(**kwargs)
     validate_date_time_range(**kwargs)
     question_type = kwargs['question_type']
     fields = kwargs
     if question_type == "check" and not kwargs.get('check_options'):
         return GraphQLError(
             "No check options supplied for question type check")
     if question_type != "check":
         fields['check_options'] = None
     payload = {
         'model': QuestionModel,
         'field': 'question',
         'value': kwargs['question']
     }
     question = QuestionModel(**fields)
     with SaveContextManager(question, 'Question', payload):
         return CreateQuestion(question=question)
Exemple #18
0
    def mutate(self, info, **kwargs):
        query = StructureNode.get_query(info)
        node = query.filter(StructureModel.id == kwargs['node_id']).first()

        if not node:
            raise GraphQLError("node not found")

        validate_empty_fields(**kwargs)

        if kwargs.get('name'):
            kwargs['name'] = kwargs['name'].strip()
        else:
            kwargs['name'] = node.name

        if kwargs.get('tag'):
            kwargs['tag'] = kwargs['tag'].strip()
        else:
            kwargs['tag'] = node.tag

        update_entity_fields(node, **kwargs)
        node.save()

        return UpdateNode(node=node)
Exemple #19
0
 def mutate(self, info, location_id, **kwargs):
     location = Location.get_query(info)
     result = location.filter(LocationModel.state == "active")
     location_object = result.filter(
         LocationModel.id == location_id).first()
     if not location_object:
         raise GraphQLError("Location not found")
     admin_roles.verify_admin_location(location_id)
     if "time_zone" in kwargs:
         validate_timezone_field(**kwargs)
     if "country" in kwargs:
         validate_country_field(**kwargs)
     if "image_url" in kwargs:
         validate_url(**kwargs)
     validate_empty_fields(**kwargs)
     active_locations = result.filter(
         LocationModel.name == kwargs.get('name'))
     if active_locations:
         pass
     else:
         raise AttributeError("Not a valid location")
     update_entity_fields(location_object, **kwargs)
     location_object.save()
     return UpdateLocation(location=location_object)
Exemple #20
0
    def __init__(self, **kwargs):
        validate_empty_fields(**kwargs)

        self.name = kwargs.get('name')
        self.quantity = kwargs.get('quantity')
Exemple #21
0
    def __init__(self, **kwargs):
        validate_empty_fields(**kwargs)

        self.email = kwargs['email']
        self.name = kwargs['name']
        self.picture = kwargs['picture']
Exemple #22
0
    def __init__(self, **kwargs):

        validate_empty_fields(**kwargs)

        self.role = kwargs['role']
Exemple #23
0
 def __init__(self, **kwargs):
     validate_empty_fields(**kwargs)
     self.color = kwargs.get('color')
     self.description = kwargs.get('description')
     self.name = kwargs.get('name')