Пример #1
0
def signup_user(user):
    user_profile = user.get_profile()
    connection = get_connection()

    params = json.dumps({
        "username": user.email,
        "password": user_profile.amazon_id,
        "passwordRaw": user_profile.amazon_id,
        "amazonID": user_profile.amazon_id,
        "name": user.username,
        "email": user.email
    })

    retry = 0
    json_data = None
    while retry < API_RETRY_COUNT:
        try:
            connection.request('GET', '/1/users', params, BASE_HEADERS)
            json_data = json.loads(connection.getresponse().read())
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise UserError(UserErrorCode.SIGNUP_USER_DEADLINE)

    return json_data['objectId']
Пример #2
0
def signup_user(user):
    user_profile = user.get_profile()
    connection = get_connection()

    params = json.dumps({
        "username": user.email,
        "password": user_profile.amazon_id,
        "passwordRaw": user_profile.amazon_id,
        "amazonID": user_profile.amazon_id,
        "name": user.username,
        "email": user.email
    })

    retry = 0
    json_data = None
    while retry < API_RETRY_COUNT:
        try:
            connection.request('GET', '/1/users', params, BASE_HEADERS)
            json_data = json.loads(connection.getresponse().read())
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise UserError(UserErrorCode.SIGNUP_USER_DEADLINE)

    return json_data['objectId']
Пример #3
0
def save_team_is_recipient(team_id):
    connection = get_connection()

    params = json.dumps({"isRegisteredRecipient": True})
    connection.request('PUT', '/1/classes/Team/%s' % team_id, params, BASE_HEADERS)
    response_status = connection.getresponse().status

    return response_status == 200
Пример #4
0
def save_team_is_recipient(team_id):
    connection = get_connection()

    params = json.dumps({"isRegisteredRecipient": True})
    connection.request("PUT", "/1/classes/Team/%s" % team_id, params, BASE_HEADERS)
    response_status = connection.getresponse().status

    return response_status == 200
Пример #5
0
def get_team(team_id):
    connection = get_connection()

    connection.request("GET", "/1/classes/Team/%s" % team_id, "", BASE_HEADERS)
    json_data = json.loads(connection.getresponse().read())

    team, _ = Team.objects.get_or_create(spudder_id=team_id)
    team.update_from_json(json_data)

    return team
Пример #6
0
def get_team(team_id):
    connection = get_connection()

    connection.request('GET', '/1/classes/Team/%s' % team_id, '', BASE_HEADERS)
    json_data = json.loads(connection.getresponse().read())

    team,_ = Team.objects.get_or_create(spudder_id=team_id)
    team.update_from_json(json_data)

    return team
Пример #7
0
def get_offer(offer_id):
    connection = get_connection()

    connection.request("GET", "/1/classes/TeamOffer/%s" % offer_id, "", BASE_HEADERS)
    json_data = json.loads(connection.getresponse().read())

    team = get_team(json_data["team"]["objectId"])
    offer, _ = TeamOffer.objects.get_or_create(spudder_id=offer_id, team=team)
    offer.update_from_json(json_data)

    return offer
Пример #8
0
def get_offer(offer_id):
    connection = get_connection()

    connection.request('GET', '/1/classes/TeamOffer/%s' % offer_id, '', BASE_HEADERS)
    json_data = json.loads(connection.getresponse().read())

    team = get_team(json_data['team']['objectId'])
    offer,_ = TeamOffer.objects.get_or_create(spudder_id=offer_id, team=team)
    offer.update_from_json(json_data)

    return offer
def decrement_team_offer_available_quantity(offer):
    connection = get_connection()
    offer_id = offer.spudder_id

    params = json.dumps({"quantityAvailable": {"__op": "Increment", "amount": -1}})
    retry = 0
    while retry < API_RETRY_COUNT:
        try:
            connection.request('PUT', '/1/classes/TeamOffer/%s' % offer_id, params, BASE_HEADERS)
            connection.getresponse()
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise SponsorshipSynchronizationError(SponsorshipSynchronizationErrorCode.TO_AVAILABLE_QUANTITY_DECREMENT_DEADLINE)
Пример #10
0
def set_user_is_sponsor(spudder_id, session_token):
    connection = get_connection()

    params = json.dumps({"isSponsor": True})
    headers = BASE_HEADERS
    headers['X-Parse-Session-Token'] = session_token

    retry = 0
    while retry < API_RETRY_COUNT:
        try:
            connection.request('PUT', '/1/users/%s' % spudder_id, params, headers)
            connection.getresponse()
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise UserError(UserErrorCode.SET_USER_IS_SPONSOR_DEADLINE)
Пример #11
0
def get_user_data(user):
    user_profile = user.get_profile()
    connection = get_connection()

    params = urllib.urlencode({"where": json.dumps({"amazonID": user_profile.amazon_id})})
    retry = 0
    results = []
    while retry < API_RETRY_COUNT:
        try:
            connection.request('GET', '/1/users?%s' % params, '', BASE_HEADERS)
            results = json.loads(connection.getresponse().read())['results']
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise UserError(UserErrorCode.GET_USER_DATA_DEADLINE)

    return results[0] if len(results) else None
