Return transfer id Prevent when the two accounts aren't on the same backend
Signed-off-by: Nicolas Duhamel <nicolas@jombi.fr> Signed-off-by: Romain Bignon <romain@peerfuse.org>
This commit is contained in:
parent
17f6df1e30
commit
935531c5ae
4 changed files with 28 additions and 13 deletions
|
|
@ -125,13 +125,20 @@ class Boobank(ReplApplication):
|
||||||
"""
|
"""
|
||||||
id_from, id_to, amount = self.parseargs(line, 3, 3)
|
id_from, id_to, amount = self.parseargs(line, 3, 3)
|
||||||
|
|
||||||
id_from, backend_name = self.parse_id(id_from)
|
id_from, backend_name_from = self.parse_id(id_from)
|
||||||
id_to, backend_name = self.parse_id(id_to)
|
id_to, backend_name_to = self.parse_id(id_to)
|
||||||
|
|
||||||
|
if backend_name_from != backend_name_to:
|
||||||
|
print "Transfer between different backend is not implemented"
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
backend_name = backend_name_from
|
||||||
|
|
||||||
names = (backend_name,) if backend_name is not None else None
|
names = (backend_name,) if backend_name is not None else None
|
||||||
self.load_backends(ICapBank, names=names)
|
self.load_backends(ICapBank, names=names)
|
||||||
|
|
||||||
def do(backend):
|
def do(backend):
|
||||||
return backend.transfer(id_from, id_to, float(amount))
|
return backend.transfer(id_from, id_to, float(amount))
|
||||||
|
|
||||||
for backend, operation in self.do(do):
|
for backend, id_transfer in self.do(do):
|
||||||
pass
|
self.format((('Transfer', str(id_transfer)),))
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# backend.py
|
# backend.py
|
||||||
#
|
#
|
||||||
# Copyright 2010 nicolas <nicolas@jombi.fr>
|
# Copyright 2010 nicolas <nicolas@jombi.fr>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
@ -29,7 +29,7 @@ class BPBackend(BaseBackend, ICapBank):
|
||||||
VERSION = '0.2'
|
VERSION = '0.2'
|
||||||
LICENSE = 'GPLv3'
|
LICENSE = 'GPLv3'
|
||||||
DESCRIPTION = u'La banque postale, French bank'
|
DESCRIPTION = u'La banque postale, French bank'
|
||||||
CONFIG = {'login': BaseBackend.ConfigField(description='Account ID'),
|
CONFIG = {'login': BaseBackend.ConfigField(description='Account ID'),
|
||||||
'password': BaseBackend.ConfigField(description='Password of account', is_masked=True)
|
'password': BaseBackend.ConfigField(description='Password of account', is_masked=True)
|
||||||
}
|
}
|
||||||
BROWSER = BPbrowser
|
BROWSER = BPbrowser
|
||||||
|
|
@ -57,4 +57,4 @@ class BPBackend(BaseBackend, ICapBank):
|
||||||
to_account = self.get_account(id_to)
|
to_account = self.get_account(id_to)
|
||||||
|
|
||||||
#TODO: retourner le numero du virement
|
#TODO: retourner le numero du virement
|
||||||
self.browser.make_transfer(from_account, to_account, amount)
|
return self.browser.make_transfer(from_account, to_account, amount)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# browser.py
|
# browser.py
|
||||||
#
|
#
|
||||||
# Copyright 2010 nicolas <nicolas@NicolasDesktop>
|
# Copyright 2010 nicolas <nicolas@NicolasDesktop>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
# MA 02110-1301, USA.
|
# MA 02110-1301, USA.
|
||||||
|
|
||||||
import mechanize
|
import mechanize
|
||||||
import hashlib
|
import hashlib
|
||||||
|
|
@ -197,4 +197,12 @@ class BPbrowser(object):
|
||||||
|
|
||||||
#Confirmation
|
#Confirmation
|
||||||
# TODO: verifier que tout c'est bien passe
|
# TODO: verifier que tout c'est bien passe
|
||||||
self.Browser.open("https://voscomptesenligne.labanquepostale.fr/voscomptes/canalXHTML/virementsafran/virementnational/4-virementNational.ea")
|
rep = self.Browser.open("https://voscomptesenligne.labanquepostale.fr/voscomptes/canalXHTML/virementsafran/virementnational/4-virementNational.ea")
|
||||||
|
html = rep.get_data()
|
||||||
|
|
||||||
|
pattern = "Votre virement N.+ ([0-9]+) "
|
||||||
|
|
||||||
|
regex = re.compile(pattern)
|
||||||
|
match = regex.search(html)
|
||||||
|
id_transfer = match.groups()[0]
|
||||||
|
return id_transfer
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ if sys.version_info[:2] <= (2, 5):
|
||||||
from .base import IBaseCap, CapBaseObject
|
from .base import IBaseCap, CapBaseObject
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['Account', 'AccountNotFound', 'ICapBank', 'Operation']
|
__all__ = ['Account', 'AccountNotFound', 'NotEnoughMoney', 'ICapBank', 'Operation']
|
||||||
|
|
||||||
|
|
||||||
class AccountNotFound(Exception):
|
class AccountNotFound(Exception):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue