facho/cli.py: nuevo subcomando sendtestsetasync para envio de peticion soap
FossilOrigin-Name: 778df44a974144037dedb125ce8539b18540c2b3ce85b9f352cff06ebc1bdce3
This commit is contained in:
parent
24b227710e
commit
a369585f73
17
facho/cli.py
17
facho/cli.py
@ -41,9 +41,26 @@ def consultaResolucionesFacturacion(nit, nit_proveedor, id_software, username, p
|
|||||||
))
|
))
|
||||||
print(str(resp))
|
print(str(resp))
|
||||||
|
|
||||||
|
|
||||||
|
@click.command()
|
||||||
|
@click.option('--private-key', required=True)
|
||||||
|
@click.option('--public-key', required=True)
|
||||||
|
@click.option('--password')
|
||||||
|
@click.argument('filename', required=True)
|
||||||
|
@click.argument('zipfile', type=click.Path(exists=True))
|
||||||
|
def SendTestSetAsync(private_key, public_key, password, filename, zipfile):
|
||||||
|
from facho.fe.client import dian
|
||||||
|
|
||||||
|
client = dian.DianSignatureClient(private_key, public_key, password=password)
|
||||||
|
resp = client.request(dian.SendTestSetAsync(
|
||||||
|
filename, zipfile.read().encode('utf-8')
|
||||||
|
))
|
||||||
|
print(resp)
|
||||||
|
|
||||||
|
|
||||||
@click.group()
|
@click.group()
|
||||||
def main():
|
def main():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
main.add_command(consultaResolucionesFacturacion)
|
main.add_command(consultaResolucionesFacturacion)
|
||||||
|
main.add_command(SendTestSetAsync)
|
||||||
|
@ -2,7 +2,7 @@ from facho import facho
|
|||||||
|
|
||||||
import zeep
|
import zeep
|
||||||
from zeep.wsse.username import UsernameToken
|
from zeep.wsse.username import UsernameToken
|
||||||
|
from zeep.wsse.signature import Signature
|
||||||
|
|
||||||
import urllib.request
|
import urllib.request
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@ -90,15 +90,26 @@ class SendBillAsync:
|
|||||||
def build_response(self, as_dict):
|
def build_response(self, as_dict):
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
||||||
class DianClient:
|
|
||||||
|
|
||||||
def __init__(self, user, password):
|
@dataclass
|
||||||
self._username = user
|
class SendTestSetAsync:
|
||||||
self._password = password
|
fileName: str
|
||||||
|
contentFile: str
|
||||||
|
|
||||||
|
def get_wsdl(self):
|
||||||
|
return 'https://colombia-dian-webservices-input-sbx.azurewebsites.net/WcfDianCustomerServices.svc?wsdl'
|
||||||
|
|
||||||
|
def get_service(self):
|
||||||
|
return 'SendTestSetAsync'
|
||||||
|
|
||||||
|
def build_response(self, as_dict):
|
||||||
|
return {}
|
||||||
|
|
||||||
|
|
||||||
|
class DianGateway:
|
||||||
|
|
||||||
def _open(self, service):
|
def _open(self, service):
|
||||||
return zeep.Client(service.get_wsdl(), wsse=UsernameToken(self._username, self._password))
|
raise NotImplementedError()
|
||||||
|
|
||||||
def _remote_service(self, conn, service):
|
def _remote_service(self, conn, service):
|
||||||
return conn.service[service.get_service()]
|
return conn.service[service.get_service()]
|
||||||
@ -117,5 +128,26 @@ class DianClient:
|
|||||||
|
|
||||||
return service.build_response(resp)
|
return service.build_response(resp)
|
||||||
|
|
||||||
|
|
||||||
|
class DianClient(DianGateway):
|
||||||
|
|
||||||
|
def __init__(self, user, password):
|
||||||
|
self._username = user
|
||||||
|
self._password = password
|
||||||
|
|
||||||
|
def _open(self, service):
|
||||||
|
return zeep.Client(service.get_wsdl(), wsse=UsernameToken(self._username, self._password))
|
||||||
|
|
||||||
|
|
||||||
|
class DianSignatureClient(DianGateway):
|
||||||
|
|
||||||
|
def __init__(self, private_key_path, public_key_path, password=None):
|
||||||
|
self.private_key_path = private_key_path
|
||||||
|
self.public_key_path = public_key_path
|
||||||
|
self.password = password
|
||||||
|
|
||||||
|
def _open(self, service):
|
||||||
|
return zeep.Client(service.get_wsdl(), wsse=Signature(
|
||||||
|
self.private_key_path, self.public_key_path, self.password))
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user