mirror of https://github.com/statping/statping
				
				
				
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
| package users
 | |
| 
 | |
| import (
 | |
| 	"github.com/statping/statping/database"
 | |
| 	"github.com/statping/statping/utils"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	db  database.Database
 | |
| 	log = utils.Log.WithField("type", "user")
 | |
| )
 | |
| 
 | |
| func SetDB(database database.Database) {
 | |
| 	db = database.Model(&User{})
 | |
| }
 | |
| 
 | |
| func Find(id int64) (*User, error) {
 | |
| 	var user User
 | |
| 	q := db.Where("id = ?", id).Find(&user)
 | |
| 	return &user, q.Error()
 | |
| }
 | |
| 
 | |
| func FindByUsername(username string) (*User, error) {
 | |
| 	var user User
 | |
| 	q := db.Where("username = ?", username).Find(&user)
 | |
| 	return &user, q.Error()
 | |
| }
 | |
| 
 | |
| func All() []*User {
 | |
| 	var users []*User
 | |
| 	db.Find(&users)
 | |
| 	return users
 | |
| }
 | |
| 
 | |
| func (u *User) Create() error {
 | |
| 	q := db.Create(u)
 | |
| 	if db.Error() == nil {
 | |
| 		log.Warnf("User #%d (%s) has been created", u.Id, u.Username)
 | |
| 	}
 | |
| 	return q.Error()
 | |
| }
 | |
| 
 | |
| func (u *User) Update() error {
 | |
| 	q := db.Update(u)
 | |
| 	return q.Error()
 | |
| }
 | |
| 
 | |
| func (u *User) Delete() error {
 | |
| 	q := db.Delete(u)
 | |
| 	if db.Error() == nil {
 | |
| 		log.Warnf("User #%d (%s) has been deleted", u.Id, u.Username)
 | |
| 	}
 | |
| 	return q.Error()
 | |
| }
 | |
| 
 | |
| func (u *User) BeforeCreate() error {
 | |
| 	u.Password = utils.HashPassword(u.Password)
 | |
| 	u.ApiKey = utils.NewSHA256Hash()
 | |
| 	u.ApiSecret = utils.NewSHA256Hash()
 | |
| 	return nil
 | |
| }
 |