The CLI
Let’s learn the usage of the command-line interface in clean architecture.
We'll cover the following...
Updating the CLI file
At this point, fixing the CLI is extremely simple. We need to imitate what we did for the HTTP server, only without considering the filters because they weren’t part of the command-line tool.
Press + to interact
#!/usr/bin/env pythonfrom rentomatic.repository.memrepo import MemRepofrom rentomatic.use_cases.room_list import room_list_use_casefrom rentomatic.requests.room_list import build_room_list_requestrooms = [{"code": "f853578c-fc0f-4e65-81b8-566c5dffa35a","size": 215,"price": 39,"longitude": -0.09998975,"latitude": 51.75436293,},{"code": "fe2c3195-aeff-487a-a08f-e0bdc0ec6e9a","size": 405,"price": 66,"longitude": 0.18228006,"latitude": 51.74640997,},{"code": "913694c6-435a-4366-ba0d-da5334a611b2","size": 56,"price": 60,"longitude": 0.27891577,"latitude": 51.45994069,},{"code": "eed76e77-55c1-41ce-985d-ca49bf6c0585","size": 93,"price": 48,"longitude": 0.33894476,"latitude": 51.39916678,},]url_request = requests.get('https://localhost:5000/rooms')request = build_room_list_request(url_request)repo = MemRepo(rooms)response = room_list_use_case(repo, request)print([room.to_dict() for room in response.value])
In line 38, we get the inputs from the URL using the GET
method. In line 39, we pass these inputs to build_room_list_request(url_request)
to apply the filter
on the inputs given in the URL. If we skip line 38, we’ll get ...