77 lines
2.7 KiB
Python
Executable File
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
|