initial commit

This commit is contained in:
wt committed 2025-05-27 18:20:05 +07:00
commit 55dbc36b92
9 files changed
+396

No files matched your search

+85
View File
@@ -0,0 +1,85 @@
package database
import (
"encoding/json"
"errors"
"fmt"
"form/model"
"os"
"strings"
"gorm.io/gorm"
)
func CreateUser(user *model.User) error {
e := db.Where(model.User{
Username: user.Username,
}).FirstOrCreate(&user).Error
if e != nil {
return e
}
return nil
}
func GetUserById(id string) (*model.User, error) {
var user model.User
e := db.First(&user, "id = ?", id).Error
if e != nil {
if errors.Is(e, gorm.ErrRecordNotFound) {
return nil, fmt.Errorf("user not found")
}
return nil, e
}
return &user, nil
}
func GetUserByUsername(username string) (*model.User, error) {
var user model.User
e := db.First(&user, "username = ?", username).Error
if e != nil {
if errors.Is(e, gorm.ErrRecordNotFound) {
return nil, fmt.Errorf("user not found")
}
return nil, e
}
return &user, nil
}
func DeleteUser(id string) error {
var user model.User
e := db.First(&user, "id = ?", id).Error
if e != nil {
if errors.Is(e, gorm.ErrRecordNotFound) {
return fmt.Errorf("user not found")
}
return e
}
e = db.Delete(&user).Error
if e != nil {
if errors.Is(e, gorm.ErrRecordNotFound) {
return fmt.Errorf("user not found")
}
return e
}
return nil
}
func GetUsersFromFile(filename string) []model.User {
data, e := os.ReadFile(filename)
if e != nil {
panic(e)
}
decoder := json.NewDecoder(strings.NewReader(string(data)))
var res []model.User
decoder.Decode(&res)
return res
}
func GetAllUsers() ([]model.User, error) {
var users []model.User
e := db.Find(&users).Error
if e != nil {
return nil, e
}
return users, nil
}