Пример #12
0
def set_user_is_sponsor(spudder_id, session_token):
    connection = get_connection()

    params = json.dumps({"isSponsor": True})
    headers = BASE_HEADERS
    headers['X-Parse-Session-Token'] = session_token

    retry = 0
    while retry < API_RETRY_COUNT:
        try:
            connection.request('PUT', '/1/users/%s' % spudder_id, params,
                               headers)
            connection.getresponse()
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise UserError(UserErrorCode.SET_USER_IS_SPONSOR_DEADLINE)
Пример #13
0
def get_user_data(user):
    user_profile = user.get_profile()
    connection = get_connection()

    params = urllib.urlencode(
        {"where": json.dumps({"amazonID": user_profile.amazon_id})})
    retry = 0
    results = []
    while retry < API_RETRY_COUNT:
        try:
            connection.request('GET', '/1/users?%s' % params, '', BASE_HEADERS)
            results = json.loads(connection.getresponse().read())['results']
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise UserError(UserErrorCode.GET_USER_DATA_DEADLINE)

    return results[0] if len(results) else None
Пример #14
0
def sign_in_user(user_data):
    connection = get_connection()
    params = urllib.urlencode({
        "username": user_data['username'],
        "password": user_data['passwordRaw']
    })

    retry = 0
    json_data = None
    while retry < API_RETRY_COUNT:
        try:
            connection.request('GET', '/1/login?%s' % params, '', BASE_HEADERS)
            json_data = json.loads(connection.getresponse().read())
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise UserError(UserErrorCode.SIGN_IN_USER_DEADLINE)

    return json_data['sessionToken']
Пример #15
0
def sign_in_user(user_data):
    connection = get_connection()
    params = urllib.urlencode({
        "username": user_data['username'],
        "password": user_data['passwordRaw']
    })

    retry = 0
    json_data = None
    while retry < API_RETRY_COUNT:
        try:
            connection.request('GET', '/1/login?%s' % params, '', BASE_HEADERS)
            json_data = json.loads(connection.getresponse().read())
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise UserError(UserErrorCode.SIGN_IN_USER_DEADLINE)

    return json_data['sessionToken']
Пример #16
0
def create_or_update_team_sponsors(team, sponsor):
    connection = get_connection()
    sponsor_spudder_id = sponsor.get_profile().spudder_id
    team_pointer = {"__type": "Pointer", "className": "Team", "objectId": team.spudder_id}

    params = urllib.urlencode({"where": json.dumps({
        "team": team_pointer
    })})

    retry = 0
    query_json_data = None
    while retry < API_RETRY_COUNT:
        try:
            connection.request('GET', '/1/classes/TeamSponsors?%s' % params, '', BASE_HEADERS)
            query_response = connection.getresponse()
            query_json_data = json.loads(query_response.read())
            retry = API_RETRY_COUNT
        except Exception, e:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise SponsorshipSynchronizationError(SponsorshipSynchronizationErrorCode.TS_QUERY_DEADLINE)
Пример #17
0
def create_or_update_sponsored_teams(sponsor, team):
    connection = get_connection()
    sponsor_spudder_id = sponsor.get_profile().spudder_id
    sponsor_pointer = {"__type": "Pointer", "className": "_User", "objectId": sponsor_spudder_id}

    params = urllib.urlencode({"where": json.dumps({
        "sponsor": sponsor_pointer
    })})

    retry = 0
    query_json_data = None
    entity_spudder_id = None

    while retry < API_RETRY_COUNT:
        try:
            connection.request('GET', '/1/classes/SponsoredTeams?%s' % params, '', BASE_HEADERS)
            query_response = connection.getresponse()
            query_json_data = json.loads(query_response.read())
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise SponsorshipSynchronizationError(SponsorshipSynchronizationErrorCode.ST_QUERY_DEADLINE)

    if len(query_json_data['results']) < 1:
        params = json.dumps({
            "sponsor": sponsor_pointer,
            "teams": {
                "__type": "Relation",
                "className": "Team"
            }
        })

        retry = 0
        while retry < API_RETRY_COUNT:
            try:
                connection.request('POST', '/1/classes/SponsoredTeams', params, BASE_HEADERS)
                creation_response = connection.getresponse()
                entity_spudder_id = json.loads(creation_response.read())['objectId']
                retry = API_RETRY_COUNT
            except Exception:
                if retry == API_RETRY_COUNT:
                    raise SponsorshipSynchronizationError(SponsorshipSynchronizationErrorCode.ST_CREATION_DEADLINE)
    else:
        entity_spudder_id = query_json_data['results'][0]['objectId']

    params = json.dumps({
        "teams": {
            "__op": "AddRelation",
            "objects": [
                {
                    "__type": "Pointer",
                    "className": "Team",
                    "objectId": team.spudder_id
                }
            ]
        }
    })

    retry = 0
    while retry < API_RETRY_COUNT:
        try:
            connection.request('PUT', '/1/classes/SponsoredTeams/%s' % entity_spudder_id, params, BASE_HEADERS)
            connection.getresponse()
            retry = API_RETRY_COUNT
        except Exception:
            retry += 1
            if retry == API_RETRY_COUNT:
                raise SponsorshipSynchronizationError(SponsorshipSynchronizationErrorCode.ST_RELATION_ADD_DEADLINE)