示例#1
0
    def delete(self):
        parser = reqparse.RequestParser()
        parser.add_argument('id', type=str)
        parser.add_argument('auth', type=str)
        parser.add_argument('job_id', type=str)

        try:
            args = parser.parse_args()
            print("id:", args["id"])
            print("auth:", args["auth"])
            if not verify_auth(args["auth"], args["id"]):
                return {
                    "msg": "Bad ID/Auth combination",
                    "success": False
                }, 400
            job = Job.query.get(args["job_id"])
            if not job or not job.owner_id == args["id"]:
                return {
                    "msg": "User does not own a job of that id",
                    "success": False
                }, 404
            job.canceled = True
            db.session.commit()
            return {"success": True}, 201
        except Exception as e:
            print(e)
            print("Bad Job Parameters")
            return {"msg": "Bad job parameters.", "success": False}, 400
示例#2
0
    def delete(self):
        parser = reqparse.RequestParser()
        parser.add_argument('id', type=str)
        parser.add_argument('auth', type=str)
        parser.add_argument('job_id', type=str)

        try:
            args = parser.parse_args()
            print("id:", args["id"])
            print("auth:", args["auth"])
            if not verify_auth(args["auth"], args["id"]):
                return {
                    "msg": "Bad ID/Auth combination",
                    "success": False
                }, 400
            job = Job.query.get(args["job_id"])
            if not job or not job.accepted:
                return {"msg": "Invalid job to accept", "success": False}, 404
            user = Account.query.get(args["id"])
            if not user:
                return {"msg": "Bad sitter", "success": False}, 400
            job.accepted = False
            job.sitter = None
            db.session.commit()
            return {"success": True}, 201
        except Exception as e:
            print(e)
            print("Bad Job Parameters")
            return {"msg": "Bad job parameters.", "success": False}, 400
示例#3
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('id', type=str)
        parser.add_argument('auth', type=str)
        parser.add_argument('lat', type=float)
        parser.add_argument('lon', type=float)

        args = parser.parse_args()
        if verify_auth(args['auth'], args['id']):
            job_array = Job.query.all()
            job_dict = {}
            for job in job_array:
                owner = owner = job.owner
                owner_name = owner.first_name
                if not (job.accepted or job.canceled):
                    if type(job.lat) is float and type(job.long) is float:
                        if calc_lat_long_distance(
                                job.lat, job.long, args["lat"],
                                args["lon"]) <= self.MAX_DISTANCE:
                            job_dict[job.id] = {
                                "location": job.location,
                                "start_datetime": job.start_datetime,
                                "end_datetime": job.end_datetime,
                                "owner_name": owner_name
                            }
            job_dict["success"] = True
            print("job_dict:", job_dict)
            return job_dict, 200
        return {"success": False}, 404
示例#4
0
 def get(self):
     parser = reqparse.RequestParser()
     parser.add_argument('id', type=str)
     parser.add_argument('auth', type=str)
     parser.add_argument('is_canceled', type=inputs.boolean)
     args = parser.parse_args()
     if verify_auth(args['auth'], args['id']):
         acc = Account.query.get(str(args["id"]))
         if not acc:
             return {"msg": "No Account."}, 400
         job_array = acc.sitter_jobs
         job_dict = {}
         for job in job_array:
             owner = job.owner
             owner_name = owner.first_name
             if job.canceled == args["is_canceled"]:
                 job_dict[job.id] = {
                     "owner_name": owner_name,
                     "start_datetime": job.start_datetime,
                     "end_datetime": job.end_datetime
                 }
         job_dict["success"] = True
         print("job_dict:", job_dict)
         return job_dict, 200
     return {"success": False}, 404
