Philip/dry run prep
This commit is contained in:
parent
aa99b16ad2
commit
ea336283dc
@ -1,7 +1,7 @@
|
|||||||
[database]
|
[database]
|
||||||
NAME=cic_ussd
|
NAME=cic_ussd
|
||||||
USER=postgres
|
USER=postgres
|
||||||
PASSWORD=password
|
PASSWORD=
|
||||||
HOST=localhost
|
HOST=localhost
|
||||||
PORT=5432
|
PORT=5432
|
||||||
ENGINE=postgresql
|
ENGINE=postgresql
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
[keys]
|
[pgp]
|
||||||
public = ../cic-internal-integration/apps/contract-migration/testdata/pgp/publickeys_meta.asc
|
export_dir = /usr/src/pgp/keys/
|
||||||
private = ../cic-internal-integration/apps/contract-migration/testdata/pgp/privatekeys_meta.asc
|
keys_path = /usr/src/secrets/
|
||||||
passphrase = merman
|
private_keys = privatekeys_meta.asc
|
||||||
|
passphrase =
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
[keys]
|
[pgp]
|
||||||
public = ../cic-internal-integration/apps/contract-migration/testdata/pgp/publickeys_meta.asc
|
export_dir = /usr/src/pgp/keys/
|
||||||
private = ../cic-internal-integration/apps/contract-migration/testdata/pgp/privatekeys_meta.asc
|
keys_path = /usr/src/secrets/
|
||||||
passphrase = merman
|
private_keys = privatekeys_meta.asc
|
||||||
|
passphrase =
|
||||||
|
@ -102,9 +102,9 @@ def process_exit_successful_transaction(display_key: str, user: User, ussd_sessi
|
|||||||
transaction_amount = to_wei(int(ussd_session.get('session_data').get('transaction_amount')))
|
transaction_amount = to_wei(int(ussd_session.get('session_data').get('transaction_amount')))
|
||||||
token_symbol = 'SRF'
|
token_symbol = 'SRF'
|
||||||
recipient_phone_number = ussd_session.get('session_data').get('recipient_phone_number')
|
recipient_phone_number = ussd_session.get('session_data').get('recipient_phone_number')
|
||||||
sender_phone_number = user.phone_number
|
recipient = get_user_by_phone_number(phone_number=recipient_phone_number)
|
||||||
tx_recipient_information = recipient_phone_number
|
tx_recipient_information = define_account_tx_metadata(user=recipient)
|
||||||
tx_sender_information = sender_phone_number
|
tx_sender_information = define_account_tx_metadata(user=user)
|
||||||
|
|
||||||
return translation_for(
|
return translation_for(
|
||||||
key=display_key,
|
key=display_key,
|
||||||
@ -184,10 +184,10 @@ def format_transactions(transactions: list, preferred_language: str):
|
|||||||
for transaction in transactions:
|
for transaction in transactions:
|
||||||
recipient_phone_number = transaction.get('recipient_phone_number')
|
recipient_phone_number = transaction.get('recipient_phone_number')
|
||||||
sender_phone_number = transaction.get('sender_phone_number')
|
sender_phone_number = transaction.get('sender_phone_number')
|
||||||
value = transaction.get('destination_value')
|
value = transaction.get('to_value')
|
||||||
timestamp = transaction.get('timestamp')
|
timestamp = transaction.get('timestamp')
|
||||||
action_tag = transaction.get('action_tag')
|
action_tag = transaction.get('action_tag')
|
||||||
token_symbol = transaction.get('destination_token_symbol')
|
token_symbol = 'SRF'
|
||||||
|
|
||||||
if action_tag == 'SENT' or action_tag == 'ULITUMA':
|
if action_tag == 'SENT' or action_tag == 'ULITUMA':
|
||||||
formatted_transactions += f'{action_tag} {value} {token_symbol} {recipient_phone_number} {timestamp}.\n'
|
formatted_transactions += f'{action_tag} {value} {token_symbol} {recipient_phone_number} {timestamp}.\n'
|
||||||
@ -222,6 +222,8 @@ def process_account_statement(user: User, display_key: str, ussd_session: dict):
|
|||||||
middle_transaction_set = []
|
middle_transaction_set = []
|
||||||
last_transaction_set = []
|
last_transaction_set = []
|
||||||
|
|
||||||
|
transactions = json.loads(transactions)
|
||||||
|
|
||||||
if len(transactions) > 6:
|
if len(transactions) > 6:
|
||||||
last_transaction_set += transactions[6:]
|
last_transaction_set += transactions[6:]
|
||||||
middle_transaction_set += transactions[3:][:3]
|
middle_transaction_set += transactions[3:][:3]
|
||||||
@ -233,10 +235,7 @@ def process_account_statement(user: User, display_key: str, ussd_session: dict):
|
|||||||
else:
|
else:
|
||||||
first_transaction_set += transactions[:3]
|
first_transaction_set += transactions[:3]
|
||||||
|
|
||||||
logg.debug(f'TRANSACTIONS: {transactions}')
|
|
||||||
|
|
||||||
if display_key == 'ussd.kenya.first_transaction_set':
|
if display_key == 'ussd.kenya.first_transaction_set':
|
||||||
logg.debug(f'FIRST TRANSACTION SET: {first_transaction_set}')
|
|
||||||
return translation_for(
|
return translation_for(
|
||||||
key=display_key,
|
key=display_key,
|
||||||
preferred_language=user.preferred_language,
|
preferred_language=user.preferred_language,
|
||||||
|
@ -101,9 +101,9 @@ InMemoryUssdSession.redis_cache = InMemoryStore.cache
|
|||||||
UserMetadata.base_url = config.get('CIC_META_URL')
|
UserMetadata.base_url = config.get('CIC_META_URL')
|
||||||
|
|
||||||
# define signer values
|
# define signer values
|
||||||
Signer.gpg_path = '/tmp/.gpg'
|
Signer.gpg_path = config.get('PGP_EXPORT_DIR')
|
||||||
Signer.gpg_passphrase = config.get('KEYS_PASSPHRASE')
|
Signer.gpg_passphrase = config.get('PGP_PASSPHRASE')
|
||||||
Signer.key_file_path = config.get('KEYS_PRIVATE')
|
Signer.key_file_path = f"{config.get('PGP_KEYS_PATH')}{config.get('PGP_PRIVATE_KEYS')}"
|
||||||
|
|
||||||
# initialize celery app
|
# initialize celery app
|
||||||
celery.Celery(backend=config.get('CELERY_RESULT_URL'), broker=config.get('CELERY_BROKER_URL'))
|
celery.Celery(backend=config.get('CELERY_RESULT_URL'), broker=config.get('CELERY_BROKER_URL'))
|
||||||
|
@ -39,7 +39,6 @@ config.censor('PASSWORD', 'DATABASE')
|
|||||||
# define log levels
|
# define log levels
|
||||||
if args.vv:
|
if args.vv:
|
||||||
logging.getLogger().setLevel(logging.DEBUG)
|
logging.getLogger().setLevel(logging.DEBUG)
|
||||||
logging.getLogger('sqlalchemy.engine').setLevel(logging.DEBUG)
|
|
||||||
elif args.v:
|
elif args.v:
|
||||||
logging.getLogger().setLevel(logging.INFO)
|
logging.getLogger().setLevel(logging.INFO)
|
||||||
|
|
||||||
@ -66,9 +65,9 @@ InMemoryUssdSession.redis_cache = InMemoryStore.cache
|
|||||||
UserMetadata.base_url = config.get('CIC_META_URL')
|
UserMetadata.base_url = config.get('CIC_META_URL')
|
||||||
|
|
||||||
# define signer values
|
# define signer values
|
||||||
Signer.gpg_path = '/tmp/.gpg'
|
Signer.gpg_path = config.get('PGP_EXPORT_DIR')
|
||||||
Signer.gpg_passphrase = config.get('KEYS_PASSPHRASE')
|
Signer.gpg_passphrase = config.get('PGP_PASSPHRASE')
|
||||||
Signer.key_file_path = config.get('KEYS_PRIVATE')
|
Signer.key_file_path = f"{config.get('PGP_KEYS_PATH')}{config.get('PGP_PRIVATE_KEYS')}"
|
||||||
|
|
||||||
# set up celery
|
# set up celery
|
||||||
current_app = celery.Celery(__name__)
|
current_app = celery.Celery(__name__)
|
||||||
|
@ -165,7 +165,6 @@ def process_statement_callback(result, param: str, status_code: int):
|
|||||||
sender_blockchain_address = transaction.get('sender')
|
sender_blockchain_address = transaction.get('sender')
|
||||||
recipient_address = transaction.get('recipient')
|
recipient_address = transaction.get('recipient')
|
||||||
source_token = transaction.get('source_token')
|
source_token = transaction.get('source_token')
|
||||||
destination_token_symbol = transaction.get('destination_token_symbol')
|
|
||||||
|
|
||||||
# filter out any transactions that are "gassy"
|
# filter out any transactions that are "gassy"
|
||||||
if '0x0000000000000000000000000000000000000000' in source_token:
|
if '0x0000000000000000000000000000000000000000' in source_token:
|
||||||
@ -198,9 +197,8 @@ def process_statement_callback(result, param: str, status_code: int):
|
|||||||
logg.warning(f'Tx with recipient not found in cic-ussd')
|
logg.warning(f'Tx with recipient not found in cic-ussd')
|
||||||
|
|
||||||
# add transaction values
|
# add transaction values
|
||||||
processed_transaction['destination_value'] = from_wei(value=transaction.get('destination_value'))
|
processed_transaction['to_value'] = from_wei(value=transaction.get('to_value'))
|
||||||
processed_transaction['destination_token_symbol'] = destination_token_symbol
|
processed_transaction['from_value'] = from_wei(value=transaction.get('from_value'))
|
||||||
processed_transaction['source_value'] = from_wei(value=transaction.get('source_value'))
|
|
||||||
|
|
||||||
raw_timestamp = transaction.get('timestamp')
|
raw_timestamp = transaction.get('timestamp')
|
||||||
timestamp = datetime.utcfromtimestamp(raw_timestamp).strftime('%d/%m/%y, %H:%M')
|
timestamp = datetime.utcfromtimestamp(raw_timestamp).strftime('%d/%m/%y, %H:%M')
|
||||||
|
@ -11,6 +11,9 @@ RUN apk update && \
|
|||||||
apk add git linux-headers postgresql-dev gnupg bash
|
apk add git linux-headers postgresql-dev gnupg bash
|
||||||
RUN apk add --update musl-dev gcc libffi-dev
|
RUN apk add --update musl-dev gcc libffi-dev
|
||||||
|
|
||||||
|
# create secrets directory
|
||||||
|
RUN mkdir -vp pgp/keys
|
||||||
|
|
||||||
# create application directory
|
# create application directory
|
||||||
RUN mkdir -vp cic-ussd
|
RUN mkdir -vp cic-ussd
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ packages =
|
|||||||
cic_ussd.db.models
|
cic_ussd.db.models
|
||||||
cic_ussd.files
|
cic_ussd.files
|
||||||
cic_ussd.menu
|
cic_ussd.menu
|
||||||
|
cic_ussd.metadata
|
||||||
cic_ussd.runnable
|
cic_ussd.runnable
|
||||||
cic_ussd.session
|
cic_ussd.session
|
||||||
cic_ussd.state_machine
|
cic_ussd.state_machine
|
||||||
|
4
apps/cic-ussd/tests/fixtures/config.py
vendored
4
apps/cic-ussd/tests/fixtures/config.py
vendored
@ -114,8 +114,8 @@ def setup_metadata_signer(load_config):
|
|||||||
temp_dir = tempfile.mkdtemp(dir='/tmp')
|
temp_dir = tempfile.mkdtemp(dir='/tmp')
|
||||||
logg.debug(f'Created temp dir: {temp_dir}')
|
logg.debug(f'Created temp dir: {temp_dir}')
|
||||||
Signer.gpg_path = temp_dir
|
Signer.gpg_path = temp_dir
|
||||||
Signer.key_file_path = load_config.get('KEYS_PRIVATE')
|
Signer.gpg_passphrase = load_config.get('PGP_PASSPHRASE')
|
||||||
Signer.gpg_passphrase = load_config.get('KEYS_PASSPHRASE')
|
Signer.key_file_path = f"{load_config.get('PGP_KEYS_PATH')}{load_config.get('PGP_PRIVATE_KEYS')}"
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
|
@ -466,12 +466,15 @@ services:
|
|||||||
DATABASE_NAME: cic_ussd
|
DATABASE_NAME: cic_ussd
|
||||||
DATABASE_ENGINE: postgresql
|
DATABASE_ENGINE: postgresql
|
||||||
DATABASE_DRIVER: psycopg2
|
DATABASE_DRIVER: psycopg2
|
||||||
|
PGP_PASSPHRASE: merman
|
||||||
SERVER_PORT: 8000
|
SERVER_PORT: 8000
|
||||||
ports:
|
ports:
|
||||||
- ${HTTP_PORT_CIC_USSD:-63315}:8000
|
- ${HTTP_PORT_CIC_USSD:-63315}:8000
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
- redis
|
- redis
|
||||||
|
volumes:
|
||||||
|
- ./apps/contract-migration/testdata/pgp/:/usr/src/secrets/
|
||||||
deploy:
|
deploy:
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
@ -492,9 +495,12 @@ services:
|
|||||||
DATABASE_DRIVER: psycopg2
|
DATABASE_DRIVER: psycopg2
|
||||||
CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis}
|
CELERY_BROKER_URL: ${CELERY_BROKER_URL:-redis://redis}
|
||||||
CELERY_RESULT_URL: ${CELERY_BROKER_URL:-redis://redis}
|
CELERY_RESULT_URL: ${CELERY_BROKER_URL:-redis://redis}
|
||||||
|
PGP_PASSPHRASE: merman
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
- redis
|
- redis
|
||||||
|
volumes:
|
||||||
|
- ./apps/contract-migration/testdata/pgp/:/usr/src/secrets/
|
||||||
deploy:
|
deploy:
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
|
Loading…
Reference in New Issue
Block a user