43 lines
827 B
Go
43 lines
827 B
Go
package api
|
|
|
|
import (
|
|
"git.artlef.fr/PersonalLibraryManager/internal/model"
|
|
"golang.org/x/crypto/bcrypt"
|
|
)
|
|
|
|
func (b bookPostCreate) toBook(user *model.User) model.Book {
|
|
return model.Book{
|
|
Title: b.Title,
|
|
Author: b.Author,
|
|
AddedBy: *user,
|
|
}
|
|
}
|
|
|
|
func fromUserBookDb(b *model.UserBook) bookUserGet {
|
|
return bookUserGet{
|
|
Title: b.Book.Title,
|
|
Author: b.Book.Author,
|
|
Rating: b.Rating,
|
|
}
|
|
}
|
|
|
|
func (u userSignup) toUser() (model.User, error) {
|
|
user := model.User{
|
|
Name: u.Username,
|
|
Password: "",
|
|
}
|
|
hashedPassword, err := bcrypt.GenerateFromPassword([]byte(u.Password), bcrypt.DefaultCost)
|
|
if err != nil {
|
|
return user, err
|
|
}
|
|
user.Password = string(hashedPassword)
|
|
return user, nil
|
|
}
|
|
|
|
func fromBookDb(b *model.Book) bookSearchGet {
|
|
return bookSearchGet{
|
|
Title: b.Title,
|
|
Author: b.Author,
|
|
}
|
|
}
|