def add_point(type): try: data = json.loads(request.data) title = None if 'title' in data: title = data['title'] if 'latitude' in data: latitude = float(data['latitude']) else: abort(400) if 'longitude' in data: longitude = float(data['longitude']) else: abort(400) desc = None if 'desc' in data: desc = data['desc'] resource = None if 'resource' in data: resource = data['resource'] thumb = None if 'thumb' in data: thumb = data['thumb'] photo = None if 'photo' in data: photo = data['photo'] timestamp = datetime.now() if 'timestamp' in data: timestamp = datetime.strptime(data['timestamp'], "%Y-%m-%dT%H:%M:%S.%fZ") point = Point( title=title, latitude=latitude, longitude=longitude, desc=desc, resource=resource, timestamp=timestamp, type=type ) point.put() except CapabilityDisabledError: logging.error(u'App Engine Datastore is currently in read-only mode.') abort(500) except BadValueError: abort(400) except TypeError: abort(400) except Exception as e: logging.error(e.args[0]) abort(500) return Response(json.dumps(point.to_dict()), mimetype='application/json');