Skip to content

Commit

Permalink
feat: improve logging (#532)
Browse files Browse the repository at this point in the history
  • Loading branch information
rasitds authored Jan 19, 2025
1 parent 2089bb8 commit 4f5dede
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 31 deletions.
10 changes: 5 additions & 5 deletions apps/discord-bot/internal/command/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ func (c *commands) Respond(ctx context.Context, m *discordgo.MessageCreate, cmdN
func (c *commands) runCustomCommand(ctx context.Context, cmdName string, mC *discordgo.MessageCreate) {
cmdData, err := c.service.GetUserBotCommand(ctx, cmdName, mC.GuildID)
if err != nil {
log.Println("[USER COMMAND ERROR]:", err.Error())
log.Println("[runCustomCommand] USER BOT COMMAND ERROR:", err.Error())
}
if cmdData != nil {
cmdVar := helpers.GetCommandVariables(c.dS, cmdData, mC)
Expand All @@ -124,7 +124,7 @@ func (c *commands) runSystemCommand(ctx context.Context, cmdName string, params
if cmd, ok := cmds[cmdName]; ok {
cmdResp, err := cmd(ctx, m, cmdName, params)
if err != nil {
log.Println("[SYSTEM COMMAND ERROR]:", err.Error())
log.Println("[runSystemCommand] SYSTEM COMMAND ERROR:", err.Error())
return
}
c.Respond(ctx, m, cmdName+" "+strings.Join(params, " "), cmdResp.Message)
Expand All @@ -140,7 +140,7 @@ func (c *commands) Run(ctx context.Context, cmdName string, params []string, m *
// HANDLE COMMAND ALIASES
commandAlias, cmdAliasErr := c.service.GetCommandAlias(ctx, cmdName, m.GuildID)
if cmdAliasErr != nil {
log.Println("[COMMAND ALIAS ERROR]:", cmdAliasErr.Error())
log.Println("[command.Run] COMMAND ALIAS ERROR:", cmdAliasErr.Error())
}

if commandAlias != nil {
Expand All @@ -159,7 +159,7 @@ func (c *commands) Run(ctx context.Context, cmdName string, params []string, m *
// GLOBAL COMMANDS
cmdData, err := c.service.GetGlobalBotCommand(ctx, cmdName)
if err != nil {
log.Println("[GLOBAL COMMAND ERROR]:", err.Error())
log.Println("[command.Run] GLOBAL COMMAND ERROR:", err.Error())
return
}
if cmdData == nil {
Expand All @@ -186,7 +186,7 @@ func (c *commands) setCommandCooldown(username string) {
}

func deployCommands(discordClient *discordgo.Session) {
log.Println("DEPLOYING SLASH COMMANDS...")
log.Println("[deployCommands] Deploying slash commands...")
registeredCommands := make([]*discordgo.ApplicationCommand, len(commandMetadatas))
for i, v := range commandMetadatas {
cmd, err := discordClient.ApplicationCommandCreate(os.Getenv("CLIENT_ID"), "", v)
Expand Down
4 changes: 2 additions & 2 deletions apps/twitch-bot/internal/command/addtimer.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ func (c *commands) AddTimerCommand(context context.Context, message twitch.Priva

cmdTimers, err := c.service.GetCommandTimers(context, channelId)
if err != nil {
log.Println("There was an error while getting command timers errors: " + err.Error())
log.Println("[command.AddTimerCommand] There was an error while getting command timers errors: " + err.Error())
cmdResp.Message = config.ErrorMessage + "CT2"
return &cmdResp, nil
}
Expand All @@ -65,7 +65,7 @@ func (c *commands) AddTimerCommand(context context.Context, message twitch.Priva

ok, err := c.service.CreateCommandTimer(context, channelId, commandData.CommandName, interval)
if err != nil {
log.Println(err.Error())
log.Println("[command.AddTimerCommand] " + err.Error())
if ok {
cmdResp.Message = err.Error()
return &cmdResp, nil
Expand Down
8 changes: 4 additions & 4 deletions apps/twitch-bot/internal/command/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func (c *commands) Respond(ctx context.Context, message twitch.PrivateMessage, c
func (c *commands) runCustomCommand(ctx context.Context, cmdName string, privMsg twitch.PrivateMessage) {
cmdData, err := c.service.GetUserBotCommand(ctx, cmdName, privMsg.RoomID)
if err != nil {
log.Println("[USER COMMAND ERROR]:", err.Error())
log.Println("[runCustomCommand] USER BOT COMMAND ERROR:", err.Error())
}
if cmdData != nil {
cmdVar := helpers.GetCommandVariables(cmdData, privMsg)
Expand All @@ -102,7 +102,7 @@ func (c *commands) runSystemCommand(ctx context.Context, cmdName string, params
if cmd, ok := cmds[cmdName]; ok {
cmdResp, err := cmd(ctx, privMsg, cmdName, params)
if err != nil {
log.Println("[SYSTEM COMMAND ERROR]:", err.Error())
log.Println("[runSystemCommand] SYSTEM COMMAND ERROR:", err.Error())
return
}
if cmdResp != nil {
Expand All @@ -120,7 +120,7 @@ func (c *commands) Run(ctx context.Context, cmdName string, params []string, pri
// HANDLE COMMAND ALIASES
commandAlias, cmdAliasErr := c.service.GetCommandAlias(ctx, cmdName, privMsg.RoomID)
if cmdAliasErr != nil {
log.Println("[COMMAND ALIAS ERROR]:", cmdAliasErr.Error())
log.Println("[command.Run] COMMAND ALIAS ERROR:", cmdAliasErr.Error())
}

if commandAlias != nil {
Expand All @@ -141,7 +141,7 @@ func (c *commands) Run(ctx context.Context, cmdName string, params []string, pri
cmdName = strings.ToLower(cmdName)
cmdData, err := c.service.GetGlobalBotCommand(ctx, cmdName)
if err != nil {
log.Println("[GLOBAL COMMAND ERROR]:", err.Error())
log.Println("[command.Run] GLOBAL COMMAND ERROR:", err.Error())
return
}
if cmdData == nil {
Expand Down
2 changes: 1 addition & 1 deletion helper/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ func ValidateCommandContentLength(commandContent string) (string, bool) {
func StrToInt(intervalStr string) (int, error) {
interval, err := strconv.Atoi(intervalStr)
if err != nil {
log.Println("strconv.Atoi err", err)
log.Println("[StrToInt] Conversion error:", err)
return 0, errors.New("the interval value must be integer")
}

Expand Down
38 changes: 19 additions & 19 deletions pkg/twitchapi/twitch.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func (s *service) doRequest(method string, path string, token string) (*http.Res
// TODO: change this to the cooldown period
req, err := http.NewRequest(method, s.baseURL+path, nil)
if err != nil {
return nil, fmt.Errorf("failed to create request: %w", err)
return nil, fmt.Errorf("[twitchapi.doRequest] failed to create request: %w", err)
}

req.Header.Set("Client-ID", s.clientID)
Expand All @@ -30,28 +30,28 @@ func (s *service) doRequest(method string, path string, token string) (*http.Res
func (s *service) getUserInfo(query string, userIdOrName string) (*model.TwitchUserInfo, error) {
resp, err := s.doRequest("GET", fmt.Sprintf("/users?%s=%s", query, userIdOrName), s.accessToken)
if err != nil {
return nil, fmt.Errorf("failed to get user info: %w", err)
return nil, fmt.Errorf("[twitchapi.getUserInfo] failed to get user info: %w", err)
}
defer resp.Body.Close()

if resp.StatusCode != http.StatusOK {
respBodyBytes, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("failed to read response body: %w", err)
return nil, fmt.Errorf("[twitchapi.getUserInfo] failed to read response body: %w", err)
}
return nil, fmt.Errorf("twitch API request failed with status code: %d Body: %s", resp.StatusCode, string(respBodyBytes))
return nil, fmt.Errorf("[twitchapi.getUserInfo] twitch API request failed with status code: %d Body: %s", resp.StatusCode, string(respBodyBytes))
}

var data struct {
Data []model.TwitchUserInfo `json:"data"`
}
err = json.NewDecoder(resp.Body).Decode(&data)
if err != nil {
return nil, fmt.Errorf("error while parsing TwitchAPI response: %w", err)
return nil, fmt.Errorf("[twitchapi.getUserInfo] error while parsing TwitchAPI response: %w", err)
}

if len(data.Data) == 0 {
return nil, errors.New("no data")
return nil, errors.New("[twitchapi.getUserInfo] no data")
}

return &data.Data[0], nil
Expand All @@ -75,14 +75,14 @@ func (s *service) GiveShoutout(streamerUsername string, broadcasterId string, me
responseText = "The channel you are shouting out does not exist."
return &responseText, nil
}
return nil, errors.New("[GiveShoutout] s.GetUserInfo failed to get user info: " + err.Error())
return nil, errors.New("[twitchapi.GiveShoutout] s.GetUserInfo failed to get user info: " + err.Error())
}
moderatorId := s.botUserID

url := fmt.Sprintf("/chat/shoutouts?from_broadcaster_id=%s&to_broadcaster_id=%s&moderator_id=%s", fromBroadcasterId, toBroadcaster.ID, moderatorId)
resp, err := s.doRequest("POST", url, strings.TrimPrefix(os.Getenv("OAUTH"), "oauth:"))
if err != nil {
return nil, fmt.Errorf("twitch API request failed with status code: %d", resp.StatusCode)
return nil, fmt.Errorf("[twitchapi.GiveShoutout] twitch API request failed with status code: %d", resp.StatusCode)
}
defer resp.Body.Close()

Expand All @@ -93,11 +93,11 @@ func (s *service) GiveShoutout(streamerUsername string, broadcasterId string, me
if resp.StatusCode != http.StatusNoContent {
respBodyBytes, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("failed to read response body: %w", err)
return nil, fmt.Errorf("[twitchapi.GiveShoutout] failed to read response body: %w", err)
}

if err := json.Unmarshal(respBodyBytes, &errorResp); err != nil {
log.Println("[GiveShoutout] json.Unmarshal errorResp", err.Error())
log.Println("[twitchapi.GiveShoutout] json.Unmarshal errorResp:", err.Error())
}
}

Expand Down Expand Up @@ -132,12 +132,12 @@ func (s *service) GiveShoutout(streamerUsername string, broadcasterId string, me
func (s *service) CheckStreamStatus(username string) (bool, string, error) {
resp, err := s.doRequest("GET", fmt.Sprintf("/streams?user_login=%s", username), s.accessToken)
if err != nil {
return false, "", fmt.Errorf("failed to check stream status: %w", err)
return false, "", fmt.Errorf("[twitchapi.CheckStreamStatus] failed to check stream status: %w", err)
}
defer resp.Body.Close()

if resp.StatusCode != http.StatusOK {
return false, "", fmt.Errorf("twitch API request failed with status code: %d", resp.StatusCode)
return false, "", fmt.Errorf("[twitchapi.CheckStreamStatus] twitch API request failed with status code: %d", resp.StatusCode)
}

var data struct {
Expand All @@ -150,7 +150,7 @@ func (s *service) CheckStreamStatus(username string) (bool, string, error) {

err = json.NewDecoder(resp.Body).Decode(&data)
if err != nil {
return false, "", fmt.Errorf("error while parsing TwitchAPI response: %w", err)
return false, "", fmt.Errorf("[twitchapi.CheckStreamStatus] error while parsing TwitchAPI response: %w", err)
}

if len(data.Data) == 0 {
Expand All @@ -170,35 +170,35 @@ func (s *service) CheckMultipleStreamers(usernames []string) ([]model.TwitchStre

resp, err := s.doRequest("GET", fmt.Sprintf("/streams?user_id=%s", params), s.accessToken)
if err != nil {
return nil, fmt.Errorf("failed to check multiple streamers: %w", err)
return nil, fmt.Errorf("[twitchapi.CheckMultipleStreamers] failed to check multiple streamers: %w", err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
if resp.StatusCode == http.StatusUnauthorized {
hook := discordwebhook.Hook{
Username: "Senchabot Webhook",
Avatar_url: "https://avatars.githubusercontent.com/u/94869947?v=4",
Content: "[CheckMultipleStreamers] Twitch API token is not authorized",
Content: "[twitchapi.CheckMultipleStreamers] Twitch API token is not authorized",
}

payload, err := json.Marshal(hook)
if err != nil {
log.Println("[CheckMultipleStreamers] Error while webhook json Marshal:", err.Error())
log.Println("[twitchapi.CheckMultipleStreamers] Error while webhook json Marshal:", err.Error())
}
err = discordwebhook.ExecuteWebhook(os.Getenv("DISCORD_WEBHOOK_URL"), payload)
if err != nil {
log.Println("[CheckMultipleStreamers] ExecuteWebhook failed:", err.Error())
log.Println("[twitchapi.CheckMultipleStreamers] ExecuteWebhook failed:", err.Error())
}
}
return nil, fmt.Errorf("twitch API request failed with status code: %d", resp.StatusCode)
return nil, fmt.Errorf("[twitchapi.CheckMultipleStreamers] twitch API request failed with status code: %d", resp.StatusCode)
}

var data struct {
Data []model.TwitchStreamerData `json:"data"`
}
err = json.NewDecoder(resp.Body).Decode(&data)
if err != nil {
return nil, fmt.Errorf("error while parsing TwitchAPI response: %w", err)
return nil, fmt.Errorf("[twitchapi.CheckMultipleStreamers] error while parsing TwitchAPI response: %w", err)
}

return data.Data, nil
Expand Down

0 comments on commit 4f5dede

Please sign in to comment.