Exemple #1
0
    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
Exemple #2
0
    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