cartads_cs: keep access code in cache (#36559)

This commit is contained in:
Frédéric Péters 2019-09-30 17:09:56 +02:00
parent f469bc8cdc
commit 0a97c0ee1f
3 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.12 on 2019-09-30 15:10
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cartads_cs', '0009_cartadsdossier_formdata_url'),
]
operations = [
migrations.AddField(
model_name='cartadsdossier',
name='cartads_cache_code_acces',
field=models.CharField(max_length=200, null=True),
),
]

View File

@ -93,6 +93,7 @@ class CartaDSDossier(models.Model):
notification_message = models.TextField(null=True)
cartads_id_dossier = models.CharField(max_length=50, null=True)
cartads_numero_dossier = models.CharField(max_length=50, null=True)
cartads_cache_code_acces = models.CharField(max_length=200, null=True)
cartads_steps_cache = JSONField(default={})
last_update_datetime = models.DateTimeField(auto_now=True)
subscribers = models.ManyToManyField(CartaDSSubscriber, blank=True)
@ -299,9 +300,12 @@ class AbstractCartaDSCS(BaseResource):
def update_dossier_cache(self):
client = self.soap_client(wsdl_url=self.get_wsdl_url('ServiceEtapeDossier'))
client_suivi = self.soap_client(wsdl_url=self.get_wsdl_url('ServiceSuiviNumerique'))
token = self.get_token()
for dossier in CartaDSDossier.objects.filter(cartads_id_dossier__isnull=False):
dossier.cartads_steps_cache = {'steps': self.get_dossier_steps(client, token, dossier)}
dossier.cartads_cache_code_acces = client_suivi.service.GetMotPasse(
self.get_token(), dossier.cartads_id_dossier)
dossier.save()
def hourly(self):

View File

@ -175,6 +175,9 @@ class FakeService():
(u'NomDossier', 'PC 069 085 19 00010'),
(u'TypeDossier', 'Permis de construire')])
def GetMotPasse(self, token, id_dossier):
return 'D8B912CE-2A0C-4504-AE3B-74F2EF6BABA6'
def pdf_mock(url, request):
return {'content': '%PDF...', 'status_code': 200}
@ -398,6 +401,7 @@ def test_status(connector, app, cached_data):
connector.hourly()
assert CartaDSDossier.objects.get(pk=dossier.id).cartads_steps_cache
assert CartaDSDossier.objects.get(pk=dossier.id).cartads_cache_code_acces
def test_status_error(connector, app, cached_data):