Example #1
0
    def validated_data(self):
        validated_data = {
            'descriptors': set(),
            'interactives': set(),
            'ratings': {},
        }
        rating_list = self.data.get('RatingList')
        if not rating_list:
            return None

        for raw_info in rating_list:
            body = BODIES.get(raw_info['RatingAuthorityShortText'].lower())
            if not body:
                # Ignore unknown rating bodies.
                continue
            validated_data['ratings'][body] = RATINGS[body.id].get(
                raw_info['AgeRatingText'], RATINGS[body.id]['default'])

            for raw_descriptor in raw_info['DescriptorList']:
                descriptor = DESCS_V2[body.id].get(
                    raw_descriptor['DescriptorText'])
                if descriptor:
                    validated_data['descriptors'].add(descriptor)

            for raw_interactive in raw_info['InteractiveElementList']:
                interactive = INTERACTIVES_V2.get(
                    raw_interactive['InteractiveElementText'])
                if interactive:
                    validated_data['interactives'].add(interactive)

        return validated_data
Example #2
0
    def validated_data(self):
        validated_data = {
            'descriptors': set(),
            'interactives': set(),
            'ratings': {},

        }
        rating_list = self.data.get('RatingList')
        if not rating_list:
            return None

        for raw_info in rating_list:
            body = BODIES.get(raw_info['RatingAuthorityShortText'].lower())
            if not body:
                # Ignore unknown rating bodies.
                continue
            validated_data['ratings'][body] = RATINGS[body.id].get(
                raw_info['AgeRatingText'], RATINGS[body.id]['default'])

            for raw_descriptor in raw_info['DescriptorList']:
                descriptor = DESCS_V2[body.id].get(raw_descriptor[
                    'DescriptorText'])
                if descriptor:
                    validated_data['descriptors'].add(descriptor)

            for raw_interactive in raw_info['InteractiveElementList']:
                interactive = INTERACTIVES_V2.get(raw_interactive[
                    'InteractiveElementText'])
                if interactive:
                    validated_data['interactives'].add(interactive)

        return validated_data
Example #3
0
    def validated_data(self):
        validated_data = {
            'cert_id': None,
            'descriptors': set(),
            'interactives': set(),
            'ratings': {},

        }
        rating_list = self.data.get('RatingList')
        if not rating_list:
            self.errors['RatingList'] = 'This field is required.'
            return None

        cert_id = self.data.get('CertID')
        if not cert_id:
            self.errors['CertID'] = 'This field is required.'
            return None

        try:
            validated_data['cert_id'] = UUID(cert_id)
        except ValueError as e:
            self.errors['CertID'] = e.message
            return None

        # FIXME: if we have AlreadyExists info, and the Cert does not match,
        # what shall we do ?

        for raw_info in rating_list:
            body = BODIES.get(raw_info['RatingAuthorityShortText'].lower())
            if not body:
                # Ignore unknown rating bodies.
                continue
            validated_data['ratings'][body] = RATINGS[body.id].get(
                raw_info['AgeRatingText'], RATINGS[body.id]['default'])

            for raw_descriptor in raw_info['DescriptorList']:
                descriptor = DESCS_V2[body.id].get(raw_descriptor[
                    'DescriptorText'])
                if descriptor:
                    validated_data['descriptors'].add(descriptor)

            for raw_interactive in raw_info['InteractiveElementList']:
                interactive = INTERACTIVES_V2.get(raw_interactive[
                    'InteractiveElementText'])
                if interactive:
                    validated_data['interactives'].add(interactive)

        return validated_data
Example #4
0
    def validated_data(self):
        validated_data = {
            'cert_id': None,
            'descriptors': set(),
            'interactives': set(),
            'ratings': {},
        }
        rating_list = self.data.get('RatingList')
        if not rating_list:
            self.errors['RatingList'] = 'This field is required.'
            return None

        cert_id = self.data.get('CertID')
        if not cert_id:
            self.errors['CertID'] = 'This field is required.'
            return None

        try:
            validated_data['cert_id'] = UUID(cert_id)
        except ValueError as e:
            self.errors['CertID'] = e.message
            return None

        # FIXME: if we have AlreadyExists info, and the Cert does not match,
        # what shall we do ?

        for raw_info in rating_list:
            body = BODIES.get(raw_info['RatingAuthorityShortText'].lower())
            if not body:
                # Ignore unknown rating bodies.
                continue
            validated_data['ratings'][body] = RATINGS[body.id].get(
                raw_info['AgeRatingText'], RATINGS[body.id]['default'])

            for raw_descriptor in raw_info['DescriptorList']:
                descriptor = DESCS_V2[body.id].get(
                    raw_descriptor['DescriptorText'])
                if descriptor:
                    validated_data['descriptors'].add(descriptor)

            for raw_interactive in raw_info['InteractiveElementList']:
                interactive = INTERACTIVES_V2.get(
                    raw_interactive['InteractiveElementText'])
                if interactive:
                    validated_data['interactives'].add(interactive)

        return validated_data