106 lines
3.2 KiB
Go
106 lines
3.2 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"time"
|
|
"github.com/gin-gonic/gin"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// {{.ServiceName}}Service gère les fonctionnalités de {{.ServiceName}}
|
|
type {{.ServiceName}}Service struct {
|
|
logger *zap.Logger
|
|
// Ajoutez vos dépendances ici
|
|
}
|
|
|
|
// New{{.ServiceName}}Service crée une nouvelle instance du service
|
|
func New{{.ServiceName}}Service(logger *zap.Logger) *{{.ServiceName}}Service {
|
|
return &{{.ServiceName}}Service{
|
|
logger: logger,
|
|
}
|
|
}
|
|
|
|
// Exemple de méthode - remplacez par vos méthodes
|
|
func (s *{{.ServiceName}}Service) Process{{.ServiceName}}(ctx context.Context, input string) (string, error) {
|
|
s.logger.Info("Processing {{.ServiceName}}", zap.String("input", input))
|
|
|
|
// Implémentation de votre logique métier
|
|
result := fmt.Sprintf("Processed: %s", input)
|
|
|
|
s.logger.Info("{{.ServiceName}} processed successfully", zap.String("result", result))
|
|
return result, nil
|
|
}
|
|
|
|
// Health check pour le service
|
|
func (s *{{.ServiceName}}Service) HealthCheck() error {
|
|
s.logger.Debug("{{.ServiceName}} health check")
|
|
// Implémentation du health check
|
|
return nil
|
|
}
|
|
|
|
// {{.ServiceName}}Handler gère les endpoints HTTP pour {{.ServiceName}}
|
|
type {{.ServiceName}}Handler struct {
|
|
service *{{.ServiceName}}Service
|
|
logger *zap.Logger
|
|
}
|
|
|
|
// New{{.ServiceName}}Handler crée un nouveau handler
|
|
func New{{.ServiceName}}Handler(service *{{.ServiceName}}Service, logger *zap.Logger) *{{.ServiceName}}Handler {
|
|
return &{{.ServiceName}}Handler{
|
|
service: service,
|
|
logger: logger,
|
|
}
|
|
}
|
|
|
|
// SetupRoutes configure les routes pour ce service
|
|
func (h *{{.ServiceName}}Handler) SetupRoutes(r *gin.RouterGroup) {
|
|
r.GET("/{{.ServiceName}}", h.Get{{.ServiceName}})
|
|
r.POST("/{{.ServiceName}}", h.Create{{.ServiceName}})
|
|
r.PUT("/{{.ServiceName}}/:id", h.Update{{.ServiceName}})
|
|
r.DELETE("/{{.ServiceName}}/:id", h.Delete{{.ServiceName}})
|
|
}
|
|
|
|
// Get{{.ServiceName}} récupère les données de {{.ServiceName}}
|
|
func (h *{{.ServiceName}}Handler) Get{{.ServiceName}}(c *gin.Context) {
|
|
h.logger.Info("Get {{.ServiceName}} request")
|
|
|
|
// Implémentation
|
|
c.JSON(200, gin.H{
|
|
"message": "Get {{.ServiceName}} endpoint",
|
|
"timestamp": time.Now(),
|
|
})
|
|
}
|
|
|
|
// Create{{.ServiceName}} crée une nouvelle entrée
|
|
func (h *{{.ServiceName}}Handler) Create{{.ServiceName}}(c *gin.Context) {
|
|
h.logger.Info("Create {{.ServiceName}} request")
|
|
|
|
// Implémentation
|
|
c.JSON(201, gin.H{
|
|
"message": "Create {{.ServiceName}} endpoint",
|
|
"timestamp": time.Now(),
|
|
})
|
|
}
|
|
|
|
// Update{{.ServiceName}} met à jour une entrée existante
|
|
func (h *{{.ServiceName}}Handler) Update{{.ServiceName}}(c *gin.Context) {
|
|
h.logger.Info("Update {{.ServiceName}} request")
|
|
|
|
// Implémentation
|
|
c.JSON(200, gin.H{
|
|
"message": "Update {{.ServiceName}} endpoint",
|
|
"timestamp": time.Now(),
|
|
})
|
|
}
|
|
|
|
// Delete{{.ServiceName}} supprime une entrée
|
|
func (h *{{.ServiceName}}Handler) Delete{{.ServiceName}}(c *gin.Context) {
|
|
h.logger.Info("Delete {{.ServiceName}} request")
|
|
|
|
// Implémentation
|
|
c.JSON(200, gin.H{
|
|
"message": "Delete {{.ServiceName}} endpoint",
|
|
"timestamp": time.Now(),
|
|
})
|
|
}
|