Sha256: fc98013236e6c206d9d1dc48ef3e4423392d966f025d88a7e58d2a1a683ba8db

Contents?: true

Size: 1.33 KB

Versions: 14

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

module Evostream
  module Events
    # Action OutStreamCreated
    class OutStreamCreated < Event
      def initialize(id_flux, request)
        super(id_flux)
        @request = request
      end

      def execute
        stream_flux = what_flux.upcase.constantize
        model.streams.push(stream_flux.new(config_id: ex_config, flux: ex_flux))
        model.save
        @result = { status: 201, message: 'Action successfully executed.' }
      end

      private

      def what_flux
        hls? ? 'Hls' : 'Dash'
      end

      def hls?
        @request.key?(:hlsSettings) || @request.key?('hlsSettings')
      end

      def name_flux
        case what_flux
        when 'Hls' then 'playlistName'
        when 'Dash' then 'manifestName'
        end
      end

      def name_settings
        @request[select_key_setting]
      end

      def ex_config
        name_settings['configId']
      end

      def ex_flux
        "#{Evostream::Service.uri_out}/#{name_settings['groupName']}" \
          "/#{@request['name']}/#{name_settings[name_flux]}"
      end

      def select_key_setting
        if @request.key?(:hlsSettings)
          :hlsSettings
        elsif @request.key?(:dashSettings)
          :dashSettings
        elsif @request.key?(:pushSettings)
          :pushSettings
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
evostream-event-2.0.3 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.3.pre.1265906291 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.3.pre.1265756691 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.3.pre.1265752332 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.2 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.2.pre.994185738 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.0.pre.994170151 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.0.pre.994165179 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.0.pre.994159616 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.0.pre.856454391 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.0.pre.856447460 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.0.pre.856441003 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.0.pre.816370746 lib/evostream/event/event/events/out_stream_created.rb
evostream-event-2.0.0.pre.809444619 lib/evostream/event/event/events/out_stream_created.rb