about summary refs log tree commit diff
path: root/pkg/discord/discord.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/discord/discord.go')
-rw-r--r--pkg/discord/discord.go20
1 files changed, 11 insertions, 9 deletions
diff --git a/pkg/discord/discord.go b/pkg/discord/discord.go
index fd60edd..bd8a7f7 100644
--- a/pkg/discord/discord.go
+++ b/pkg/discord/discord.go
@@ -5,26 +5,28 @@ import (
 	"encoding/json"
 	"errors"
 	"fmt"
-	"log"
 	"math/rand"
 	"net/http"
 	"time"
 
 	"github.com/gorilla/websocket"
+	"github.com/rs/zerolog"
 )
 
 type Discord struct {
 	token        string
+	logger       *zerolog.Logger
 	conn         *websocket.Conn
 	eventHandler *EventHandlerImpl
 	rest         REST
 }
 
-func NewClient(token string) *Discord {
+func NewClient(token string, logger *zerolog.Logger) *Discord {
 	token = "Bot " + token
 
 	return &Discord{
 		token:        token,
+		logger:       logger,
 		conn:         nil,
 		eventHandler: NewEventHandler(),
 		rest:         NewREST(token),
@@ -87,14 +89,14 @@ func (d *Discord) heartbeat(ctx context.Context, interval uint64) {
 		case <-ctx.Done():
 			return
 		case <-ticker.C:
-			fmt.Println("sending heartbeat.")
+			d.logger.Debug().Msg("sending heartbeat")
 
 			msg := GatewayPayload[any]{
 				Op: GATEWAY_OP_HEARTBEAT,
 			}
 
 			if err := d.conn.WriteJSON(msg); err != nil {
-				log.Fatalf("error sending heartbeat: %s\n", err)
+				d.logger.Error().Err(err).Msg("error sending heartbeat")
 			}
 		}
 	}
@@ -124,7 +126,7 @@ func (d *Discord) identify() error {
 		return err
 	}
 
-	fmt.Printf("identify response payload: %+v\n", res)
+	d.logger.Debug().Msgf("identify response payload: %+v", res)
 
 	if res.Op != GATEWAY_OP_DISPATCH {
 		return fmt.Errorf("expected opcode %d, got %d", GATEWAY_OP_DISPATCH, res.Op)
@@ -141,7 +143,7 @@ func (d *Discord) listen(ctx context.Context) {
 	for {
 		var msg GatewayPayload[json.RawMessage]
 		if err := d.conn.ReadJSON(&msg); err != nil {
-			log.Fatalf("error reading message: %s\n", err)
+			d.logger.Error().Err(err).Msg("error reading message")
 		}
 
 		select {
@@ -156,13 +158,13 @@ func (d *Discord) listen(ctx context.Context) {
 func (d *Discord) onEvent(msg GatewayPayload[json.RawMessage]) error {
 	switch msg.Op {
 	case GATEWAY_OP_HEARTBEAT_ACK:
-		fmt.Println("received heartbeat ack.")
+		d.logger.Debug().Msg("received heartbeat ack.")
 	case GATEWAY_OP_HEARTBEAT:
 		return errors.New("on demand heartbeat not implemented")
 	case GATEWAY_OP_DISPATCH:
 		return d.onDispatch(msg.EventName, msg.Data)
 	default:
-		fmt.Printf("received unknown opcode: %d\n", msg.Op)
+		d.logger.Warn().Msgf("received unknown opcode: %d", msg.Op)
 	}
 
 	return nil
@@ -178,7 +180,7 @@ func (d *Discord) onDispatch(eventName string, body json.RawMessage) error {
 
 		d.eventHandler.Fire(DISCORD_EVENT_MESSAGE, payload)
 	default:
-		fmt.Println("received unknown event:", eventName)
+		d.logger.Warn().Msgf("received unknown event: %s", eventName)
 	}
 
 	return nil