From 859ff16e3e5189429f1ea8bae22714b8c8cd223b Mon Sep 17 00:00:00 2001 From: Thomas Dijoux Date: Wed, 23 Oct 2019 09:27:56 +0200 Subject: [PATCH] formation --- passerelle_reunion_unicite.egg-info/PKG-INFO | 10 +++++ .../SOURCES.txt | 7 +++ .../dependency_links.txt | 1 + .../top_level.txt | 1 + .../migrations/0002_auto_20191016_1317.py | 45 +++++++++++++++++++ .../migrations/0003_auto_20191016_1318.py | 20 +++++++++ passerelle_reunion_unicite/models.py | 45 +++++++++++++++++-- 7 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 passerelle_reunion_unicite.egg-info/PKG-INFO create mode 100644 passerelle_reunion_unicite.egg-info/SOURCES.txt create mode 100644 passerelle_reunion_unicite.egg-info/dependency_links.txt create mode 100644 passerelle_reunion_unicite.egg-info/top_level.txt create mode 100644 passerelle_reunion_unicite/migrations/0002_auto_20191016_1317.py create mode 100644 passerelle_reunion_unicite/migrations/0003_auto_20191016_1318.py diff --git a/passerelle_reunion_unicite.egg-info/PKG-INFO b/passerelle_reunion_unicite.egg-info/PKG-INFO new file mode 100644 index 0000000..1fabd0b --- /dev/null +++ b/passerelle_reunion_unicite.egg-info/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 1.0 +Name: passerelle-reunion-unicite +Version: 0 +Summary: UNKNOWN +Home-page: UNKNOWN +Author: CR Reunion +Author-email: nicolas.clain@cr-reunion.fr +License: UNKNOWN +Description: UNKNOWN +Platform: UNKNOWN diff --git a/passerelle_reunion_unicite.egg-info/SOURCES.txt b/passerelle_reunion_unicite.egg-info/SOURCES.txt new file mode 100644 index 0000000..dea864e --- /dev/null +++ b/passerelle_reunion_unicite.egg-info/SOURCES.txt @@ -0,0 +1,7 @@ +setup.py +passerelle-reunion-unicite/__init__.py +passerelle-reunion-unicite/models.py +passerelle_reunion_unicite.egg-info/PKG-INFO +passerelle_reunion_unicite.egg-info/SOURCES.txt +passerelle_reunion_unicite.egg-info/dependency_links.txt +passerelle_reunion_unicite.egg-info/top_level.txt \ No newline at end of file diff --git a/passerelle_reunion_unicite.egg-info/dependency_links.txt b/passerelle_reunion_unicite.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/passerelle_reunion_unicite.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/passerelle_reunion_unicite.egg-info/top_level.txt b/passerelle_reunion_unicite.egg-info/top_level.txt new file mode 100644 index 0000000..9cf10b4 --- /dev/null +++ b/passerelle_reunion_unicite.egg-info/top_level.txt @@ -0,0 +1 @@ +passerelle-reunion-unicite diff --git a/passerelle_reunion_unicite/migrations/0002_auto_20191016_1317.py b/passerelle_reunion_unicite/migrations/0002_auto_20191016_1317.py new file mode 100644 index 0000000..9067b61 --- /dev/null +++ b/passerelle_reunion_unicite/migrations/0002_auto_20191016_1317.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-10-16 11:17 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('passerelle_reunion_unicite', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='unicityreunionconnector', + name='db_host', + field=models.CharField(blank=True, max_length=128, verbose_name='Hostname/ip de la base de donn\xe9es'), + ), + migrations.AddField( + model_name='unicityreunionconnector', + name='db_name', + field=models.CharField(blank=True, max_length=128, verbose_name='Nom de la base'), + ), + migrations.AddField( + model_name='unicityreunionconnector', + name='db_pass', + field=models.CharField(blank=True, max_length=128, verbose_name='Mot de passe'), + ), + migrations.AddField( + model_name='unicityreunionconnector', + name='db_port', + field=models.IntegerField(default=5432, verbose_name='Port'), + ), + migrations.AddField( + model_name='unicityreunionconnector', + name='db_user', + field=models.CharField(blank=True, max_length=128, verbose_name='Utilisateur'), + ), + migrations.AddField( + model_name='unicityreunionconnector', + name='form_id', + field=models.IntegerField(default=-1, verbose_name='Id du formulaire'), + ), + ] diff --git a/passerelle_reunion_unicite/migrations/0003_auto_20191016_1318.py b/passerelle_reunion_unicite/migrations/0003_auto_20191016_1318.py new file mode 100644 index 0000000..35a109c --- /dev/null +++ b/passerelle_reunion_unicite/migrations/0003_auto_20191016_1318.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-10-16 11:18 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('passerelle_reunion_unicite', '0002_auto_20191016_1317'), + ] + + operations = [ + migrations.AlterField( + model_name='unicityreunionconnector', + name='form_id', + field=models.IntegerField(default=0, verbose_name='Id du formulaire'), + ), + ] diff --git a/passerelle_reunion_unicite/models.py b/passerelle_reunion_unicite/models.py index 52e7437..e0a9713 100644 --- a/passerelle_reunion_unicite/models.py +++ b/passerelle_reunion_unicite/models.py @@ -1,14 +1,53 @@ # -*- coding: utf-8 -*- - +from django.db import models +from django.utils.translation import ugettext_lazy as _ from passerelle.base.models import BaseResource - +from passerelle.utils.api import endpoint +from passerelle.utils.jsonresponse import APIError +import psycopg2 class UnicityReunionConnector(BaseResource): - form_id = models.CharField(max_length=128, verbose_name=_('Id du formulaire')) + form_id = models.IntegerField(default=0, verbose_name=_(u'Id du formulaire')) + db_host = models.CharField(blank=True, max_length=128, verbose_name=_(u'Hostname/ip de la base de données')) + db_port = models.IntegerField(default=5432, verbose_name=_(u'Port')) + db_user = models.CharField(blank=True, max_length=128, verbose_name=_(u'Utilisateur')) + db_pass = models.CharField(blank=True, max_length=128, verbose_name=_(u'Mot de passe')) + db_name = models.CharField(blank=True, max_length=128, verbose_name=_(u'Nom de la base')) category = 'Divers' class Meta: verbose_name = u'Connecteur unicity réunion' + + @endpoint(description=_(u'Vérifier s\'il y a déjà une demande pour le siren pour cette année'), + perm='can_access', + parameters={ + 'siren': {'description': _(u'SIREN'), + 'example_value': u'77567227216096'}, + 'annee': {'description': _(u'Année')} + } + ) + def doublon_par_siren_annee(self, request, siren, annee): + try: + connection = psycopg2.connect( + user = self.db_user, + password = self.db_pass, + host = self.db_host, + port = self.db_port, + database = self.db_name + ) + + cursor = connection.cursor() + cursor.execute("SELECT f_siren FROM wcs_view_1_cheques_numeriques WHERE status != 'draft' AND f_siren=%s AND f_annee=%s", (siren, annee)) + record = cursor.fetchone() + except psycopg2.Error as e: + raise APIError(e) + finally: + if(connection): + cursor.close() + connection.close() + + return {'data': record} +