require 'rest-client' require 'json' module SplitApi module Models class Identities < BaseModel def initialize(config) @config = config end # PUT /trafficTypes/{traffic_type_id}/environments/{environment_id}/identities/{key} def save(identity) JSON.parse(RestClient.put( "#{@config.base_uri}/trafficTypes/#{identity[:traffic_type_id]}" \ "/environments/#{identity[:environment_id]}/identities/#{identity[:key]}", { 'key' => identity[:key], 'trafficTypeId' => identity[:traffic_type_id], 'environmentId' => identity[:environment_id], 'values' => identity[:values] }.to_json, auth_headers).body).map { |k, v| [to_underscore(k), v] }.to_h end # POST /trafficTypes/{traffic_type_id}/environments/{environment_id}/identities def save_all(traffic_type_id, environment_id, identities) JSON.parse(RestClient.post( "#{@config.base_uri}/trafficTypes/#{traffic_type_id}" \ "/environments/#{environment_id}" \ "/identities", identities.to_json, auth_headers).body )['objects'].map do |identity| identity.map { |k, v| [to_underscore(k), v] }.to_h end end # PATCH /trafficTypes/{traffic_type_id}/environments/{environment_id}/identities/{key} def update(identity) JSON.parse(RestClient.patch( "#{@config.base_uri}/trafficTypes/#{identity[:traffic_type_id]}" \ "/environments/#{identity[:environment_id]}/identities/#{identity[:key]}", { 'key' => identity[:key], 'trafficTypeId' => identity[:traffic_type_id], 'environmentId' => identity[:environment_id], 'values' => identity[:values] }.to_json, auth_headers).body).map { |k, v| [to_underscore(k), v] }.to_h end # DELETE /trafficTypes/{traffic_type_id}/environments/{environment_id}/identities/{key} def delete(traffic_type_id, environment_id, key) RestClient.delete( "#{@config.base_uri}/trafficTypes/#{traffic_type_id}/environments/" \ "#{environment_id}/identities/#{key}", auth_headers) == 'true' end end end end