package repository import ( "amocrm/internal/models" "context" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" "time" ) func (r *Repository) WebhookCreate(ctx context.Context, tokens models.Token) error { filter := bson.M{"AccountID": tokens.AccountID} update := bson.M{ "$set": tokens, } opts := options.Update().SetUpsert(true) _, err := r.tokens.UpdateOne(ctx, filter, update, opts) if err != nil { return err } return nil } func (r *Repository) WebhookUpdate(ctx context.Context, tokens models.Token, tipe bool) error { filter := bson.M{"AccountID": tokens.AccountID} var update bson.M if tipe { update = bson.M{ "$set": bson.M{ "AccessToken": tokens.AccessToken, "RefreshToken": tokens.RefreshToken, //если мы по рефрешу аксес токен обновляем то рефреш остается прежним "Expiration": tokens.Expiration, }, } } if !tipe { update = bson.M{ "$set": bson.M{ // когда рефреш обновляем то и обновляем ему время создания CreatedAt "AccessToken": tokens.AccessToken, "RefreshToken": tokens.RefreshToken, "Expiration": tokens.Expiration, "CreatedAt": time.Now().Unix(), }, } } _, err := r.tokens.UpdateOne(ctx, filter, update) if err != nil { return err } return nil } func (r *Repository) WebhookDelete(ctx context.Context) error { //TODO:IMPLEMENT ME return nil }