subscriber_receiver.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // Copyright 2019 Yunion
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package models
  15. import (
  16. "context"
  17. "yunion.io/x/onecloud/pkg/cloudcommon/db"
  18. )
  19. var SubscriberReceiverManager *SSubscriberReceiverManager
  20. func init() {
  21. SubscriberReceiverManager = &SSubscriberReceiverManager{
  22. SJointResourceBaseManager: db.NewJointResourceBaseManager(
  23. SSubscriberReceiver{},
  24. "subscriber_receiver_tbl",
  25. "subscriber_receiver",
  26. "subscriber_receivers",
  27. SubscriberManager,
  28. ReceiverManager,
  29. ),
  30. }
  31. SubscriberReceiverManager.SetVirtualObject(SubscriberReceiverManager)
  32. }
  33. type SSubscriberReceiverManager struct {
  34. db.SJointResourceBaseManager
  35. }
  36. type SSubscriberReceiver struct {
  37. db.SJointResourceBase
  38. SubscriberId string `width:"36" charset:"ascii" nullable:"false" index:"true"`
  39. ReceiverId string `width:"128" charset:"ascii" nullable:"false" index:"true"`
  40. }
  41. func (srm *SSubscriberReceiverManager) GetMasterFieldName() string {
  42. return "subscriber_id"
  43. }
  44. func (srm *SSubscriberReceiverManager) GetSlaveFieldName() string {
  45. return "receiver_id"
  46. }
  47. func (srm *SSubscriberReceiverManager) getBySubscriberId(sId string) ([]SSubscriberReceiver, error) {
  48. q := srm.Query().Equals("subscriber_id", sId)
  49. srs := make([]SSubscriberReceiver, 0, 2)
  50. err := db.FetchModelObjects(srm, q, &srs)
  51. if err != nil {
  52. return nil, err
  53. }
  54. return srs, nil
  55. }
  56. func (srm *SSubscriberReceiverManager) create(ctx context.Context, sId, receiverId string) (*SSubscriberReceiver, error) {
  57. sr := &SSubscriberReceiver{
  58. SubscriberId: sId,
  59. ReceiverId: receiverId,
  60. }
  61. return sr, srm.TableSpec().Insert(ctx, sr)
  62. }
  63. func (srm *SSubscriberReceiverManager) delete(sId, receiverId string) error {
  64. q := srm.Query().Equals("receiver_id", receiverId).Equals("subscriber_id", sId)
  65. var sr SSubscriberReceiver
  66. err := q.First(&sr)
  67. if err != nil {
  68. return err
  69. }
  70. sr.SetModelManager(srm, &sr)
  71. return sr.Delete(context.Background(), nil)
  72. }