// updateDeveloper gets the most up to date dev data and saves it. func updateDeveloper(dev *db.Developer) error { // Get the developer from the devs token. developer, err := broome.GetDeveloper(dev.Token) if err != nil { return err } // Save the developer. log.Debug("Found developer", developer) dev.Developer = developer return dev.Save() }
// getToken gets the login information for a developer and gets a new token. func getToken(dev *db.Developer) error { var err error i := 0 token := "" // Get email and password up to 5 times, then report the error. for token == "" && i < 5 { validEmail := false email := "" pass := "" for !validEmail { email, err = prompt.Basic("Email", true) if err != nil { return err } _, err = mail.ParseAddress(email) if err == nil { validEmail = true } else { log.Println("yellow", "Try again! Valid email address required.") } } pass, err = prompt.Password("Password") if err != nil { return err } log.Debug("Collected email", email, "pass", pass) token, err = broome.GetTokenByLogin(email, pass) if err != nil { if i < 4 { log.Fprintln(os.Stderr, "red", errors.Newf(errors.ErrLoginRetryTmpl, err)) } i++ } } if err != nil { if err == errors.ErrInvalidLogin { err = errors.ErrTooManyLogins } return err } log.Debug("Got token", token) dev.Token = token return dev.Save() }