func (p PushToTwilio) Run() { if p.Message.IsBusiness { accountSid := os.Getenv("OAKED_TWILIO_ACCOUNT_SID") authToken := os.Getenv("OAKED_TWILIO_AUTH_TOKEN") urlStr := "https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/Messages.json" v := visit.Visit{ID: p.Message.VisitID} _, err := v.Get(p.Env) if err != nil { return } msg := url.Values{} msg.Set("To", v.PhoneNumber) msg.Set("From", "+15873174099") msg.Set("Body", p.Message.Text) rb := *strings.NewReader(msg.Encode()) client := &http.Client{} req, _ := http.NewRequest("POST", urlStr, &rb) req.SetBasicAuth(accountSid, authToken) req.Header.Add("Accept", "application/json") req.Header.Add("Content-Type", "application/x-www-form-urlencoded") client.Do(req) } }
// HandleVisitSurveysCreate - func HandleVisitSurveysCreate(e *config.Env, w http.ResponseWriter, r *http.Request) (int, error) { v := visit.Visit{ID: mux.Vars(r)["id"]} sCode, err := v.Get(e) if err != nil { return sCode, err } // Push survey only once. if !v.Survey { statusCode, err := visit.AddSurveyByVisitID(e, v.ID) if err != nil { return statusCode, err } // Send precanned message to user... m := message.Message{ VisitID: v.ID, Text: "Thanks for taking the time to visit us today! I just wanted to follow-up personally and see how your visit went. Thanks! -Samantha", IsBusiness: true, } jobrunner.Now(jobs.PushToTwilio{Env: e, Message: m}) } return http.StatusOK, nil }
// HandleGet (GET) // params: id (id) func HandleGet(e *config.Env, w http.ResponseWriter, r *http.Request) (int, error) { mID := mux.Vars(r)["id"] v := visit.Visit{ID: mID} sCode, err := v.Get(e) if err != nil { return sCode, err } writeJSON(w, &v) return http.StatusOK, nil }