def put(self,uid,pid):
        user = UsersModel.fetch_by_id(uid)
        record = user.projects
        for each in record:
            if each.id == pid:
                body = projectUpdateParser.parse_args()
                title = body['title'] if body['title'] else None
                description = body['description'] if body['description'] else None
                status = int(body['status']) if body['status'] else None
                startDate = None
                endDate = None
                if status == 1:
                    startDate = datetime.now()
                elif status == 2:
                    endDate = datetime.now()
                updated = ProjectsModel.update_by_id(id=pid, newTitle=title, newDescription=description,
                                                     newStartDate=startDate, newEndDate=endDate,
                                                     newStatus=status)

                if updated:
                    record = ProjectsModel.fetch_by_id(pid)
                    return record,200
                else:
                    return {},400

        return {},404
 def get(self,uid):
     user = UsersModel.fetch_by_id(uid)
     try:
         record = user.projects
         if record:
             return marshal(record,project), 200
         return {}, 404
     except:
         return {"Message":"User does not exist"},404
 def delete(self,uid,pid):
     user = UsersModel.fetch_by_id(uid)
     record = user.projects
     for each in record:
         if each.id == pid:
             deleted = ProjectsModel.delete_by_id(pid)
             if deleted:
                 return {"Message": "Task deleted Successfully"}, 204
             return {"Message":"something went wrong"},500
     return {"Message":"Record not found"},404
 def get(self,uid,pid):
     user = UsersModel.fetch_by_id(uid)
     try:
         record = user.projects
         for each in record:
             if each.id == pid:
                 return marshal(each, project), 200
         return {}, 404
     except:
         return {"Message":"User not found"},500
 def put(self,uid):
     args = userParser.parse_args()
     username = args['username'].lower()
     if UsersModel.fetch_by_username(username):
         return {"message":"Username {} already exists".format(username)},409
     updated = UsersModel.update_by_id(id=uid, newUsername=username)
     if updated:
         record = UsersModel.fetch_by_id(uid)
         return marshal(record,userStructure),200
     else:
         return {"Message":"Record not updated"},500
 def post(self,uid):
     args = projectParser.parse_args()
     dateformat = '%Y-%m-%d'
     title = args['title']
     description = args['description']
     status = 0
     userId = uid
     if UsersModel.fetch_by_id(uid) == None:
         return {"message":"User not found"},404
     if ProjectsModel.fetch_by_title(title):
         return 'project "{}" already exist'.format(title),409
     project = ProjectsModel(title=title, description=description,status=status,userId=userId)
     record = project.create_record()
     print(record)
     return record, 201
 def get(self,uid):
     record = UsersModel.fetch_by_id(uid)
     if record:
         return marshal(record,userStructure),200
     else:
         return {"message":"Not found"},404