| if !valid { | if !valid { | ||||
| log.Println("Error: Invalid Input ") | log.Println("Error: Invalid Input ") | ||||
| } | } | ||||
| //are we in an existing procedure | |||||
| openID := in.header.FromUserName | openID := in.header.FromUserName | ||||
| //are we in an existing procedure | |||||
| inProc, state := isInProc(openID) //if inside a procedure, resume last saved state | inProc, state := isInProc(openID) //if inside a procedure, resume last saved state | ||||
| if inProc { | if inProc { | ||||
| state = serveProc(state, in) //transit to new state | state = serveProc(state, in) //transit to new state | ||||
| w.Header().Set("Content-Type", "text/xml; charset=utf-8") | w.Header().Set("Content-Type", "text/xml; charset=utf-8") | ||||
| fmt.Fprint(w, reply) | fmt.Fprint(w, reply) | ||||
| err := saveChatState(openID, state.Procedure, state) | |||||
| if err != nil { | |||||
| log.Println("Error Cannot Save chat sate") | |||||
| log.Println(err) | |||||
| log.Println(state) | |||||
| if !isEndingState(state) { | |||||
| err := saveChatState(openID, state.Procedure, state) | |||||
| if err != nil { | |||||
| log.Println("Error Cannot Save chat sate") | |||||
| log.Println(err) | |||||
| log.Println(state) | |||||
| } | |||||
| } else { //state ending | |||||
| cleanProcedure(openID, state.Procedure) | |||||
| } | } | ||||
| return | return | ||||
| } | } |