Skip to content

Commit 2fe6c24

Browse files
committed
fix(lint): fix all golangci-lint issues
- Remove 5 unused Player methods (getProperty, getStringProperty, etc.) - Fix capitalized error strings in pulseaudio (ST1005) - Merge variable declaration with assignment in systemd (S1021) - Fix unchecked Close() errors by logging them with logger.Info() - api/json.go: r.Body.Close() - backend/systemd/listener.go: conn.Close() and watcher.Close() All tests pass with 17.8% coverage. golangci-lint reports 0 issues. https://claude.ai/code/session_011G1Zfk4MvfH6TyvAPWSjxq
1 parent ad4abb5 commit 2fe6c24

4 files changed

Lines changed: 30 additions & 53 deletions

File tree

api/json.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"encoding/json"
55
"errors"
66
"net/http"
7+
8+
"github.com/b0bbywan/go-odio-api/logger"
79
)
810

911
type setVolumeRequest struct {
@@ -30,7 +32,11 @@ func withBody[T any](
3032
next func(w http.ResponseWriter, r *http.Request, req *T),
3133
) http.HandlerFunc {
3234
return func(w http.ResponseWriter, r *http.Request) {
33-
defer r.Body.Close()
35+
defer func() {
36+
if err := r.Body.Close(); err != nil {
37+
logger.Info("Failed to close request body: %v", err)
38+
}
39+
}()
3440

3541
var req T
3642
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {

backend/mpris/dbus.go

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -160,44 +160,3 @@ func (p *Player) getAllProperties(iface string) (map[string]dbus.Variant, error)
160160
err := call.Store(&props)
161161
return props, err
162162
}
163-
164-
// getProperty récupère une propriété D-Bus via le backend
165-
func (p *Player) getProperty(iface, prop string) (dbus.Variant, error) {
166-
return p.backend.getProperty(p.BusName, iface, prop)
167-
}
168-
169-
// getStringProperty récupère une propriété string
170-
func (p *Player) getStringProperty(iface, prop string) (string, bool) {
171-
v, err := p.getProperty(iface, prop)
172-
if err != nil {
173-
return "", false
174-
}
175-
return extractString(v)
176-
}
177-
178-
// getBoolProperty récupère une propriété bool
179-
func (p *Player) getBoolProperty(iface, prop string) (bool, bool) {
180-
v, err := p.getProperty(iface, prop)
181-
if err != nil {
182-
return false, false
183-
}
184-
return extractBool(v)
185-
}
186-
187-
// getFloat64Property récupère une propriété float64
188-
func (p *Player) getFloat64Property(iface, prop string) (float64, bool) {
189-
v, err := p.getProperty(iface, prop)
190-
if err != nil {
191-
return 0, false
192-
}
193-
return extractFloat64(v)
194-
}
195-
196-
// getInt64Property récupère une propriété int64
197-
func (p *Player) getInt64Property(iface, prop string) (int64, bool) {
198-
v, err := p.getProperty(iface, prop)
199-
if err != nil {
200-
return 0, false
201-
}
202-
return extractInt64(v)
203-
}

backend/pulseaudio/pulseaudio.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ func (pa *PulseAudioBackend) Close() {
293293

294294
func (pa *PulseAudioBackend) ToggleMuteMaster() error {
295295
if _, err := pa.client.ToggleMute(); err != nil {
296-
return fmt.Errorf("Failed to get default sink: %w", err)
296+
return fmt.Errorf("failed to get default sink: %w", err)
297297
}
298298
return nil
299299
}
@@ -306,7 +306,7 @@ func (pa *PulseAudioBackend) ToggleMute(name string) error {
306306
logger.Debug("[pulseaudio] toggling mute for client %q", name)
307307
sink, err := pa.client.GetSinkInputByName(name)
308308
if err != nil {
309-
return fmt.Errorf("Failed to get Sink Input: %w", err)
309+
return fmt.Errorf("failed to get sink input: %w", err)
310310
}
311311

312312
if err := sink.ToggleMute(); err != nil {
@@ -319,7 +319,7 @@ func (pa *PulseAudioBackend) SetVolume(name string, vol float32) error {
319319
logger.Debug("[pulseaudio] setting volume for client %q to %.2f", name, vol)
320320
sink, err := pa.client.GetSinkInputByName(name)
321321
if err != nil {
322-
return fmt.Errorf("Failed to get Sink Input: %w", err)
322+
return fmt.Errorf("failed to get sink input: %w", err)
323323
}
324324

325325
if err := sink.SetVolume(vol); err != nil {

backend/systemd/listener.go

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,9 @@ func (l *Listener) startScope(scope UnitScope, watched map[string]bool) error {
8282
matchRule := "type='signal',sender='org.freedesktop.systemd1'"
8383

8484
if err := conn.BusObject().Call("org.freedesktop.DBus.AddMatch", 0, matchRule).Err; err != nil {
85-
conn.Close()
85+
if closeErr := conn.Close(); closeErr != nil {
86+
logger.Info("Failed to close D-Bus connection: %v", closeErr)
87+
}
8688
return err
8789
}
8890
ch := make(chan *dbus.Signal, 10)
@@ -96,9 +98,7 @@ func (l *Listener) startScope(scope UnitScope, watched map[string]bool) error {
9698

9799
func (l *Listener) checkUnit(sig *dbus.Signal, scope UnitScope) (string, bool) {
98100
// Extraire le nom de l'unité depuis le path
99-
var unitName string
100-
101-
unitName = unitNameFromPath(sig.Path)
101+
unitName := unitNameFromPath(sig.Path)
102102
if unitName == "" {
103103
return unitName, false
104104
}
@@ -162,7 +162,11 @@ func (l *Listener) listen(
162162
scope UnitScope,
163163
watched map[string]bool,
164164
) {
165-
defer conn.Close()
165+
defer func() {
166+
if err := conn.Close(); err != nil {
167+
logger.Info("Failed to close D-Bus connection: %v", err)
168+
}
169+
}()
166170

167171
for {
168172
select {
@@ -200,12 +204,16 @@ func (l *Listener) StartHeadless() error {
200204

201205
// Vérifier que le répertoire existe
202206
if _, err := os.Stat(unitsDir); os.IsNotExist(err) {
203-
watcher.Close()
207+
if closeErr := watcher.Close(); closeErr != nil {
208+
logger.Info("Failed to close watcher: %v", closeErr)
209+
}
204210
return fmt.Errorf("units directory does not exist: %s", unitsDir)
205211
}
206212

207213
if err := watcher.Add(unitsDir); err != nil {
208-
watcher.Close()
214+
if closeErr := watcher.Close(); closeErr != nil {
215+
logger.Info("Failed to close watcher: %v", closeErr)
216+
}
209217
return err
210218
}
211219

@@ -217,7 +225,11 @@ func (l *Listener) StartHeadless() error {
217225
}
218226

219227
func (l *Listener) listenHeadless(watcher *fsnotify.Watcher) {
220-
defer watcher.Close()
228+
defer func() {
229+
if err := watcher.Close(); err != nil {
230+
logger.Info("Failed to close watcher: %v", err)
231+
}
232+
}()
221233

222234
for {
223235
select {

0 commit comments

Comments
 (0)