| 123456789101112131415161718192021222324252627282930313233343536373839 |
- from commu.infrastructure.memory_user_repository import InMemoryUserRepository
- from commu.infrastructure.memory_post_repository import InMemoryPostRepository
- from commu.usecases.user_service import UserService
- from commu.usecases.post_service import PostService
- from commu.entities.user import UserRole
- def main():
- user_repo = InMemoryUserRepository()
- post_repo = InMemoryPostRepository()
- user_service = UserService(user_repo)
- post_service = PostService(post_repo, user_repo)
- # Create users
- admin = user_service.register("alice", UserRole.ADMIN)
- user = user_service.register("bob", UserRole.USER)
- guest = user_service.register("guest", UserRole.GUEST)
- # User creates post
- post = post_service.create_post(user.id, "Hello world!", images=["img1.png"], videos=["vid1.mp4"])
- print(f"Created Post: {post.text}, by {user.username}")
- # Post search
- found = post_service.search_posts("hello")
- print(f"Found {len(found)} posts containing 'hello'.")
- # Post rating
- post_service.rate_post(post.id, admin.id, 5)
- post_service.rate_post(post.id, user.id, 4)
- print(f"Average Rating: {post.average_rating()}")
- # Guest tries to create post (should fail)
- try:
- post_service.create_post(guest.id, "I am a guest")
- except PermissionError as e:
- print("Guest cannot create post:", e)
- if __name__ == "__main__":
- main()
|