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

1import logging 

2 

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) 

11 

12logger = logging.getLogger(__name__) 

13 

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] 

20 

21 

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()) 

25 

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 ) 

37 

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 ) 

44 

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 ) 

51 

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 )