Conversion_Kitchen_Code/kitchen_counter/Blockchain2/block_user_info.py

77 lines
2.7 KiB
Python
Executable File

from users.models import *
# from institutional.models import *
class user_info:
def __init__(self, tx_hash,service,gas_fee,script_name):
self.tx_hash = tx_hash
self.service= service
self.gas_fee= gas_fee
self.script_name= script_name
def update_info(self,request):
obj= BlockchainUserInfo()
#
if CorporateUser.objects.filter(user=request.user).exists():
associated_corporate_users = CorporateUser.objects.get(user=request.user)
obj.coprate_user = associated_corporate_users
obj.user = request.user
obj.user_name = request.user.username
obj.tx_hash= self.tx_hash
obj.service= self.service
obj.gas_fee= self.gas_fee
obj.script_name= self.script_name
obj.uploaded_by = request.user.email
obj.save()
def update_corporate_user(self, user, **kwargs):
if CorporateUser.objects.filter(user=user).exists():
corporate_user = CorporateUser.objects.get(user=user)
for key, value in kwargs.items():
setattr(corporate_user, key, value)
corporate_user.save()
return True, "Corporate user updated successfully."
else:
return False, "Corporate user not found."
class get_user_info:
def __init__(self):
pass
def get_user_tx(self,request):
users = BlockchainUserInfo.objects.filter(user=request.user).order_by("-date_at")
total_gas = 0
for i in users:
gas_fee = i.gas_fee
total_gas=total_gas+gas_fee
# Conversion factor
wei_in_one_ether = 10**18
# Convert Wei to Ether
amount_matic = total_gas / wei_in_one_ether
return users,amount_matic
def get_service_tx(self,request,services):
users = BlockchainUserInfo.objects.filter(user=request.user,service=services)
total_gas = 0
for i in users:
gas_fee = i.gas_fee
total_gas=total_gas+gas_fee
# Conversion factor
wei_in_one_ether = 10**18
# Convert Wei to Ether
amount_matic = total_gas / wei_in_one_ether
return amount_matic
class CorporateUserInfo:
@staticmethod
def get_blockchain_info_for_corporate_user(corporate_user_uuid):
try:
corporate_user = CorporateUser.objects.get(corporate_user_uuid=corporate_user_uuid)
blockchain_info = BlockchainUserInfo.objects.filter(coprate_user=corporate_user).values(
'upload_date', 'uploaded_by', 'script_name', 'gas_fee', 'service'
)
return list(blockchain_info)
except CorporateUser.DoesNotExist:
return None