chore: update id order
This commit is contained in:
@@ -7,96 +7,40 @@ import (
|
||||
)
|
||||
|
||||
func (d *Database) GetDeliveryIssues(status string) ([]models.DeliveryIssue, error) {
|
||||
query := `
|
||||
SELECT id, command_id, issue_type, description, status,
|
||||
reported_by, COALESCE(resolved_by, ''), COALESCE(resolution, ''),
|
||||
created_at, updated_at
|
||||
FROM delivery_issues
|
||||
`
|
||||
|
||||
var args []any
|
||||
q := d.GDB.Order("created_at DESC")
|
||||
if status != "" {
|
||||
query += " WHERE status = $1"
|
||||
args = append(args, status)
|
||||
q = q.Where("status = ?", status)
|
||||
}
|
||||
|
||||
query += " ORDER BY created_at DESC"
|
||||
|
||||
rows, err := d.Query(query, args...)
|
||||
if err != nil {
|
||||
var issues []models.DeliveryIssue
|
||||
if err := q.Find(&issues).Error; err != nil {
|
||||
return nil, fmt.Errorf("erreur récupération problèmes: %w", err)
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var issues []models.DeliveryIssue
|
||||
for rows.Next() {
|
||||
var issue models.DeliveryIssue
|
||||
err := rows.Scan(
|
||||
&issue.ID,
|
||||
&issue.CommandID,
|
||||
&issue.IssueType,
|
||||
&issue.Description,
|
||||
&issue.Status,
|
||||
&issue.ReportedBy,
|
||||
&issue.ResolvedBy,
|
||||
&issue.Resolution,
|
||||
&issue.CreatedAt,
|
||||
&issue.UpdatedAt,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("erreur scan problème: %w", err)
|
||||
}
|
||||
issues = append(issues, issue)
|
||||
}
|
||||
|
||||
return issues, nil
|
||||
}
|
||||
|
||||
// CreateDeliveryIssue crée un nouveau problème
|
||||
func (d *Database) CreateDeliveryIssue(commandID int, issueType, description, reportedBy string) (*models.DeliveryIssue, error) {
|
||||
query := `
|
||||
INSERT INTO delivery_issues (command_id, issue_type, description, status, reported_by, created_at, updated_at)
|
||||
VALUES ($1, $2, $3, 'open', $4, NOW(), NOW())
|
||||
RETURNING id, command_id, issue_type, description, status, reported_by, created_at, updated_at
|
||||
`
|
||||
|
||||
var issue models.DeliveryIssue
|
||||
err := d.QueryRow(query, commandID, issueType, description, reportedBy).Scan(
|
||||
&issue.ID,
|
||||
&issue.CommandID,
|
||||
&issue.IssueType,
|
||||
&issue.Description,
|
||||
&issue.Status,
|
||||
&issue.ReportedBy,
|
||||
&issue.CreatedAt,
|
||||
&issue.UpdatedAt,
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
issue := models.DeliveryIssue{
|
||||
CommandID: commandID,
|
||||
IssueType: issueType,
|
||||
Description: description,
|
||||
Status: "open",
|
||||
ReportedBy: reportedBy,
|
||||
}
|
||||
if err := d.GDB.Create(&issue).Error; err != nil {
|
||||
return nil, fmt.Errorf("erreur création problème: %w", err)
|
||||
}
|
||||
|
||||
return &issue, nil
|
||||
}
|
||||
|
||||
// UpdateDeliveryIssue met à jour un problème
|
||||
func (d *Database) UpdateDeliveryIssue(issueID int, status, resolution, resolvedBy string) error {
|
||||
query := `
|
||||
UPDATE delivery_issues
|
||||
SET status = $1, resolution = $2, resolved_by = $3, updated_at = NOW()
|
||||
WHERE id = $4
|
||||
`
|
||||
|
||||
result, err := d.Exec(query, status, resolution, resolvedBy, issueID)
|
||||
if err != nil {
|
||||
return fmt.Errorf("erreur mise à jour problème: %w", err)
|
||||
result := d.GDB.Model(&models.DeliveryIssue{}).Where("id = ?", issueID).
|
||||
Updates(map[string]any{"status": status, "resolution": resolution, "resolved_by": resolvedBy})
|
||||
if result.Error != nil {
|
||||
return fmt.Errorf("erreur mise à jour problème: %w", result.Error)
|
||||
}
|
||||
|
||||
rowsAffected, _ := result.RowsAffected()
|
||||
if rowsAffected == 0 {
|
||||
if result.RowsAffected == 0 {
|
||||
return fmt.Errorf("problème non trouvé")
|
||||
}
|
||||
|
||||
log.Printf("✅ Problème %d mis à jour: status=%s", issueID, status)
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user