From 317b41e08d94f471323eca2b40ad9ec5dd20f1a8 Mon Sep 17 00:00:00 2001
From: vtexier <vit@free.fr>
Date: Thu, 2 Apr 2020 10:55:59 +0200
Subject: [PATCH] [enh] source type "D" and "T" now as Source entity constants

---
 src/sakia/data/entities/source.py      | 4 ++++
 src/sakia/data/processors/dividends.py | 4 ++--
 src/sakia/services/documents.py        | 2 +-
 src/sakia/services/sources.py          | 6 +++---
 src/sakia/services/transactions.py     | 6 +++---
 5 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/sakia/data/entities/source.py b/src/sakia/data/entities/source.py
index de6e4bf7..540bf7a5 100644
--- a/src/sakia/data/entities/source.py
+++ b/src/sakia/data/entities/source.py
@@ -3,6 +3,10 @@ import attr
 
 @attr.s(hash=True)
 class Source:
+
+    TYPE_TRANSACTION = "T"
+    TYPE_DIVIDEND = "D"
+
     currency = attr.ib(converter=str)
     pubkey = attr.ib(converter=str)
     identifier = attr.ib(converter=str)
diff --git a/src/sakia/data/processors/dividends.py b/src/sakia/data/processors/dividends.py
index 138914ec..fdf16a5b 100644
--- a/src/sakia/data/processors/dividends.py
+++ b/src/sakia/data/processors/dividends.py
@@ -1,6 +1,6 @@
 import attr
 import logging
-from ..entities import Dividend
+from ..entities import Dividend, Source
 from .nodes import NodesProcessor
 from ..connectors import BmaConnector
 from duniterpy.api import bma
@@ -82,7 +82,7 @@ class DividendsProcessor:
             txdoc = Transaction.from_signed_raw(tx.raw)
             for input in txdoc.inputs:
                 if (
-                    input.source == "D"
+                    input.source == Source.TYPE_DIVIDEND
                     and input.origin_id == connection.pubkey
                     and input.index not in block_numbers
                     and input.index > start
diff --git a/src/sakia/services/documents.py b/src/sakia/services/documents.py
index b9011c80..16182f8a 100644
--- a/src/sakia/services/documents.py
+++ b/src/sakia/services/documents.py
@@ -473,7 +473,7 @@ class DocumentsService:
                     currency=currency,
                     pubkey=pubkey,
                     identifier=txdoc.sha_hash,
-                    type="T",
+                    type=Source.TYPE_TRANSACTION,
                     noffset=offset,
                     amount=output.amount,
                     base=output.base,
diff --git a/src/sakia/services/sources.py b/src/sakia/services/sources.py
index 7e5a8a32..d1c5984e 100644
--- a/src/sakia/services/sources.py
+++ b/src/sakia/services/sources.py
@@ -74,7 +74,7 @@ class SourcesServices(QObject):
                     currency=self.currency,
                     pubkey=pubkey,
                     identifier=txdoc.sha_hash,
-                    type="T",
+                    type=Source.TYPE_TRANSACTION,
                     noffset=offset,
                     amount=output.amount,
                     base=output.base,
@@ -117,7 +117,7 @@ class SourcesServices(QObject):
             currency=self.currency,
             pubkey=pubkey,
             identifier=pubkey,
-            type="D",
+            type=Source.TYPE_DIVIDEND,
             noffset=dividend.block_number,
             amount=dividend.amount,
             base=dividend.base,
@@ -218,7 +218,7 @@ class SourcesServices(QObject):
                 currency=self.currency,
                 pubkey=pubkey,
                 identifier=txdoc.sha_hash,
-                type="T",
+                type=Source.TYPE_TRANSACTION,
                 noffset=offset,
                 amount=output.amount,
                 base=output.base,
diff --git a/src/sakia/services/transactions.py b/src/sakia/services/transactions.py
index 3690cb73..b525a97e 100644
--- a/src/sakia/services/transactions.py
+++ b/src/sakia/services/transactions.py
@@ -8,7 +8,7 @@ from sakia.data.entities.transaction import (
 )
 from duniterpy.documents import Transaction as TransactionDoc
 from duniterpy.documents import SimpleTransaction, Block
-from sakia.data.entities import Dividend
+from sakia.data.entities import Dividend, Source
 from duniterpy.api import bma
 import logging
 
@@ -179,7 +179,7 @@ class TransactionsService(QObject):
                 for input in txdoc.inputs:
                     # For each dividends inputs, if it is consumed (not present in ud history)
                     if (
-                        input.source == "D"
+                        input.source == Source.TYPE_DIVIDEND
                         and input.origin_id == connection.pubkey
                         and input.index not in block_numbers
                     ):
@@ -292,7 +292,7 @@ class TransactionsService(QObject):
             for input in txdoc.inputs:
                 # For each dividends inputs, if it is consumed (not present in ud history)
                 if (
-                    input.source == "D"
+                    input.source == Source.TYPE_DIVIDEND
                     and input.origin_id == pubkey
                     and input.index not in block_numbers
                 ):
-- 
GitLab