def get(self, name=None): queryData = request.args.to_dict() if name: location = LocationModel.find_by_name(name) if location: return location.json(), 200 else: return {'error': 'location not found'}, 404 locations = LocationModel.find(**queryData) return {'locations': list(map(lambda x: x.json(), locations))}, 200
def delete(self, name): location = LocationModel.find_by_name(name) if location: location.delete_from_db() else: return {'error': 'Location not found'}, 404 return {'success': 'location deleted'}, 202
def post(self): errors = [] response = json.loads(self.request.body) location_param = param_util.GetParam(response, 'location', True) id = param_util.GetInt(location_param, 'id', True) name = param_util.GetString(location_param, 'name', True) address = param_util.GetParam(location_param, 'address') geopt = param_util.GetParam(location_param, 'geopt') image_url = param_util.GetString(location_param, 'image_url') url = param_util.GetString(location_param, 'url') notes = param_util.GetString(location_param, 'notes') if errors: data = {'errors': errors} else: found_location = LocationModel.get_by_id(id) if not found_location: data = {'errors': [{'message': 'id %s is not found.' % id}]} else: found_location.name = name if address: logging.error(address) found_location.address = AddressModel( street=param_util.GetString(address, 'street'), city=param_util.GetString(address, 'city'), state=param_util.GetString(address, 'state'), zip=param_util.GetString(address, 'zip')) else: found_location.address = None if geopt: if 'lat' in geopt: lat = geopt['lat'] else: lat = 0 if 'lon' in geopt: lon = geopt['lon'] else: lon = 0 found_location.geopt = ndb.GeoPt(lat=lat, lon=lon) else: found_location.geopt = None found_location.image_url = image_url found_location.url = url found_location.notes = notes found_location.put() data = {'message': 'Location updated.'} self.response.headers['Content-Type'] = 'application/json' self.response.write(json.dumps(data))
def put(self, name): data = json.loads(request.data) location = LocationModel.find_by_name(name) if location: location.update(**data) else: return {'error': 'Location not found'}, 404 location.save_to_db(commit=True) return location.json(), 201
def get(self): data = [] locations = LocationModel.query().fetch(1000) for current in locations: location = json_util.to_dict(current) data.append(location) self.response.headers['Content-Type'] = 'application/json' self.response.write(json.dumps(data))
def get(self): id = int(self.request.get('id')) if not id: data = {'errors': [{'message': 'The "id" parameter is required.'}]} else: found_location = LocationModel.get_by_id(id) if not found_location: data = {'errors': [{'message': 'id %s is not found.' % id}]} else: found_location.key.delete() data = {'message': 'Deleted successfully.'} self.response.headers['Content-Type'] = 'application/json' self.response.write(json.dumps(data))
def post(self, name=None): data = json.loads(request.data) name = data.get("name", name) if LocationModel.find_by_name(name): return { 'error': "A location with name '{}' already exists.".format(name) }, 400 location = LocationModel(**data) try: location.save_to_db() except: return {"error": "An error occurred creating the location."}, 500 return location.json(), 201
def post(self, name): if LocationModel.find_by_name(name): return { 'message': "A location with name '{}' already exists.".format(name) }, 400 data = Location.parser.parse_args() location = LocationModel( name, **data) # (name, data['name'], data['school_id']) try: location.save_to_db() except: return {'message': 'An error ocurred inserting the location'}, 500 return location.json(), 201
def get(self, name): location = LocationModel.find_by_name(name) if location: return location.childinlocation()