mdph13: move transaction.atomic() inside create_or_update() (#31401)

This commit is contained in:
Benjamin Dauvergne 2019-03-13 23:10:29 +01:00
parent 48832b135a
commit a5efb5da16
1 changed files with 19 additions and 20 deletions

View File

@ -210,15 +210,14 @@ class MDPH13Resource(BaseResource, HTTPResource):
email = email.strip()
if not self.EMAIL_RE.match(email):
raise APIError('email is not valid', http_status=400)
with transaction.atomic():
link, created, updated = Link.create_or_update(
resource=self,
NameID=NameID,
file_number=file_number,
secret=secret,
dob=dob,
email=email,
ip=ip)
link, created, updated = Link.create_or_update(
resource=self,
NameID=NameID,
file_number=file_number,
secret=secret,
dob=dob,
email=email,
ip=ip)
return {'link_id': link.pk, 'created': created, 'updated': updated}
@endpoint(name='unlink',
@ -355,18 +354,18 @@ class Link(models.Model):
ip=ip)
display_name = self._make_display_name(mdph_file)
link, created = Link.objects.get_or_create(
resource=resource,
name_id=NameID,
file_number=file_number,
defaults={
'secret': secret,
'dob': dob,
'display_name': display_name,
})
with transaction.atomic():
link, created = Link.objects.get_or_create(
resource=resource,
name_id=NameID,
file_number=file_number,
defaults={
'secret': secret,
'dob': dob,
'display_name': display_name,
})
updated = False
if not created:
updated = False
if link.secret != secret or link.dob != dob or link.display_name != display_name:
link.secret = secret
link.dob = dob