카카오톡 플러스친구 스마트채팅 만들기 7 - 설정 & 그룹 설정

카카오톡 플러스친구 스마트채팅 만들기 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 firestore

from conf.const import Const
from conf.firebaseInit import fs
from conf.util import Util
from events.args import Args


class 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)
공유하기