package decapi import ( "fmt" "io" "net/http" "go.uber.org/zap" ) func Tweet(username string) (string, error) { var basePath = "https://decapi.me/twitter/latest/" sugar := zap.NewExample().Sugar() defer sugar.Sync() // https://decapi.me/twitter/latest/forsen?url&no_rts // ?url adds the url at the end and &no_rts ignores retweets. resp, err := http.Get(fmt.Sprint(basePath + username + "?url" + "&no_rts")) if err != nil { sugar.Error(err) return "Something went wrong FeelsBadMan", err } defer resp.Body.Close() body, err := io.ReadAll(resp.Body) if err != nil { sugar.Error(err) return "Something went wrong FeelsBadMan", err } // If the response was a known error message return a message with the error. if string(body) == twitterUserNotFoundError { return "Something went wrong: Twitter username not found", err } else { // No known error was found, probably a tweet. resp := fmt.Sprintf("Latest Tweet from @%s: \"%s \"", username, body) return resp, nil } }