def save(self, *args, **kwargs): """ Ensure we save the name and region in the standard form. """ self.name = standardize_name(self.name) self.region = self.region.upper() super(InvalidSummonerQuery, self).save(*args, **kwargs)
def create_summoner_from_match(self, region, attrs): region = region.upper() return self.create(summoner_id=attrs['summonerId'], profile_icon_id=attrs['profileIcon'], name=attrs['summonerName'], std_name=standardize_name(attrs['summonerName']), region=region.upper())
def update_from_match(self, attrs): """ Updates this summoner's fields based on what is available from a match response. """ self.profile_icon_id = attrs['profileIcon'] self.name = attrs['summonerName'] self.std_name = standardize_name(attrs['summonerName']) self.save()
def create_summoner(self, region, attrs): region = region.upper() return self.create(summoner_id=attrs['id'], name=attrs['name'], std_name=standardize_name(attrs['name']), profile_icon_id=attrs['profileIconId'], revision_date=attrs['revisionDate'], summoner_level=attrs['summonerLevel'], region=region)
def update(self, region, attrs): """ Update this summoner's fields completely, as would occur when directly querying this summoner from Riot's API. """ self.summoner_id = attrs['id'] self.name = attrs['name'] self.std_name = standardize_name(attrs['name']) self.profile_icon_id = attrs['profileIconId'] self.revision_date = attrs['revisionDate'] self.summoner_level = attrs['summonerLevel'] self.region = region.upper() # Unnecessary to touch region? self.save()
def contains(self, name, region): """ Returns True if the name-region combination matches an InvalidSummonerQuery object that hasn't expired, otherwise False. If a matching ISQ record is found, but has expired, then it is deleted. """ name = standardize_name(name) region = region.upper() query = self.filter(name=name, region=region) if query.exists(): if query.get().is_expired(): query.get().delete() return False else: return True else: return False
def get_pk_from_region_and_summoner(request): """ Returns a Summoner PK given a region and summoner name. """ query = json.loads(request.body.decode('utf-8')) print(repr(query)) if query_is_valid(query): summoner = Summoner.objects.filter(region=query['region'], std_name=standardize_name(query['name'])) if summoner.exists(): data = summoner.values('id', 'region', 'name')[0] else: data = SUMMONER_NOT_FOUND_PK return JsonResponse(data) else: return HttpResponseBadRequest('Invalid request')
def __init__(self, name=None, summoner_id=None, region=None): # These attributes are only used to get the summoner instance # and should not be referenced after __init__ completes. # TODO: change from object scope to method scope? self.std_name = standardize_name(name) if name else None self.summoner_id = summoner_id self.region = region.upper() self.summoner = None logger.info('Summoner init started, name: {}, ID: {}, region: {}'.format( self.std_name, self.summoner_id, self.region)) # TODO: Should this be caught at a lower level, and then we can # try/except here and include exc_info in log? if self.region not in REGIONS: logger.error('Invalid region: {}; must be one of {}' .format(self.region, REGIONS)) raise ValueError('Invalid region: {}; must be one of {}' .format(self.region, REGIONS)) if not (self.summoner_id or self.std_name): logger.error('Expecting summoner_id or name to be present.') raise ValueError('Expecting summoner_id or name to be present.')
def __init__(self, name=None, summoner_id=None, region=None): # These attributes are only used to get the summoner instance # and should not be referenced after __init__ completes. # TODO: change from object scope to method scope? self.std_name = standardize_name(name) if name else None self.summoner_id = summoner_id self.region = region.upper() self.summoner = None logger.info( 'Summoner init started, name: {}, ID: {}, region: {}'.format( self.std_name, self.summoner_id, self.region)) # TODO: Should this be caught at a lower level, and then we can # try/except here and include exc_info in log? if self.region not in REGIONS: logger.error('Invalid region: {}; must be one of {}'.format( self.region, REGIONS)) raise ValueError('Invalid region: {}; must be one of {}'.format( self.region, REGIONS)) if not (self.summoner_id or self.std_name): logger.error('Expecting summoner_id or name to be present.') raise ValueError('Expecting summoner_id or name to be present.')