@@ -4,29 +4,30 @@ import (
4
4
"context"
5
5
"encoding/json"
6
6
"fmt"
7
- "log"
8
7
"time"
9
8
10
9
"github.com/staticbackendhq/core/config"
11
10
"github.com/staticbackendhq/core/internal"
11
+ "github.com/staticbackendhq/core/logger"
12
12
13
13
"github.com/go-redis/redis/v8"
14
14
)
15
15
16
16
type Cache struct {
17
17
Rdb * redis.Client
18
18
Ctx context.Context
19
+ log * logger.Logger
19
20
}
20
21
21
22
// NewCache returns an initiated Redis client
22
- func NewCache () * Cache {
23
+ func NewCache (log * logger. Logger ) * Cache {
23
24
var err error
24
25
var opt * redis.Options
25
26
26
27
if uri := config .Current .RedisURL ; len (uri ) > 0 {
27
28
opt , err = redis .ParseURL (uri )
28
29
if err != nil {
29
- log .Fatal ("invalid REDIS_URL value: " , err )
30
+ log .Fatal (). Err ( err ). Msg ( "invalid REDIS_URL value" )
30
31
}
31
32
} else {
32
33
opt = & redis.Options {
@@ -40,6 +41,7 @@ func NewCache() *Cache {
40
41
return & Cache {
41
42
Rdb : rdb ,
42
43
Ctx : context .Background (),
44
+ log : log ,
43
45
}
44
46
}
45
47
@@ -83,7 +85,7 @@ func (c *Cache) Subscribe(send chan internal.Command, token, channel string, clo
83
85
pubsub := c .Rdb .Subscribe (c .Ctx , channel )
84
86
85
87
if _ , err := pubsub .Receive (c .Ctx ); err != nil {
86
- log .Println ( "error establishing PubSub subscription" , err )
88
+ c . log .Error (). Err ( err ). Msg ( "error establishing PubSub subscription" )
87
89
return
88
90
}
89
91
@@ -94,7 +96,7 @@ func (c *Cache) Subscribe(send chan internal.Command, token, channel string, clo
94
96
case m := <- ch :
95
97
var msg internal.Command
96
98
if err := json .Unmarshal ([]byte (m .Payload ), & msg ); err != nil {
97
- log .Println ( "error parsing JSON message" , err )
99
+ c . log .Error (). Err ( err ). Msg ( "error parsing JSON message" )
98
100
_ = pubsub .Close ()
99
101
return
100
102
}
@@ -129,14 +131,14 @@ func (c *Cache) Publish(msg internal.Command) error {
129
131
sysmsg .IsSystemEvent = true
130
132
b , err := json .Marshal (sysmsg )
131
133
if err != nil {
132
- log .Println ( "error marshaling the system msg: " , err )
134
+ c . log .Error (). Err ( err ). Msg ( "error marshaling the system msg" )
133
135
return
134
136
}
135
137
136
138
sysctx , cancel := context .WithTimeout (context .Background (), 500 * time .Millisecond )
137
139
defer cancel ()
138
140
if err := c .Rdb .Publish (sysctx , "sbsys" , string (b )).Err (); err != nil {
139
- log .Println ( "error publishing to system channel: " , err )
141
+ c . log .Error (). Err ( err ). Msg ( "error publishing to system channel" )
140
142
}
141
143
}(msg )
142
144
@@ -146,21 +148,21 @@ func (c *Cache) Publish(msg internal.Command) error {
146
148
func (c * Cache ) PublishDocument (channel , typ string , v interface {}) {
147
149
subs , err := c .Rdb .PubSubNumSub (c .Ctx , channel ).Result ()
148
150
if err != nil {
149
- fmt . Println ("error getting db subscribers for " , channel )
151
+ c . log . Error (). Err ( err ). Msgf ("error getting db subscribers for " , channel )
150
152
return
151
153
}
152
154
153
155
count , ok := subs [channel ]
154
156
if ! ok {
155
- fmt . Println ( "cannot find channel in subs" , channel )
157
+ c . log . Warn (). Msgf ( "cannot find channel in subs: %d " , channel )
156
158
return
157
159
} else if count == 0 {
158
160
return
159
161
}
160
162
161
163
b , err := json .Marshal (v )
162
164
if err != nil {
163
- fmt . Println ( "error publishing db doc: " , err )
165
+ c . log . Error (). Err ( err ). Msg ( "error publishing db doc" )
164
166
return
165
167
}
166
168
@@ -171,7 +173,7 @@ func (c *Cache) PublishDocument(channel, typ string, v interface{}) {
171
173
}
172
174
173
175
if err := c .Publish (msg ); err != nil {
174
- fmt . Println ( "unable to publish db doc events:" , err )
176
+ c . log . Error (). Err ( err ). Msg ( "unable to publish db doc events" )
175
177
}
176
178
}
177
179
@@ -183,7 +185,8 @@ func (c *Cache) HasPermission(token, repo, payload string) bool {
183
185
184
186
docs := make (map [string ]interface {})
185
187
if err := json .Unmarshal ([]byte (payload ), & docs ); err != nil {
186
- fmt .Println ("error decoding docs for permissions check" , err )
188
+ c .log .Error ().Err (err ).Msg ("error decoding docs for permissions check" )
189
+
187
190
return false
188
191
}
189
192
0 commit comments