Coverage for src/couchers/servicers/resources.py: 100%
16 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-12-20 11:53 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-12-20 11:53 +0000
1import logging
3from couchers.proto import resources_pb2, resources_pb2_grpc
4from couchers.resources import (
5 get_badge_dict,
6 get_icon,
7 get_language_dict,
8 get_region_dict,
9 get_terms_of_service,
10)
12logger = logging.getLogger(__name__)
14COMMUNITY_GUIDELINES = [
15 {"key": "be_kind", "icon": "hand_with_heart.svg"},
16 {"key": "no_dating", "icon": "ghost.svg"},
17 {"key": "be_safe", "icon": "shield.svg"},
18 {"key": "no_money", "icon": "handshake.svg"},
19]
22class Resources(resources_pb2_grpc.ResourcesServicer):
23 def GetTermsOfService(self, request, context, session):
24 return resources_pb2.GetTermsOfServiceRes(terms_of_service=get_terms_of_service())
26 def GetCommunityGuidelines(self, request, context, session):
27 return resources_pb2.GetCommunityGuidelinesRes(
28 community_guidelines=[
29 resources_pb2.CommunityGuideline(
30 title=context.get_localized_string("community_guidelines", f"{cg['key']}_title"),
31 guideline=context.get_localized_string("community_guidelines", f"{cg['key']}_guideline"),
32 icon_svg=get_icon(cg["icon"]),
33 )
34 for cg in COMMUNITY_GUIDELINES
35 ]
36 )
38 def GetRegions(self, request, context, session):
39 return resources_pb2.GetRegionsRes(
40 regions=[
41 resources_pb2.Region(alpha3=alpha3, name=name) for alpha3, name in sorted(get_region_dict().items())
42 ]
43 )
45 def GetLanguages(self, request, context, session):
46 return resources_pb2.GetLanguagesRes(
47 languages=[
48 resources_pb2.Language(code=code, name=name) for code, name in sorted(get_language_dict().items())
49 ]
50 )
52 def GetBadges(self, request, context, session):
53 return resources_pb2.GetBadgesRes(
54 badges=[
55 resources_pb2.Badge(
56 id=badge["id"],
57 name=context.get_localized_string("badges", f"{badge['id']}_name"),
58 description=context.get_localized_string("badges", f"{badge['id']}_description"),
59 color=badge["color"],
60 )
61 for badge in get_badge_dict().values()
62 ]
63 )