Skip to content

Commit

Permalink
[NEW] lcc_comchain_base,lcc_cyclos_base: add safe wallet to backend info
Browse files Browse the repository at this point in the history
  • Loading branch information
vaab committed Jun 28, 2024
1 parent 87a2daf commit f11601b
Show file tree
Hide file tree
Showing 7 changed files with 57 additions and 30 deletions.
40 changes: 40 additions & 0 deletions lcc_comchain_base/models/res_partner_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,19 @@ def comchain_backend_id(self):
return False
return "%s:%s" % ("comchain", currency_name)

def _update_search_data(self, backend_keys):
_logger.debug("SEARCH: backend_keys = %s" % backend_keys)
data = super(ResPartnerBackend, self)._update_search_data(backend_keys)
for wallet in self:
if wallet.type != "comchain":
continue
if wallet.comchain_id:
for backend_key in backend_keys:
if backend_key.startswith("comchain:"):
data[backend_key] = [wallet.comchain_id]
_logger.debug("SEARCH: data %s" % data)
return data

@property
def comchain_backend_accounts_data(self):
"""Return normalized backend account's data"""
Expand All @@ -68,6 +81,33 @@ def comchain_backend_accounts_data(self):
"active": self.status == "active",
}
)

company = self.partner_id.company_id
safe_wallet_partner = company.safe_wallet_partner_id

if safe_wallet_partner:

safe_wallet_profile_info = safe_wallet_partner.lcc_profile_info()
if safe_wallet_profile_info:
if len(safe_wallet_profile_info) > 1:
raise ValueError("Safe partner has more than one public profile")

## Safe wallet is configured and has a public profile
data["safe_wallet_recipient"] = safe_wallet_profile_info[0]

monujo_backends = safe_wallet_partner.lcc_backend_ids._update_search_data(
[self.comchain_backend_id]
)
if len(monujo_backends) > 1:
raise ValueError("Safe partner has more than one wallet")
data["safe_wallet_recipient"]["monujo_backends"] = monujo_backends

else:
_logger.error(
"Safe wallet %s has no public profile",
safe_wallet_partner.name,
)

return [data]

@api.depends("name", "type", "comchain_status")
Expand Down
12 changes: 0 additions & 12 deletions lcc_comchain_base/services/partner_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,6 @@
class PartnerService(Component):
_inherit = "partner.service"

def _update_search_data(self, partner, backend_keys):
_logger.debug("SEARCH: backend_keys = %s" % backend_keys)
data = super(PartnerService, self)._update_search_data(partner, backend_keys)
wallets = partner.get_wallets("comchain")
for wallet in wallets:
if wallet.comchain_id:
for backend_key in backend_keys:
if backend_key.startswith("comchain:"):
data[backend_key] = [wallet.comchain_id]
_logger.debug("SEARCH: data %s" % data)
return data

def _get_backend_credentials(self, partner):
data = super(PartnerService, self)._get_backend_credentials(partner)
wallets = partner.get_wallets("comchain")
Expand Down
10 changes: 10 additions & 0 deletions lcc_cyclos_base/models/res_partner_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ class ResPartnerBackend(models.Model):
cyclos_id = fields.Char(string="Cyclos id")
cyclos_status = fields.Char(string="Cyclos Status")

def _update_search_data(self, backend_keys):
data = super(ResPartnerBackend, self)._update_search_data(backend_keys)
for wallet in self:
if wallet.type != "cyclos":
continue
for backend_key in backend_keys:
if backend_key.startswith("cyclos:") and wallet.cyclos_id:
data[backend_key] = [wallet.cyclos_id]
return data

@property
def cyclos_backend_json_data(self):
"""Return normalized backend account's data"""
Expand Down
9 changes: 0 additions & 9 deletions lcc_cyclos_base/services/partner_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,6 @@
class PartnerService(Component):
_inherit = "partner.service"

def _update_search_data(self, partner, backend_keys):
data = super(PartnerService, self)._update_search_data(partner, backend_keys)
wallets = partner.get_wallets("cyclos")
for wallet in wallets:
for backend_key in backend_keys:
if backend_key.startswith("cyclos:") and wallet.cyclos_id:
data[backend_key] = [wallet.cyclos_id]
return data

def _get_backend_credentials(self, partner):
data = super(PartnerService, self)._get_backend_credentials(partner)
wallets = partner.get_wallets("cyclos")
Expand Down
2 changes: 1 addition & 1 deletion lcc_lokavaluto_app_connection/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def _compute_nb_wallets(self):

def get_wallets(self, type):
self.ensure_one()
wallets = [backend for backend in self.lcc_backend_ids if backend.type == type]
wallets = [wallet for wallet in self.lcc_backend_ids if wallet.type == type]
if len(wallets) > 0:
if len(wallets) > 1:
raise NotImplementedError(
Expand Down
3 changes: 3 additions & 0 deletions lcc_lokavaluto_app_connection/models/res_partner_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ class ResPartnerBackend(models.Model):
)
partner_id = fields.Many2one("res.partner", string="Partner", required=True)

def _update_search_data(self, backend_keys):
return {}

@api.depends("name", "type")
def _compute_status(self):
pass
Expand Down
11 changes: 3 additions & 8 deletions lcc_lokavaluto_app_connection/services/partner_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -256,8 +256,7 @@ def search_recipients(self, recipients_search_info):
if not lcc_profile_info:
continue
row = lcc_profile_info[0]
row["monujo_backends"] = self._update_search_data(
partner,
row["monujo_backends"] = partner.lcc_backend_ids._update_search_data(
[k for k in backend_keys if k.startswith("%s:" % recipient.type)],
)
rows.append(row)
Expand Down Expand Up @@ -302,8 +301,7 @@ def search_recipient_by_uri(self):

partner = recipients[0].partner_id
recipient = partner.lcc_profile_info()[0]
recipient["monujo_backends"] = self._update_search_data(
partner,
recipient["monujo_backends"] = partner.lcc_backend_ids._update_search_data(
[k for k in backend_keys if k.startswith("%s:" % recipients[0].type)],
)

Expand Down Expand Up @@ -404,7 +402,7 @@ def _get_formatted_recipients(self, recipients, backend_keys):
if backend_keys:
for partner in recipients:
row = partner.lcc_profile_info()[0]
row["monujo_backends"] = self._update_search_data(partner, backend_keys)
row["monujo_backends"] = partner.lcc_backend_ids._update_search_data(backend_keys)
rows.append(row)
return {"count": len(rows), "rows": rows}

Expand All @@ -416,9 +414,6 @@ def _prepare_params(self, params):
params["%s_id" % key] = val["id"]
return params

def _update_search_data(self, partner, backend_keys):
return {}

def _get_backend_credentials(self, partner):
return []

Expand Down

0 comments on commit f11601b

Please sign in to comment.