示例#5
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument('id', type=str)
        parser.add_argument('auth', type=str)
        parser.add_argument('location', type=str)
        parser.add_argument('lat', type=float)
        parser.add_argument('long', type=float)
        parser.add_argument('is_at_owner', type=inputs.boolean)
        parser.add_argument('start_datetime', type=str)
        parser.add_argument('end_datetime', type=str)
        parser.add_argument('details', type=str)

        try:
            args = parser.parse_args()
            print("id:", args["id"])
            print("auth:", args["auth"])
            if not verify_auth(args["auth"], args["id"]):
                return {
                    "msg": "Bad ID/Auth combination",
                    "success": False
                }, 400
            job_id = str(uuid.uuid4())

            owner_acc = Account.query.get(str(args["id"]))
            if not owner_acc:
                return {"msg": "No Account.", "success": False}, 400
            job = Job(id=job_id,
                      location=args["location"],
                      lat=args["lat"],
                      long=args["long"],
                      is_at_owner=args["is_at_owner"],
                      start_datetime=args["start_datetime"],
                      end_datetime=args["end_datetime"],
                      owner=owner_acc,
                      accepted=False,
                      canceled=False,
                      details=args["details"])
            db.session.add(job)
            db.session.commit()
            return {"job_id": str(job_id), "success": True}, 201
        except Exception as e:
            print(e)
            print("Bad Job Parameters")
            return {"msg": "Bad job parameters.", "success": False}, 400
示例#6
0
    def put(self):
        parser = reqparse.RequestParser()
        parser.add_argument('id', type=str)
        parser.add_argument('auth', type=str)
        parser.add_argument('location', type=str)
        parser.add_argument('lat', type=float)
        parser.add_argument('long', type=float)
        parser.add_argument('is_at_owner', type=inputs.boolean)
        parser.add_argument('start_datetime', type=str)
        parser.add_argument('end_datetime', type=str)
        parser.add_argument('details', type=str)
        parser.add_argument('job_id', type=str)

        try:
            args = parser.parse_args()
            print("id:", args["id"])
            print("auth:", args["auth"])
            if not verify_auth(args["auth"], args["id"]):
                return {
                    "msg": "Bad ID/Auth combination",
                    "success": False
                }, 400
            job = Job.query.get(args["job_id"])
            if not job or not job.owner_id == args["id"]:
                return {
                    "msg": "User does not own a job of that id",
                    "success": False
                }, 404
            job.location = args["location"]
            job.lat = args["lat"]
            job.long = args["long"]
            job.is_at_owner = args["is_at_owner"]
            job.start_datetime = args["start_datetime"]
            job.end_datetime = args["end_datetime"]
            job.details = args["details"]

            db.session.commit()
            return {"success": True}, 201
        except Exception as e:
            print(e)
            print("Bad Job Parameters")
            return {"msg": "Bad job parameters.", "success": False}, 400
示例#7
0
 def get(self):
     parser = reqparse.RequestParser()
     parser.add_argument('id', type=str)
     parser.add_argument('auth', type=str)
     args = parser.parse_args()
     if verify_auth(args['auth'], args['id']):
         job_array = Job.query.all()
         job_dict = {}
         for job in job_array:
             owner = job.owner
             owner_name = owner.first_name
             if not (job.accepted or job.canceled):
                 job_dict[job.id] = {
                     "location": job.location,
                     "owner_name": owner_name,
                     "start_datetime": job.start_datetime,
                     "end_datetime": job.end_datetime
                 }
         job_dict["success"] = True
         print("job_dict:", job_dict)
         return job_dict, 200
     return {"success": False}, 404
示例#8
0
 def get(self):
     parser = reqparse.RequestParser()
     parser.add_argument('id', type=str)
     parser.add_argument('auth', type=str)
     parser.add_argument('job_id', type=str)
     args = parser.parse_args()
     if verify_auth('auth', 'id'):
         job = Job.query.get(args["job_id"])
         if job:
             print("job exists")
             ##if job.owner_id == args["id"] or job.sitter_id == args["id"]:
             jobinfo = {
                 "location": job.location,
                 "lat": job.lat,
                 "long": job.long,
                 "is_at_owner": job.is_at_owner,
                 "start_datetime": job.start_datetime,
                 "end_datetime": job.end_datetime,
                 "accepted": job.accepted,
                 "canceled": job.canceled,
                 "details": job.details,
                 "success": True
             }
             print(jobinfo)
             print("getting owner name")
             jobinfo['owner_name'] = str(job.owner.first_name)
             jobinfo['owner_id'] = job.owner_id
             jobinfo['owner_number'] = job.owner.phone_number
             if job.accepted:
                 sitter_acc = job.sitter
                 jobinfo['sitter_name'] = sitter_acc.first_name
                 jobinfo['sitter_number'] = sitter_acc.phone_number
             else:
                 jobinfo['sitter_name'] = "No Sitter"
                 jobinfo['sitter_number'] = "No sitter"
             print("returning")
             return jobinfo, 200
     return {"msg": "Bad Job ID", "success": False}, 400