Esempio n. 1
0
def createProposal(email):
    rdata = request.data
    rawdata = json.loads(rdata)
    jsonData = rawdata["ProposalDetails"]
    session = get_db()
    try:
        for item in jsonData:
            request_id = item.get("requestId")
    except Exception as err:
        print err.message
        return returnStatus(
            "Mandatory field - requestId missing or Incorrect datatype passed")
    userProposedFrom = extractUserName(extractUserId(email))
    try:
        proposal = session.query(proposalData).filter_by(
            request_id=request_id, user_proposed_from=userProposedFrom).one()
        print proposal.request_id
        return returnStatus("Proposal already exist!!")
    except Exception as err:
        userProposedTo = extractUserName(extractUser(request_id))
        if (extractUserId(email) == int(extractUser(request_id))):
            return returnStatus("Cannot propose to yourself!!")
        newProposal = proposalData(request_id=request_id,
                                   user_proposed_from=userProposedFrom,
                                   user_proposed_to=userProposedTo)
        try:
            session.add(newProposal)
            session.commit()
            return returnStatus("Proposal created!!")
        except ValueError as err:
            session.rollback()
            print err.message
            return returnStatus("Malformed Input!!")
        except exc.IntegrityError as err:
            print err.message
            session.rollback()
            return returnStatus("Missing required field")
        except Exception as err:
            session.rollback()
            print err.message
            return returnStatus("Something went wrong, we also dont know!!")
Esempio n. 2
0
def deleteRequest(id, emailId):
    userId = extractUserId(emailId)
    session = get_db()
    try:
        requests = session.query(requestData).filter_by(id=id).one()
        if not (isUserAuthorized(requests.user_id, userId)):
            return returnStatus("Not authorized to perform this operation!!")
    except Exception:
        session.rollback()
        return returnStatus("No such request exist!!")
    session.delete(requests)
    return returnStatus("Request deleted!!")
Esempio n. 3
0
def getProposals(email):
    userProposedFrom = extractUserName(extractUserId(email))
    session = get_db()
    try:
        proposal = session.query(proposalData)\
            .filter((proposalData.user_proposed_from == userProposedFrom)
                    | (proposalData.user_proposed_to == userProposedFrom))
        if proposal.count() == 0:
            return returnStatus("No matching proposals found for you!!")
    except Exception as err:
        session.rollback()
        print err.message
        return returnStatus("Something went wrong, we also dont know!!")
    return jsonify(ProposalDetails=[i.serialize for i in proposal])
Esempio n. 4
0
def prepareRequest(emailId):
    rdata = request.data
    rawdata = json.loads(rdata)
    jsonData = rawdata["RequestDetails"]
    try:
        for item in jsonData:
            mealType = item.get("mealType")
            mealTime = item.get("mealTime")
            location = item.get("location")

            userId = extractUserId(emailId)
            latitude = None
            longitude = None
            if location is not None:
                latitude, longitude = getGeocodeLocation(location)
            return mealTime, mealType, longitude, latitude, location, userId
    except TypeError as err:
        return returnStatus("Mandatory fields missing or Incorrect datatype passed " \
               "All fields - MealType, MealTime, Location and EmailId must be String")
Esempio n. 5
0
def getProposal(id, email):
    session = get_db()
    userProposedFrom = extractUserName(extractUserId(email))
    try:
        proposal = session.query(proposalData).filter_by(id=id)
        if proposal.count() == 0:
            msg = "Prosposal with id: " + str(id) + " not found"
            return returnStatus(msg)
        proposal = session.query(proposalData)\
            .filter_by(id = id)\
            .filter((proposalData.user_proposed_from == userProposedFrom)
                    | (proposalData.user_proposed_to == userProposedFrom))
        if proposal.count() == 0:
            return returnStatus(
                "Sorry you are not authorised to view the proposal!!")
    except Exception as err:
        session.rollback()
        print err.message
        return returnStatus("Something went wrong, we also dont know!!")
    return jsonify(ProposalDetails=[i.serialize for i in proposal])
Esempio n. 6
0
def deleteProposal(id, email):
    userProposedFrom = extractUserName(extractUserId(email))
    session = get_db()
    try:
        proposal = session.query(proposalData).filter_by(id=id)
        if proposal.count() == 0:
            msg = "Prosposal with id: " + str(id) + " not found"
            return returnStatus(msg)
        proposal = session.query(proposalData) \
            .filter_by(id=id) \
            .filter_by(user_proposed_from=userProposedFrom)
        if proposal.count() == 0:
            return returnStatus(
                "Sorry you are not authorised to delete the proposal!!")
        session.delete(proposal.one())
        session.commit()
    except Exception as err:
        session.rollback()
        print err.message
        return returnStatus("Something went wrong, we also dont know!!")
    return returnStatus("Proposal deleted successfully!!")
Esempio n. 7
0
def modifyProposal(id, email):
    userProposedTo = extractUserName(extractUserId(email))
    session = get_db()
    try:
        proposal = session.query(proposalData).filter_by(id=id)
        if proposal.count() == 0:
            msg = "Prosposal with id: " + str(id) + " not found"
            return returnStatus(msg)
        proposal = session.query(proposalData) \
            .filter_by(id=id) \
            .filter_by(user_proposed_to=userProposedTo)
        if proposal.count() == 0:
            return returnStatus(
                "Sorry you are not authorised to modify the proposal!!")
        proposal.one().filled = True
        session.commit()
    except Exception as err:
        session.rollback()
        print err.message
        return returnStatus("Something went wrong, we also dont know!!")
    acceptRequest(proposal.one().request_id)
    return returnStatus("Proposal accepted successfully!!")