59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
|
package Users
|
||
|
|
||
|
import (
|
||
|
"github.com/nspcc-dev/neo-go/pkg/interop"
|
||
|
"github.com/nspcc-dev/neo-go/pkg/interop/native/std"
|
||
|
"github.com/nspcc-dev/neo-go/pkg/interop/storage"
|
||
|
)
|
||
|
|
||
|
type User struct {
|
||
|
name string
|
||
|
surname string
|
||
|
login string
|
||
|
password string
|
||
|
ownerHash interop.Hash160
|
||
|
likes int
|
||
|
}
|
||
|
|
||
|
func NewUser(name string, surname string, login string, password string, owner interop.Hash160) {
|
||
|
ctx := storage.GetContext()
|
||
|
|
||
|
existing_login := storage.Get(ctx, login)
|
||
|
if existing_login != nil {
|
||
|
panic("this login is taken by someone else")
|
||
|
}
|
||
|
|
||
|
user := User{
|
||
|
name: name,
|
||
|
surname: surname,
|
||
|
login: login,
|
||
|
password: password,
|
||
|
ownerHash: owner,
|
||
|
likes: 0,
|
||
|
}
|
||
|
|
||
|
saveUser(ctx, login, user)
|
||
|
}
|
||
|
|
||
|
func GetUser(ctx storage.Context, login string) User {
|
||
|
data := storage.Get(ctx, login)
|
||
|
|
||
|
if data == nil {
|
||
|
panic("User does not exist")
|
||
|
}
|
||
|
|
||
|
return std.Deserialize(data.([]byte)).(User)
|
||
|
}
|
||
|
|
||
|
func saveUser(ctx storage.Context, userLogin string, user User) {
|
||
|
storage.Put(ctx, userLogin, std.Serialize(user))
|
||
|
}
|
||
|
|
||
|
//TODO ну тит типа будет там ну типа число пистов типа да типо число комментов и типо тд типо
|
||
|
// func CountUserStatistic(User user) map[string]string {
|
||
|
// return userStats
|
||
|
// }
|
||
|
|
||
|
//TODO ну я хз как пойдет но мб надо написать сохранение поста через юзера, если варик с кринж конкатом строк не залетит
|
||
|
//func AddPostToUsersPostList(string postHash){}
|