diff --git a/lcc_comchain_base/datamodel/comchain.py b/lcc_comchain_base/datamodel/comchain.py index 14ac401e..27750961 100644 --- a/lcc_comchain_base/datamodel/comchain.py +++ b/lcc_comchain_base/datamodel/comchain.py @@ -18,15 +18,6 @@ class ComchainRegisterInfo(Datamodel): message_key = fields.String(required=True) -class ComchainActivateInfo(Datamodel): - _name = "comchain.activate.info" - - address = fields.String(required=True) - type = fields.Integer(required=True) - credit_min = fields.Float(required=True) - credit_max = fields.Float(required=True) - - class ComchainActivateList(Datamodel): _name = "comchain.activate.list" diff --git a/lcc_comchain_base/models/res_partner_backend.py b/lcc_comchain_base/models/res_partner_backend.py index 3b5f0a10..24c80a25 100644 --- a/lcc_comchain_base/models/res_partner_backend.py +++ b/lcc_comchain_base/models/res_partner_backend.py @@ -90,9 +90,9 @@ def activate(self, params): self.write( { "comchain_status": "active", - "comchain_type": "%s" % params.type, - "comchain_credit_min": params.credit_min, - "comchain_credit_max": params.credit_max, + "comchain_type": "%s" % params["type"], + "comchain_credit_min": params["credit_min"], + "comchain_credit_max": params["credit_max"], } ) diff --git a/lcc_comchain_base/services/comchain_services.py b/lcc_comchain_base/services/comchain_services.py index b20a082b..e0b24d8a 100644 --- a/lcc_comchain_base/services/comchain_services.py +++ b/lcc_comchain_base/services/comchain_services.py @@ -70,17 +70,28 @@ def register(self, params): @restapi.method( [(["/activate"], "POST")], - input_param=Datamodel("comchain.activate.list"), ) - def activate(self, params): + def activate(self): """ Activate comchain account on partners """ + accounts = request.params["accounts"] wallet_obj = self.env["res.partner.backend"] - for account in params.accounts: + for account in accounts: + try: + account["recipient_id"] = int(account["recipient_id"]) + except ValueError: + raise ValueError( + "Invalid 'recipient_id´: %r (should be a number)", + account["recipient_id"], + ) wallet_id = wallet_obj.search( - [("comchain_id", "=", account.address)], limit=1 + [ + ("comchain_id", "=", account["address"]), + ("partner_id", "=", account["recipient_id"]), + ], + limit=1, ) wallet_id.activate(account)