|
- package main
-
- import (
- "os"
- )
-
- type chatProcedureID struct {
- chatprocID string
- }
-
- func (m *chatProcedureID) setID(id string) {
- m.chatprocID = id
- }
-
- func (m *chatProcedureID) getID() string {
- return m.chatprocID
- }
-
- // a description of
- type chatProcedure interface {
- setID(id string) //set Procedure ID
- getID() (id string) //get Proecdure ID
-
- init(*openIDSessionData) //house keeping
- clean(*openIDSessionData) //house keeping
-
- start(*openIDSessionData, *InWechatMsg) //for first message
- serve(*openIDSessionData, *InWechatMsg) //for all subsequent message
- summary(*openIDSessionData) //after all message has been done
- intro(*openIDSessionData, *InWechatMsg) //initial text/video/voice introduction
- }
-
- //AllProc all procedure that we implemented
- var AllProc = map[string]chatProcedure{}
-
- func initAllProc() {
- //registerProc("Dummy", &procDummy)
- registerProc("Echo", &procEcho)
- registerProc("用户信息", &procGetBasicUserInfo)
- registerProc("搜索校友", &procSearchMember)
- }
-
- func registerProc(id string, proc chatProcedure) {
- AllProc[id] = proc
- proc.setID(id)
- }
-
- func getProcedurePath(openID, ProcedureName string) (path string) {
- path = procedureDir + string(os.PathSeparator) + ProcedureName + string(os.PathSeparator) + openID + ".json"
- ensurePathExist(path)
- return
- }
|