commit debccdbef30ea7dbe3f7ccee62478eb3472c747f Author: Bernd-René Predota Date: Thu Nov 12 19:12:33 2020 +0100 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/main.go b/main.go new file mode 100644 index 0000000..3660e6e --- /dev/null +++ b/main.go @@ -0,0 +1,11 @@ +package main + +import ( + "gorm.io/driver/sqlite" + "gorm.io/gorm" +) + +func main() { + db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{}) + +} diff --git a/pkg/user/model.go b/pkg/user/model.go new file mode 100644 index 0000000..81d7f0a --- /dev/null +++ b/pkg/user/model.go @@ -0,0 +1,16 @@ +package user + +import ( + "gorm.io/gorm" +) + +// User data model +type User struct { + gorm.Model + Username string `gorm:"unique_index:username" json:"username,omitempty"` + Firstname string `json:"firstname,omitempty"` + Lastname string `json:"lastname,omitempty"` + Email string `json:"email,omitempty"` + PasswordHash string `json:"-"` + Active bool ` json:"active"` +} diff --git a/pkg/user/repository.go b/pkg/user/repository.go new file mode 100644 index 0000000..3c900d2 --- /dev/null +++ b/pkg/user/repository.go @@ -0,0 +1,20 @@ +package user + +// Reader +type Reader interface { + Read(id uint64) (*User, error) + ReadAll() ([]*User, error) +} + +// Writer +type Writer interface { + Update(user *User) error + Create(user *User) (uint64, error) + Delete(user *User) (uint64, error) +} + +// Repository repository interface +type Repository interface { + Reader + Writer +}