• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kn-lim / dreamingway-bot / 12593784322

03 Jan 2025 06:30AM UTC coverage: 0.0% (-22.8%) from 22.759%
12593784322

Pull #5

github

web-flow
Merge 4d7e57259 into 311f96742
Pull Request #5: Refactor

0 of 112 new or added lines in 6 files covered. (0.0%)

0 of 112 relevant lines covered (0.0%)

0.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/internal/dreamingway/dreamingway.go
1
package dreamingway
2

3
import (
4
        "bytes"
5
        "encoding/json"
6
        "fmt"
7
        "net/http"
8
        "os"
9

10
        "github.com/bwmarrin/discordgo"
11
        "github.com/kn-lim/dreamingway-bot/internal/utils"
12
)
13

14
const (
15
        // Discord Webhook Base URL
16
        WEBHOOK_BASE_URL = "https://discord.com/api"
17
)
18

NEW
19
func DeferredMessage() discordgo.InteractionResponse {
×
NEW
20
        return discordgo.InteractionResponse{
×
NEW
21
                Type: discordgo.InteractionResponseDeferredChannelMessageWithSource,
×
NEW
22
        }
×
NEW
23
}
×
24

NEW
25
func SendDeferredMessage(appID, token, content string) error {
×
NEW
26
        payload, err := json.Marshal(map[string]string{
×
NEW
27
                "content": content,
×
NEW
28
        })
×
NEW
29
        if err != nil {
×
NEW
30
                if utils.Logger != nil {
×
NEW
31
                        utils.Logger.Errorw("failed to marshal payload",
×
NEW
32
                                "error", err,
×
NEW
33
                        )
×
NEW
34
                }
×
NEW
35
                return err
×
36
        }
37

NEW
38
        url := fmt.Sprintf("%v/v%v/webhooks/%v/%v", WEBHOOK_BASE_URL, os.Getenv("DISCORD_API_VERSION"), appID, token)
×
NEW
39

×
NEW
40
        req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload))
×
NEW
41
        if err != nil {
×
NEW
42
                if utils.Logger != nil {
×
NEW
43
                        utils.Logger.Errorw("failed to create http POST request",
×
NEW
44
                                "error", err,
×
NEW
45
                        )
×
NEW
46
                }
×
NEW
47
                return err
×
48
        }
NEW
49
        req.Header.Set("Content-Type", "application/json")
×
NEW
50
        req.Header.Set("Authorization", fmt.Sprintf("Bot %s", os.Getenv("DISCORD_BOT_TOKEN")))
×
NEW
51

×
NEW
52
        client := &http.Client{}
×
NEW
53
        resp, err := client.Do(req)
×
NEW
54
        if err != nil {
×
NEW
55
                if utils.Logger != nil {
×
NEW
56
                        utils.Logger.Errorw("failed to send http POST request",
×
NEW
57
                                "error", err,
×
NEW
58
                        )
×
NEW
59
                }
×
60
        }
NEW
61
        defer resp.Body.Close()
×
NEW
62

×
NEW
63
        if resp.StatusCode != http.StatusOK {
×
NEW
64
                var result map[string]interface{}
×
NEW
65
                if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
×
NEW
66
                        if utils.Logger != nil {
×
NEW
67
                                utils.Logger.Errorw("failed to decode response body",
×
NEW
68
                                        "error", err,
×
NEW
69
                                )
×
NEW
70
                        }
×
71
                }
NEW
72
                if utils.Logger != nil {
×
NEW
73
                        utils.Logger.Errorw("discord API error",
×
NEW
74
                                "error", result,
×
NEW
75
                        )
×
NEW
76
                }
×
NEW
77
                return fmt.Errorf("discord API error: %v", result)
×
78
        }
79

NEW
80
        return nil
×
81
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc