globallimit.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package repository
  2. import (
  3. "context"
  4. "github.com/go-nunu/nunu-layout-advanced/internal/model"
  5. )
  6. type GlobalLimitRepository interface {
  7. GetGlobalLimit(ctx context.Context, id int64) (*model.GlobalLimit, error)
  8. AddGlobalLimit(ctx context.Context, req *model.GlobalLimit) error
  9. UpdateGlobalLimitByHostId(ctx context.Context, req *model.GlobalLimit) error
  10. DeleteGlobalLimitByHostId(ctx context.Context, hostId int64) error
  11. IsGlobalLimitExistByHostId(ctx context.Context, hostId int64) (bool, error)
  12. }
  13. func NewGlobalLimitRepository(
  14. repository *Repository,
  15. ) GlobalLimitRepository {
  16. return &globalLimitRepository{
  17. Repository: repository,
  18. }
  19. }
  20. type globalLimitRepository struct {
  21. *Repository
  22. }
  23. func (r *globalLimitRepository) GetGlobalLimit(ctx context.Context, id int64) (*model.GlobalLimit, error) {
  24. var globalLimit model.GlobalLimit
  25. return &globalLimit, nil
  26. }
  27. func (r *globalLimitRepository) AddGlobalLimit(ctx context.Context, req *model.GlobalLimit) error {
  28. if err := r.DB(ctx).Create(&req).Error; err != nil {
  29. return err
  30. }
  31. return nil
  32. }
  33. func (r *globalLimitRepository) UpdateGlobalLimitByHostId(ctx context.Context, req *model.GlobalLimit) error {
  34. if err := r.DB(ctx).Where("host_id = ?", req.HostId).Updates(&req).Error; err != nil {
  35. return err
  36. }
  37. return nil
  38. }
  39. func (r *globalLimitRepository) DeleteGlobalLimitByHostId(ctx context.Context, hostId int64) error {
  40. if err := r.DB(ctx).Where("host_id = ?", hostId).Delete(&model.GlobalLimit{}).Error; err != nil {
  41. return err
  42. }
  43. return nil
  44. }
  45. func (r *globalLimitRepository) IsGlobalLimitExistByHostId(ctx context.Context, hostId int64) (bool, error) {
  46. var count int64
  47. err := r.DB(ctx).Model(&model.GlobalLimit{}).Where("host_id = ?", hostId).Count(&count).Error
  48. if err != nil {
  49. return false, err
  50. }
  51. return count > 0, nil
  52. }