Exemplo n.º 1
0
func (m CreateMessageAndPushToDevice) Run() {
	v := visit.Visit{PhoneNumber: m.TwilioResponse.Get("From")}

	_, err := v.GetByPhoneNumber(m.Env)

	if err != nil {
		logError(m.Env, err)
	}

	// Handle survey right off the bat.
	if v.Survey {
		// Send precanned message to user...
		msg := message.Message{
			VisitID:    v.ID,
			Text:       "Thanks for getting back to me, I really appreciate it :) -Samantha",
			IsBusiness: true,
		}

		_, err = msg.Create(m.Env)

		if err != nil {
			logError(m.Env, err)
		}

		jobrunner.Now(jobs.PushToTwilio{Env: m.Env, Message: msg})
	} else {
		msg := message.Message{
			Text:       m.TwilioResponse.Get("Body"),
			IsBusiness: false,
			VisitID:    v.ID,
		}

		_, err = msg.Create(m.Env)

		if err != nil {
			logError(m.Env, err)
		}

		msgs := make([]message.Message, 1)

		msgs[0] = msg

		pushToDevice(msgs)
	}
}