amocrm/internal/repository/user.go

97 lines
2.6 KiB
Go
Raw Normal View History

package repository
import (
"amocrm/internal/models"
"context"
"go.mongodb.org/mongo-driver/bson"
2024-04-11 09:55:26 +00:00
"go.mongodb.org/mongo-driver/mongo"
"time"
)
func (r *Repository) UpdateListUsers(ctx context.Context) error {
//TODO:IMPLEMENT ME
return nil
}
func (r *Repository) GettingUserFromCash(ctx context.Context) (*models.UserListResp, error) {
//TODO:IMPLEMENT ME
return &models.UserListResp{}, nil
}
2024-04-11 09:55:26 +00:00
func (r *Repository) SoftDeleteAccount(ctx context.Context, accountID string) error {
filter := bson.M{"AccountID": accountID}
update := bson.M{"$set": bson.M{"Deleted": true}}
_, err := r.mdbUser.UpdateOne(ctx, filter, update)
if err != nil {
return err
}
return nil
}
2024-04-11 09:55:26 +00:00
func (r *Repository) GetCurrentAccount(ctx context.Context, accountID string) (*models.User, error) {
var user models.User
err := r.mdbUser.FindOne(ctx, bson.M{"AccountID": accountID, "Deleted": false}).Decode(&user)
if err != nil {
if err == mongo.ErrNoDocuments {
return nil, ErrUserNotFound
}
return nil, err
}
return &user, nil
}
func (r *Repository) CreateAccount(ctx context.Context, accountID string) error {
userData := models.User{}
userData.Createdat = time.Now().Unix()
userData.Accountid = accountID
_, err := r.mdbUser.InsertOne(ctx, userData)
if err != nil {
return err
}
return nil
}
2024-04-11 13:58:31 +00:00
func (r *Repository) UpdateAccount(ctx context.Context, accountID string, userInfo models.User) error {
2024-04-11 09:29:17 +00:00
filter := bson.M{"AccountID": accountID}
update := bson.M{
"$set": bson.M{
2024-04-11 14:01:09 +00:00
"ID": userInfo.ID, // uuid аккаунта
"Name": userInfo.Name, // имя аккаунта амо
"Amocrmid": userInfo.Amocrmid, // id аккаунта амо
"Amouserid": userInfo.Amouserid, // id текущего пользователя в амо
"Country": userInfo.Country, // страна в настройках амо
"Subdomain": userInfo.Subdomain, // поддомен организации
"Group": userInfo.Group, // группы пользователя
"Role": userInfo.Role, // роль
2024-04-11 13:58:31 +00:00
"Email": userInfo.Email,
},
}
_, err := r.mdbUser.UpdateOne(ctx, filter, update)
if err != nil {
return err
}
return nil
}
2024-04-12 14:51:26 +00:00
func (r *Repository) CheckUsers(ctx context.Context, amouserid int, user models.User) error {
filter := bson.M{"Amouserid": amouserid}
update := bson.M{
"$set": bson.M{
"Name": user.Name, // имя аккаунта амо
"Group": user.Group, // группы пользователя
"Email": user.Email,
"Role": user.Role,
},
}
_, err := r.mdbUser.UpdateOne(ctx, filter, update)
if err != nil {
return err
}
return nil
}