"""Views module.""" from typing import List from django.http import HttpRequest, HttpResponse from django.shortcuts import render from dependency_injector.wiring import inject, Provide from githubnavigator.containers import Container from githubnavigator.services import SearchService @inject def index( request: HttpRequest, search_service: SearchService = Provide[Container.search_service], default_query: str = Provide[Container.config.DEFAULT_QUERY], default_limit: int = Provide[Container.config.DEFAULT_LIMIT.as_int()], limit_options: List[int] = Provide[Container.config.LIMIT_OPTIONS], ) -> HttpResponse: query = request.GET.get("query", default_query) limit = int(request.GET.get("limit", default_limit)) repositories = search_service.search_repositories(query, limit) return render( request, template_name="index.html", context={ "query": query, "limit": limit, "limit_options": limit_options, "repositories": repositories, } )