globallimit.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. GetGlobalLimitByHostId(ctx context.Context, hostId int64) (*model.GlobalLimit, error)
  13. }
  14. func NewGlobalLimitRepository(
  15. repository *Repository,
  16. ) GlobalLimitRepository {
  17. return &globalLimitRepository{
  18. Repository: repository,
  19. }
  20. }
  21. type globalLimitRepository struct {
  22. *Repository
  23. }
  24. func (r *globalLimitRepository) GetGlobalLimit(ctx context.Context, id int64) (*model.GlobalLimit, error) {
  25. var globalLimit model.GlobalLimit
  26. return &globalLimit, nil
  27. }
  28. func (r *globalLimitRepository) AddGlobalLimit(ctx context.Context, req *model.GlobalLimit) error {
  29. if err := r.DB(ctx).Create(&req).Error; err != nil {
  30. return err
  31. }
  32. return nil
  33. }
  34. func (r *globalLimitRepository) UpdateGlobalLimitByHostId(ctx context.Context, req *model.GlobalLimit) error {
  35. if err := r.DB(ctx).Where("host_id = ?", req.HostId).Updates(&req).Error; err != nil {
  36. return err
  37. }
  38. return nil
  39. }
  40. func (r *globalLimitRepository) DeleteGlobalLimitByHostId(ctx context.Context, hostId int64) error {
  41. if err := r.DB(ctx).Where("host_id = ?", hostId).Delete(&model.GlobalLimit{}).Error; err != nil {
  42. return err
  43. }
  44. return nil
  45. }
  46. func (r *globalLimitRepository) IsGlobalLimitExistByHostId(ctx context.Context, hostId int64) (bool, error) {
  47. var count int64
  48. err := r.DB(ctx).Model(&model.GlobalLimit{}).Where("host_id = ?", hostId).Count(&count).Error
  49. if err != nil {
  50. return false, err
  51. }
  52. return count > 0, nil
  53. }
  54. func (r *globalLimitRepository) GetGlobalLimitByHostId(ctx context.Context, hostId int64) (*model.GlobalLimit, error) {
  55. var globalLimit model.GlobalLimit
  56. if err := r.DB(ctx).Where("host_id = ?", hostId).First(&globalLimit).Error; err != nil {
  57. return nil, err
  58. }
  59. return &globalLimit, nil
  60. }