v0.2
This commit is contained in:
parent
27cfbadef4
commit
9d8f94e2bc
|
@ -0,0 +1,59 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.18 on 2020-04-04 09:19
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('passerelle_reunion_unicite', '0004_auto_20200327_0731'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='db_host',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='db_pass',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='db_port',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='db_user',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='form_id',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='table_name',
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='field_name_1',
|
||||||
|
field=models.CharField(default=b'f_siren', max_length=128, verbose_name='Nom du 1er champ \xe0 contr\xf4ler'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='field_name_2',
|
||||||
|
field=models.CharField(blank=True, max_length=128, verbose_name='Nom du 2\xe8me champ \xe0 contr\xf4ler (optionnel)'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='view_name',
|
||||||
|
field=models.CharField(default=b'wcs_view_formid_formname', max_length=128, verbose_name='Nom de la vue'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='db_name',
|
||||||
|
field=models.CharField(default=b'wcs_instance', max_length=128, verbose_name='Nom de la base'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,20 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.18 on 2020-04-04 10:32
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('passerelle_reunion_unicite', '0005_auto_20200404_1119'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='unicityreunionconnector',
|
||||||
|
name='db_user',
|
||||||
|
field=models.CharField(default=b'passerelle', max_length=128, verbose_name='Utilisateur de la base'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -9,75 +9,40 @@ import psycopg2
|
||||||
|
|
||||||
class UnicityReunionConnector(BaseResource):
|
class UnicityReunionConnector(BaseResource):
|
||||||
|
|
||||||
form_id = models.IntegerField(default=0, verbose_name=_(u'Id du formulaire'))
|
field_name_1 = models.CharField(blank=False, default='f_siren', max_length=128, verbose_name=_(u'Nom du 1er champ à contrôler'))
|
||||||
db_host = models.CharField(blank=True, max_length=128, verbose_name=_(u'Hostname/ip de la base de données'))
|
field_name_2 = models.CharField(blank=True, max_length=128, verbose_name=_(u'Nom du 2ème champ à contrôler (optionnel)'))
|
||||||
db_port = models.IntegerField(default=5432, verbose_name=_(u'Port'))
|
db_name = models.CharField(blank=False, default='wcs_instance', max_length=128, verbose_name=_(u'Nom de la base'))
|
||||||
db_user = models.CharField(blank=True, max_length=128, verbose_name=_(u'Utilisateur'))
|
db_user = models.CharField(blank=False, default='passerelle', max_length=128, verbose_name=_(u'Utilisateur de la base'))
|
||||||
db_pass = models.CharField(blank=True, max_length=128, verbose_name=_(u'Mot de passe'))
|
view_name = models.CharField(blank=False, default='wcs_view_formid_formname', max_length=128, verbose_name=_(u'Nom de la vue'))
|
||||||
db_name = models.CharField(blank=True, max_length=128, verbose_name=_(u'Nom de la base'))
|
|
||||||
table_name = models.CharField(blank=True, max_length=128, verbose_name=_(u'Nom de la table en bdd'))
|
|
||||||
|
|
||||||
category = 'Divers'
|
category = 'Divers'
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = u'Connecteur unicité Région Réunion'
|
verbose_name = u'Connecteur unicité Région Réunion'
|
||||||
|
|
||||||
@endpoint(description=_(u'Vérifier s\'il y a déjà une demande pour le siren pour cette année'),
|
@endpoint(description=_(u'Vérifier s\'il y a déjà une demande dans la vue avec les valeurs des champs fournies en paramètre'),
|
||||||
perm='can_access',
|
perm='can_access',
|
||||||
parameters={
|
parameters={
|
||||||
'siren': {'description': _(u'SIREN'),
|
'value_1': {'description': _(u'Champ 1'),
|
||||||
'example_value': u'77567227216096'},
|
'example_value': u'77567227216096'},
|
||||||
'annee': {'description': _(u'Année')}
|
'value_2': {'description': _(u'Champ 2'),
|
||||||
|
'example_value': u'2020'},
|
||||||
|
'form_id': {'description': _(u'Id de la demande'),
|
||||||
|
'example_value': u'1'}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
def unicite_siren_annee(self, request, siren, annee=""):
|
def unicite(self, request, value_1, value_2="", form_id=0):
|
||||||
try:
|
try:
|
||||||
connection = psycopg2.connect(
|
connection = psycopg2.connect(
|
||||||
user = self.db_user,
|
user = self.db_user,
|
||||||
password = self.db_pass,
|
|
||||||
host = self.db_host,
|
|
||||||
port = self.db_port,
|
|
||||||
database = self.db_name
|
database = self.db_name
|
||||||
)
|
)
|
||||||
|
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
if annee == "":
|
if not value_2 or not self.field_name_2:
|
||||||
cursor.execute("SELECT f_siren FROM " + self.table_name + " WHERE status != 'draft' AND f_siren=%s", (siren,))
|
cursor.execute("SELECT " + self.field_name_1 + " FROM " + self.view_name + " WHERE status != 'draft' AND id != %s AND " + self.field_name_1 + "=%s", (form_id, value_1))
|
||||||
else:
|
else:
|
||||||
cursor.execute("SELECT f_siren FROM " + self.table_name + " WHERE status != 'draft' AND f_siren=%s AND f_annee=%s", (siren, annee))
|
cursor.execute("SELECT " + self.field_name_1 + " FROM " + self.view_name + " WHERE status != 'draft' AND id != %s AND " + self.field_name_1 + "=%s AND " + self.field_name_2 + "=%s", (form_id, value_1, value_2))
|
||||||
record = cursor.fetchone()
|
|
||||||
except psycopg2.Error as e:
|
|
||||||
raise APIError(e)
|
|
||||||
finally:
|
|
||||||
if(connection):
|
|
||||||
cursor.close()
|
|
||||||
connection.close()
|
|
||||||
|
|
||||||
return {'data': record}
|
|
||||||
|
|
||||||
@endpoint(description=_(u'Vérifier s\'il y a déjà une demande pour l\'iban pour cette année'),
|
|
||||||
perm='can_access',
|
|
||||||
parameters={
|
|
||||||
'iban': {'description': _(u'IBAN'),
|
|
||||||
'example_value': u'GR9608100010000001234567890'},
|
|
||||||
'annee': {'description': _(u'Année')}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
def unicite_iban_annee(self, request, iban, 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()
|
|
||||||
if annee == "":
|
|
||||||
cursor.execute("SELECT f_iban FROM " + self.table_name + " WHERE status != 'draft' AND f_iban=%s", (iban,))
|
|
||||||
else:
|
|
||||||
cursor.execute("SELECT f_iban FROM " + self.table_name + " WHERE status != 'draft' AND f_iban=%s AND f_annee=%s", (iban, annee))
|
|
||||||
record = cursor.fetchone()
|
record = cursor.fetchone()
|
||||||
except psycopg2.Error as e:
|
except psycopg2.Error as e:
|
||||||
raise APIError(e)
|
raise APIError(e)
|
||||||
|
|
Reference in New Issue