Code Duplication    Length = 30-33 lines in 2 locations

lib/ringcentral_sdk/rest/subscription.rb 2 locations

@@ 96-128 (lines=33) @@
93
      end
94
    end
95
96
    def renew(events = nil)
97
      set_events(events) if events.is_a? Array
98
99
      unless alive?
100
        raise 'Subscription is not alive'
101
      end
102
103
      if !@event_filters.is_a?(Array) || @event_filters.length ==0
104
        raise 'Events are undefined'
105
      end
106
 
107
      _clear_timeout()
108
109
      begin
110
        response = @_client.http.put do |req|
111
          req.url 'subscription/' + @_subscription['id'].to_s
112
          req.headers['Content-Type'] = 'application/json'
113
          req.body = {
114
            eventFilters: @_client.create_urls(@event_filters)
115
          }
116
        end
117
118
        set_subscription response.body
119
        changed
120
        notify_observers response
121
        return response
122
      rescue StandardError => e
123
        reset()
124
        changed
125
        notify_observers e
126
        raise 'Renew HTTP Request Error'
127
      end
128
    end
129
130
    def remove()
131
      unless alive?
@@ 65-94 (lines=30) @@
62
      @event_filters = events
63
    end
64
65
    def subscribe(events=nil)
66
      set_events(events) if events.is_a? Array
67
68
      if !@event_filters.is_a?(Array) || @event_filters.length == 0
69
        raise 'Events are undefined'
70
      end
71
72
      begin
73
        response = @_client.http.post do |req|
74
          req.url 'subscription'
75
          req.headers['Content-Type'] = 'application/json'
76
          req.body = {
77
            eventFilters: @_client.create_urls(@event_filters),
78
            deliveryMode: {
79
              transportType: 'PubNub'
80
            }
81
          }
82
        end
83
        set_subscription response.body
84
        _subscribe_at_pubnub()
85
        changed
86
        notify_observers response
87
        return response
88
      rescue StandardError => e
89
        reset()
90
        changed
91
        notify_observers(e)
92
        raise 'Subscribe HTTP Request Error: ' + e.to_s
93
      end
94
    end
95
96
    def renew(events = nil)
97
      set_events(events) if events.is_a? Array