From d8338872c489024cbe86e46964319e70670d7829 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20PAILHAREY?= <rpailharey@grandlyon.com> Date: Tue, 4 Oct 2022 10:06:18 +0000 Subject: [PATCH] fix: partner status and custom popup init --- internal/models/models.go | 42 ++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/internal/models/models.go b/internal/models/models.go index 35d828b..73adcd0 100644 --- a/internal/models/models.go +++ b/internal/models/models.go @@ -1,6 +1,7 @@ package models import ( + "errors" "fmt" "forge.grandlyon.com/web-et-numerique/llle_project/backoffice-server/internal/common" @@ -30,13 +31,13 @@ func NewDataHandler() *DataHandler { if dbUser == "" || dbPassword == "" || dbName == "" { sqlClient, err = gorm.Open(sqlite.Open("backoffice.db"), &gorm.Config{}) if err != nil { - panic("failed to connect database") + panic("failed to connect sqlite database") } } else { dsn := fmt.Sprintf("%v:%v@tcp(%v:3306)/%v?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPassword, dbHost, dbName) sqlClient, err = gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { - panic("failed to connect database") + panic("failed to connect MySQL database") } } @@ -50,21 +51,30 @@ func NewDataHandler() *DataHandler { sqlClient.AutoMigrate(&Price{}) sqlClient.AutoMigrate(&Consent{}) - //TODO fix recreate on server init - // Create default partner status - sqlClient.Create(&PartnersInfo{ - GRDFFailure: false, - EnedisFailure: false, - EGLFailure: false, - NotificationActivated: false, - }) + // Check if partners info already exists + var partnersInfo PartnersInfo + err = sqlClient.First(&partnersInfo).Error + if errors.Is(err, gorm.ErrRecordNotFound) { + // Create default partner status + sqlClient.Create(&PartnersInfo{ + GRDFFailure: false, + EnedisFailure: false, + EGLFailure: false, + NotificationActivated: false, + }) + } - // Create default custom popup - sqlClient.Create(&CustomPopup{ - PopupEnabled: false, - Title: "", - Description: "", - }) + // Check if custom popup already exists + var customPopup CustomPopup + err = sqlClient.First(&customPopup).Error + if errors.Is(err, gorm.ErrRecordNotFound) { + // Create default custom popup + sqlClient.Create(&CustomPopup{ + PopupEnabled: false, + Title: "", + Description: "", + }) + } // Meilisearch setup meiliClient := meilisearch.NewClient(meilisearch.ClientConfig{ -- GitLab