code |
state = Hash(default_value=None)
@construct
def init():
# Initialize an empty dictionary for each user
# Each dictionary will hold different categories of data
# This contract could be expanded to have additional categories
state['users'] = {}
@export
def register_user(username: str):
# Register a new user
# The user's data will be stored in a dictionary
assert username not in state['users'], 'This username is already registered'
state['users'][username] = {'contacts': [], 'addresses': [], 'documents': [], 'links': []}
@export
def add_data(username: str, category: str, item: str):
# Add a new item to a user's category
assert username in state['users'], 'This username is not registered'
assert category in state['users'][username], 'This category does not exist'
state['users'][username][category].append(item)
@export
def remove_data(username: str, category: str, item: str):
# Remove an item from a user's category
assert username in state['users'], 'This username is not registered'
assert category in state['users'][username], 'This category does not exist'
state['users'][username][category].remove(item)
@export
def get_data(username: str, category: str):
# Get all items in a user's category
assert username in state['users'], 'This username is not registered'
assert category in state['users'][username], 'This category does not exist'
return state['users'][username][category]
@export
def count_users():
# Count the number of registered users
return len(state['users'])
@export
def count_category_items(username: str, category: str):
# Count the number of items in a specific category for a specific user
assert username in state['users'], 'This username is not registered'
assert category in state['users'][username], 'This category does not exist'
return len(state['users'][username][category])
@export
def verify_user(username: str):
# Verify if a user is registered
return username in state['users']
|