Ejemplo n.º 1
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]
     subject = 'A new location has been added'
     template = 'location_success.html'
     payload = {
         'model': LocationModel,
         'field': 'name',
         'value': kwargs['name']
     }
     with SaveContextManager(location, 'Location', payload):
         if not notification.send_email_notification(
                 email=email,
                 subject=subject,
                 template=template,
                 location_name=location.name,
                 user_name=admin_name):
             raise GraphQLError("Location created but email not sent")
         return CreateLocation(location=location)
Ejemplo n.º 2
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)