사용자가 식당 목록 버튼을 선택하면 /message로 전달됩니다. 이를 처리하여 결과를 보여줍니다.
식당 선택
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
classMessage(Resource): #...생략...
defpost(self): select = Select(self.args)
if self.content == Const.BTN_SELECT_LUNCH: return select.show_restaurant_list() # 사용자 입력처리 user = fs.collection(Const.COL_USER).document(self.user_key).get() user_state = user.get(Const.FIELD_STATE)
if user_state == Const.STATE_SELECT_RESTAURANT: return select.restaurant_selected() # default return Util.show_start_menu()
먼저 정의한 버튼인지 확인합니다.
목록에 없으면 사용자계정에서 상태정보를 읽습니다.
1 2 3
# 사용자 입력처리 user = fs.collection(Const.COL_USER).document(self.user_key).get() user_state = user.get(Const.FIELD_STATE)
해당 상태에 맞도록 처리합니다. 식당 선택 상태 였으므로, select.restaurant_selected() 함수를 호출하여 처리합니다.
from conf.const import Const from conf.firebaseInit import fs from conf.util import Util from events.args import Args from events.select import Select
classResult(Args): defshow_result(self): try: # 해당 그룹에서 가장 많이 나온 순서대로 보여준다. user = fs.collection(Const.COL_USER).document(self.user_key).get() user_group = user.get(Const.FIELD_GROUP) except: print('Not Found User Group') return Select(self.args).show_group_list()
today = Util.get_day_str() today_format = '[{}]'.format(today) msg_list = [today_format] result_dict = {} try: result = fs.collection(Const.COL_SELECT).document(user_group).collection(Const.COL_TODAY).document(today).get() for user_key, restaurant in result._data.items(): if restaurant in result_dict: result_dict[restaurant] += 1 else: result_dict[restaurant] = 1
for item in sorted_list: title = item[0] count = item[1] msg_list.append('{}명 : {}'.format(count, title)) except: print('Error') msg_list.append('아직 아무도 선택하지 않았습니다.')