feat(widget): finish chatwoot widget stub burn-down
This commit is contained in:
@@ -134,6 +134,16 @@ func (r *ContactRepo) FindByEmail(ctx context.Context, accountID uint, email str
|
||||
return &contact, nil
|
||||
}
|
||||
|
||||
// FindByIdentifier retrieves a contact by external identifier within an account.
|
||||
func (r *ContactRepo) FindByIdentifier(ctx context.Context, accountID uint, identifier string) (*model.Contact, error) {
|
||||
var contact model.Contact
|
||||
err := r.db.WithContext(ctx).Where("account_id = ? AND identifier = ?", accountID, identifier).First(&contact).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &contact, nil
|
||||
}
|
||||
|
||||
// CountByAccount returns total number of contacts in an account.
|
||||
func (r *ContactRepo) CountByAccount(ctx context.Context, accountID uint) (int64, error) {
|
||||
var total int64
|
||||
@@ -196,7 +206,7 @@ type ContactFilterParams struct {
|
||||
ContactSource string `json:"contact_source,omitempty" form:"contact_source"`
|
||||
InboxID *uint `json:"inbox_id,omitempty" form:"inbox_id"`
|
||||
Labels string `json:"labels,omitempty" form:"labels"`
|
||||
Status string `json:"status,omitempty" form:"status"` // active, inactive
|
||||
Status string `json:"status,omitempty" form:"status"` // active, inactive
|
||||
UpdatedWithin *int `json:"updated_within,omitempty" form:"updated_within"` // seconds
|
||||
}
|
||||
|
||||
@@ -254,4 +264,4 @@ func (r *ContactRepo) Filter(ctx context.Context, accountID uint, params Contact
|
||||
err := q.Offset(offset).Limit(limit).Order(orderClause).
|
||||
Find(&contacts).Error
|
||||
return contacts, total, err
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user