Sha256: 150c43723f3ab0b37330dc1d08b24c4bc66b0ad2a00897dd4a8fd139b0c193b2

Contents?: true

Size: 832 Bytes

Versions: 3

Compression:

Stored size: 832 Bytes

Contents

require 'flipper/api/action'
require 'flipper/api/v1/decorators/feature'
require 'json'

module Flipper
  module Api
    module V1
      module Actions
        class Features < Api::Action

          route %r{api/v1/features\Z}

          def get
            features = flipper.features.map { |feature|
              Decorators::Feature.new(feature).as_json
            }

            json_response({
              features: features
            })
          end

          def post
            feature_name = params.fetch('name') { json_error_response(:name_invalid) }
            feature = flipper[feature_name]
            flipper.adapter.add(feature)
            decorated_feature = Decorators::Feature.new(feature)
            json_response(decorated_feature.as_json, 200)
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
flipper-api-0.10.2 lib/flipper/api/v1/actions/features.rb
flipper-api-0.10.1 lib/flipper/api/v1/actions/features.rb
flipper-api-0.10.0 lib/flipper/api/v1/actions/features.rb