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']
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
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
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
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
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 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)
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)
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
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
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']
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)
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)