Class: SplitApi::Models::Identities

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/splitapi-rb/models/identities.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Identities



7
8
9
# File 'lib/splitapi-rb/models/identities.rb', line 7

def initialize(config)
  @config = config
end

Instance Method Details

#delete(traffic_type_id, environment_id, key) ⇒ Object

DELETE /trafficTypes/traffic_type_id/environments/environment_id/identities/key



82
83
84
85
86
87
# File 'lib/splitapi-rb/models/identities.rb', line 82

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

#save(identity) ⇒ Object

PUT /trafficTypes/traffic_type_id/environments/environment_id/identities/key



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/splitapi-rb/models/identities.rb', line 12

def save(identity)
  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],
      'organizationId' => identity[:organization_id],
      'values' => identity[:values]
    }.to_json, auth_headers).body)

  DataObjects::Identity.new(
    key: identity['key'],
    traffic_type_id: identity['trafficTypeId'],
    environment_id: identity['environmentId'],
    organization_id: identity['organizationId'],
    values: identity['values']
  )
end

#save_all(traffic_type_id, environment_id, identities) ⇒ Object

POST /trafficTypes/traffic_type_id/environments/environment_id/identities



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/splitapi-rb/models/identities.rb', line 34

def save_all(traffic_type_id, environment_id, identities)
  result = JSON.parse(RestClient.post(
    "#{@config.base_uri}/trafficTypes/#{traffic_type_id}" \
    "/environments/#{environment_id}" \
    "/identities",
    identities.to_json, auth_headers).body
  )

  objects = result['objects'].map do |identity|
    DataObjects::Identity.new(
      key: identity['key'],
      traffic_type_id: identity['trafficTypeId'],
      environment_id: identity['environmentId'],
      organization_id: identity['organizationId'],
      values: identity['values']
    )
  end

  {
    objects: objects,
    failed: result['failed'],
    metadata: result['metadata']
  }
end

#update(identity) ⇒ Object

PATCH /trafficTypes/traffic_type_id/environments/environment_id/identities/key



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/splitapi-rb/models/identities.rb', line 60

def update(identity)
  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],
      'organizationId' => identity[:organization_id],
      'values' => identity[:values]
    }.to_json, auth_headers).body)

  DataObjects::Identity.new(
    key: identity['key'],
    traffic_type_id: identity['trafficTypeId'],
    environment_id: identity['environmentId'],
    organization_id: identity['organizationId'],
    values: identity['values']
  )
end