카카오톡 플러스친구 스마트채팅 만들기 7 - 설정 & 그룹 설정
설정
#설정
버튼을 누를 경우를 처리합니다.
1 2 3 4 5 6 7 8 9 10 class Message (Resource ): def post (self ): select = Select(self.args) setting = Setting(self.args) if self.content == Const.BTN_SELECT_LUNCH: return select.show_restaurant_list() elif self.content == Const.BTN_SETTING: return setting.show_setting_list()
setting.show_setting_list() 함수를 호출합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 from firebase_admin import firestorefrom conf.const import Constfrom conf.firebaseInit import fsfrom conf.util import Utilfrom events.args import Argsclass Setting (Args ): def show_setting_list (self ): try : user = fs.collection(Const.COL_USER).document(self.user_key).get() group = user.get(Const.FIELD_GROUP) except : return Select.show_group_list() rst = { "message" : { "text" : '현재 [{}] 그룹으로 설정되어 있습니다.' .format (group) }, "keyboard" : { "type" : "buttons" , "buttons" : [Const.BTN_ADD_RESTAURANT, Const.BTN_DELETE_RESTAURANT, Const.BTN_SETTING_GROUP, Const.BTN_DOANTE, Const.BTN_GOTO_START] } } return Util.send_response(rst)
식당 추가
식당 삭제
그룹 설정
후원하기
시작으로
버튼 목록을 반환합니다.
그룹 설정
#그룹 선택
버튼이 눌러진 경우를 처리합니다. content를 비교하고 그룹목록을 버튼으로 반환합니다.
1 2 3 4 5 6 7 8 9 10 11 class Message (Resource ): def post (self ): select = Select(self.args) setting = Setting(self.args) result = Result(self.args) if self.content == Const.BTN_SELECT_LUNCH: return select.show_restaurant_list() elif self.content == Const.BTN_SETTING_GROUP: return select.show_group_list()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 class Select (Args ): def show_group_list (self ): fs.collection(Const.COL_USER).document(self.user_key).update({ Const.FIELD_STATE: Const.STATE_SELECT_GROUP }, firestore.CreateIfMissingOption(True )) groups = fs.collection(Const.COL_GROUP).get() group_list = [] for doc in groups: group_list.append(doc.id ) group_list.append(Const.BTN_GOTO_START) rst = { "message" : { "text" : '그룹을 선택해 주세요' }, "keyboard" : { "type" : "buttons" , "buttons" : group_list } } return Util.send_response(rst)