fix: google provider auth
This commit is contained in:
@@ -9,7 +9,11 @@ import (
|
||||
|
||||
type UICustomerRepo interface {
|
||||
Get(id uint) (*model.Customer, error)
|
||||
GetByEmail(email string) (*model.Customer, error)
|
||||
GetByExternalProviderId(provider model.AuthProvider, id string) (*model.Customer, error)
|
||||
Find(langId uint, p find.Paging, filt *filters.FiltersList) (*find.Found[model.UserInList], error)
|
||||
Save(customer *model.Customer) error
|
||||
Create(customer *model.Customer) error
|
||||
}
|
||||
|
||||
type CustomerRepo struct{}
|
||||
@@ -29,6 +33,30 @@ func (repo *CustomerRepo) Get(id uint) (*model.Customer, error) {
|
||||
return &customer, err
|
||||
}
|
||||
|
||||
func (repo *CustomerRepo) GetByEmail(email string) (*model.Customer, error) {
|
||||
var customer model.Customer
|
||||
|
||||
err := db.DB.
|
||||
Preload("Role.Permissions").
|
||||
Where("email = ?", email).
|
||||
First(&customer).
|
||||
Error
|
||||
|
||||
return &customer, err
|
||||
}
|
||||
|
||||
func (repo *CustomerRepo) GetByExternalProviderId(provider model.AuthProvider, id string) (*model.Customer, error) {
|
||||
var customer model.Customer
|
||||
|
||||
err := db.DB.
|
||||
Preload("Role.Permissions").
|
||||
Where("provider = ? AND provider_id = ?", provider, id).
|
||||
First(&customer).
|
||||
Error
|
||||
|
||||
return &customer, err
|
||||
}
|
||||
|
||||
func (repo *CustomerRepo) Find(langId uint, p find.Paging, filt *filters.FiltersList) (*find.Found[model.UserInList], error) {
|
||||
found, err := find.Paginate[model.UserInList](langId, p, db.DB.
|
||||
Table("b2b_customers AS users").
|
||||
@@ -44,6 +72,59 @@ func (repo *CustomerRepo) Find(langId uint, p find.Paging, filt *filters.Filters
|
||||
return &found, err
|
||||
}
|
||||
|
||||
func (repo *CustomerRepo) Save(customer *model.Customer) error {
|
||||
return db.DB.Save(customer).Error
|
||||
}
|
||||
|
||||
func (repo *CustomerRepo) Create(customer *model.Customer) error {
|
||||
return db.DB.Create(customer).Error
|
||||
}
|
||||
|
||||
// func (repo *CustomerRepo) Search(
|
||||
// customerId uint,
|
||||
// partnerCode string,
|
||||
// p find.Paging,
|
||||
// filt *filters.FiltersList,
|
||||
// search string,
|
||||
// ) (found find.Found[model.UserInList], err error) {
|
||||
// words := strings.Fields(search)
|
||||
// if len(words) > 5 {
|
||||
// words = words[:5]
|
||||
// }
|
||||
|
||||
// query := ctx.DB().
|
||||
// Model(&model.Customer{}).
|
||||
// Select("customer.id AS id, customer.first_name as first_name, customer.last_name as last_name, customer.phone_number AS phone_number, customer.email AS email, count(distinct investment_plan_contract.id) as iiplan_purchases, count(distinct `order`.id) as single_purchases, entity.name as entity_name").
|
||||
// Where("customer.id <> ?", customerId).
|
||||
// Where("(customer.id IN (SELECT id FROM customer WHERE partner_code IN (WITH RECURSIVE partners AS (SELECT code AS dst FROM partner WHERE code = ? UNION SELECT code FROM partner JOIN partners ON partners.dst = partner.superior_code) SELECT dst FROM partners)) OR customer.recommender_code = ?)", partnerCode, partnerCode).
|
||||
// Scopes(view.CustomerListQuery())
|
||||
|
||||
// var conditions []string
|
||||
// var args []interface{}
|
||||
// for _, word := range words {
|
||||
|
||||
// conditions = append(conditions, `
|
||||
// (LOWER(first_name) LIKE ? OR
|
||||
// LOWER(last_name) LIKE ? OR
|
||||
// phone_number LIKE ? OR
|
||||
// LOWER(email) LIKE ?)
|
||||
// `)
|
||||
|
||||
// for i := 0; i < 4; i++ {
|
||||
// args = append(args, "%"+strings.ToLower(word)+"%")
|
||||
// }
|
||||
// }
|
||||
|
||||
// finalQuery := strings.Join(conditions, " AND ")
|
||||
|
||||
// query = query.Where(finalQuery, args...).
|
||||
// Scopes(filt.All()...)
|
||||
|
||||
// found, err = find.Paginate[V](ctx, p, query)
|
||||
|
||||
// return found, errs.Recorded(span, err)
|
||||
// }
|
||||
|
||||
// func (repo *ListRepo) ListUsers(id_lang uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.UserInList], error) {
|
||||
// var list []model.UserInList
|
||||
// var total int64
|
||||
|
||||
Reference in New Issue
Block a user