summaryrefslogtreecommitdiff
path: root/repository
diff options
context:
space:
mode:
authorBobby <[email protected]>2025-12-22 13:46:50 +0530
committerBobby <[email protected]>2025-12-22 13:46:50 +0530
commit32ee8047eba06c9f1c7575b66fc0f9195657ac04 (patch)
treeed781e7b05aeba0b5db78e69918edd6a0928c9e1 /repository
parentf17d9142781eb1a659ea53311d9225b244ad209c (diff)
downloadlain-32ee8047eba06c9f1c7575b66fc0f9195657ac04.tar.xz
lain-32ee8047eba06c9f1c7575b66fc0f9195657ac04.zip
auth engine, basic login working
Diffstat (limited to 'repository')
-rw-r--r--repository/preferences.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/repository/preferences.go b/repository/preferences.go
new file mode 100644
index 0000000..1109a86
--- /dev/null
+++ b/repository/preferences.go
@@ -0,0 +1,35 @@
+package repository
+
+import (
+ "lain/database"
+ "lain/models"
+ "lain/types"
+
+ "gorm.io/gorm"
+)
+
+func GetPreferences(formData types.LoginForm) (*models.Preferences, error) {
+ var preferences models.Preferences
+
+ if err := database.DB.Where("email = ?", formData.Email).First(&preferences).Error; err != nil {
+ if err == gorm.ErrRecordNotFound {
+ return CreateDefaultPreferences(formData)
+ }
+ return nil, err
+ }
+
+ return &preferences, nil
+}
+
+func CreateDefaultPreferences(formData types.LoginForm) (*models.Preferences, error) {
+ preferences := models.Preferences{
+ Email: formData.Email,
+ Authorization: formData.Password,
+ }
+
+ if err := database.DB.Create(&preferences).Error; err != nil {
+ return nil, err
+ }
+
+ return &preferences, nil
+}