def post(self, username): target = User.find(username) # Currently only authorised to update your own location if request.user != target: raise UnauthorisedError() parser = reqparse.RequestParser() parser.add_argument('lat', required=True, type=float, help='lat required') parser.add_argument('lon', required=True, type=float, help='lon required') args = parser.parse_args() # Comparision with 0.5 due to floating point error. if args['lat'] < 0.5 and args['lon'] < 0.5: db.session.delete(target.location) db.session.commit() else: location = target.location if location == None: location = Location() location.lat = args.lat location.lon = args.lon location.user_id = target.id location.updated = datetime.utcnow() db.session.add(location) db.session.commit() return {},200
def create(self, create_park_request: CreateParkRequest): park = Park() user, error = self.user_repo.get_by_id(create_park_request.user_id) if user is not None and error is None: park.user = user else: return None, error location = Location() location.lat = create_park_request.location.lat location.lng = create_park_request.location.lng park.name = create_park_request.name park.description = create_park_request.description park.image_id = create_park_request.image_id park.location = location park.created_at = time.time_ns() park, error = self.park_repo.create(park) if park is not None and error is None: return self.park_schema.dump(park).data, None else: return None, error