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

classconnect-grupo3 / courses-service / 15096736174

18 May 2025 01:24PM UTC coverage: 57.041% (-28.2%) from 85.286%
15096736174

Pull #8

github

rovifran
chore: renaming service files
Pull Request #8: Modules

9 of 199 new or added lines in 5 files covered. (4.52%)

320 of 561 relevant lines covered (57.04%)

0.6 hits per line

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

0.0
/src/controller/module_controlletr.go
1
package controller
2

3
import (
4
        "courses-service/src/model"
5
        "log/slog"
6
        "net/http"
7

8
        "github.com/gin-gonic/gin"
9
)
10

11
type ModuleController struct {
12
        service ModuleService
13
}
14

15
type ModuleService interface {
16
        CreateModule(module model.Module) (*model.Module, error)
17
        GetModuleById(id string) (*model.Module, error)
18
        UpdateModule(id string, module model.Module) (*model.Module, error)
19
        DeleteModule(id string) error
20
}
21

NEW
22
func NewModuleController(service ModuleService) *ModuleController {
×
NEW
23
        return &ModuleController{
×
NEW
24
                service: service,
×
NEW
25
        }
×
NEW
26
}
×
27

NEW
28
func (c *ModuleController) CreateModule(ctx *gin.Context) {
×
NEW
29
        slog.Debug("Creating module")
×
NEW
30

×
NEW
31
        var module model.Module
×
NEW
32
        if err := ctx.ShouldBindJSON(&module); err != nil {
×
NEW
33
                slog.Error("Error binding JSON", "error", err)
×
NEW
34
                ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
×
NEW
35
                return
×
NEW
36
        }
×
37

NEW
38
        createdModule, err := c.service.CreateModule(module)
×
NEW
39
        if err != nil {
×
NEW
40
                slog.Error("Error creating module", "error", err)
×
NEW
41
                ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
×
NEW
42
                return
×
NEW
43
        }
×
44

NEW
45
        slog.Debug("Module created", "module", createdModule)
×
NEW
46
        ctx.JSON(http.StatusCreated, createdModule)
×
47
}
48

NEW
49
func (c *ModuleController) GetModuleById(ctx *gin.Context) {
×
NEW
50
        slog.Debug("Getting module by ID")
×
NEW
51
        id := ctx.Param("id")
×
NEW
52

×
NEW
53
        module, err := c.service.GetModuleById(id)
×
NEW
54
        if err != nil {
×
NEW
55
                slog.Error("Error getting module by ID", "error", err)
×
NEW
56
                ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
×
NEW
57
                return
×
NEW
58
        }
×
59

NEW
60
        slog.Debug("Module retrieved", "module", module)
×
NEW
61
        ctx.JSON(http.StatusOK, module)
×
62
}
63

NEW
64
func (c *ModuleController) UpdateModule(ctx *gin.Context) {
×
NEW
65
        slog.Debug("Updating module")
×
NEW
66
        id := ctx.Param("id")
×
NEW
67

×
NEW
68
        var module model.Module
×
NEW
69
        if err := ctx.ShouldBindJSON(&module); err != nil {
×
NEW
70
                slog.Error("Error binding JSON", "error", err)
×
NEW
71
                ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
×
NEW
72
                return
×
NEW
73
        }
×
74

NEW
75
        updatedModule, err := c.service.UpdateModule(id, module)
×
NEW
76
        if err != nil {
×
NEW
77
                slog.Error("Error updating module", "error", err)
×
NEW
78
                ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
×
NEW
79
                return
×
NEW
80
        }
×
81

NEW
82
        slog.Debug("Module updated", "module", updatedModule)
×
NEW
83
        ctx.JSON(http.StatusOK, updatedModule)
×
84
}
85

NEW
86
func (c *ModuleController) DeleteModule(ctx *gin.Context) {
×
NEW
87
        slog.Debug("Deleting module")
×
NEW
88
        id := ctx.Param("id")
×
NEW
89

×
NEW
90
        err := c.service.DeleteModule(id)
×
NEW
91
        if err != nil {
×
NEW
92
                slog.Error("Error deleting module", "error", err)
×
NEW
93
                ctx.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
×
NEW
94
                return
×
NEW
95
        }
×
96

NEW
97
        slog.Debug("Module deleted", "id", id)
×
NEW
98
        ctx.JSON(http.StatusNoContent, nil)
×
99
}
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

© 2026 Coveralls, Inc