def create(self, validated_data): try: instance, created = BadgeCheckHelper.get_or_create_assertion( **validated_data) except DjangoValidationError as e: raise RestframeworkValidationError(e.messages) return instance
def create(self, validated_data): try: instance, created = BadgeCheckHelper.get_or_create_assertion(**validated_data) if not created: instance.acceptance = BadgeInstance.ACCEPTANCE_ACCEPTED instance.save() except DjangoValidationError as e: raise RestframeworkValidationError(e.messages) return instance
def create(self, validated_data): try: instance, created = BadgeCheckHelper.get_or_create_assertion(**validated_data) if not created: instance.acceptance = BadgeInstance.ACCEPTANCE_ACCEPTED instance.save() raise RestframeworkValidationError([{'name': "DUPLICATE_BADGE", 'description': "You already have this badge in your backpack"}]) except DjangoValidationError as e: raise RestframeworkValidationError(e.messages) return instance
def create(self, validated_data): url = validated_data['assertion']['id'] try: instance, created = BadgeCheckHelper.get_or_create_assertion(url=url, created_by=self.context['request'].user) if not created: instance.acceptance = BadgeInstance.ACCEPTANCE_ACCEPTED instance.save() raise RestframeworkValidationError([{'name': "DUPLICATE_BADGE", 'description': "You already have this badge in your backpack"}]) except DjangoValidationError as e: raise RestframeworkValidationError(e.messages) return instance
def create(self, validated_data): try: validated_data['imagefile'] = validated_data.pop('image', None) instance, created = BadgeCheckHelper.get_or_create_assertion(**validated_data) if not created: instance.acceptance = BadgeInstance.ACCEPTANCE_ACCEPTED instance.save() raise RestframeworkValidationError([{'name': "DUPLICATE_BADGE", 'description': "You already have this badge in your backpack"}]) except DjangoValidationError as e: raise RestframeworkValidationError(e.messages) return instance
def create(self, validated_data): owner = validated_data.get('created_by') try: instance, created = BadgeCheckHelper.get_or_create_assertion( url=validated_data.get('url', None), imagefile=validated_data.get('image', None), assertion=validated_data.get('assertion', None), created_by=owner, ) owner.publish() # update BadgeUser.cached_badgeinstances() except DjangoValidationError as e: raise RestframeworkValidationError(e.args[0]) return instance
def create(self, validated_data): owner = validated_data.get('created_by') try: instance, created = BadgeCheckHelper.get_or_create_assertion( url=validated_data.get('url', None), imagefile=validated_data.get('image', None), assertion=validated_data.get('assertion', None), created_by=owner, ) if not created: instance.acceptance = BadgeInstance.ACCEPTANCE_ACCEPTED instance.save() raise RestframeworkValidationError([{'name': "DUPLICATE_BADGE", 'description': "You already have this badge in your backpack"}]) owner.publish() # update BadgeUser.cached_badgeinstances() except DjangoValidationError as e: raise RestframeworkValidationError(e.args[0]) return instance
def create(self, validated_data): owner = validated_data.get('created_by') try: instance, created = BadgeCheckHelper.get_or_create_assertion( url=validated_data.get('url', None), imagefile=validated_data.get('image', None), assertion=validated_data.get('assertion', None), created_by=owner, ) if not created: if instance.acceptance == BadgeInstance.ACCEPTANCE_ACCEPTED: raise RestframeworkValidationError([{'name': "DUPLICATE_BADGE", 'description': "You already have this badge in your backpack"}]) instance.acceptance = BadgeInstance.ACCEPTANCE_ACCEPTED instance.save() owner.publish() # update BadgeUser.cached_badgeinstances() except DjangoValidationError as e: raise RestframeworkValidationError(e.args[0]) return instance
def update_issuedon_imported_assertion(self, assertion_entityid): try: assertion = BadgeInstance.objects.get(entity_id=assertion_entityid) except BadgeInstance.DoesNotExist: return { 'success': False, 'assertion': assertion_entityid, 'message': "No such assertion." } if not assertion.source_url: return { 'success': False, 'assertion': assertion_entityid, 'message': "Not an imported assertion." } assertion_obo = BadgeCheckHelper.get_assertion_obo(assertion) if not assertion_obo: return { 'success': False, 'assertion': assertion_entityid, 'message': "Unable to fetch assertion with source_url={}".format( assertion.source_url) } original_issuedOn_date = dateutil.parser.parse(assertion_obo['issuedOn']) updated = False if original_issuedOn_date != assertion.issued_on: assertion.issued_on = original_issuedOn_date assertion.save() updated = True return { 'success': True, 'assertion': assertion.entity_id, 'source_url': assertion.source_url, 'updated': updated }
def update_issuedon_imported_assertion(self, assertion_entityid): try: assertion = BadgeInstance.objects.get(entity_id=assertion_entityid) except BadgeInstance.DoesNotExist: return { 'success': False, 'assertion': assertion_entityid, 'message': "No such assertion." } if not assertion.source_url: return { 'success': False, 'assertion': assertion_entityid, 'message': "Not an imported assertion." } assertion_obo = BadgeCheckHelper.get_assertion_obo(assertion) if not assertion_obo: return { 'success': False, 'assertion': assertion_entityid, 'message': "Unable to fetch assertion with source_url={}".format(assertion.source_url) } original_issuedOn_date = dateutil.parser.parse(assertion_obo['issuedOn']) updated = False if original_issuedOn_date != assertion.issued_on: assertion.issued_on = original_issuedOn_date assertion.save() updated = True return { 'success': True, 'assertion': assertion.entity_id, 'source_url': assertion.source_url, 'updated': updated }