cognito-client 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +2 -1
  3. data/Gemfile +37 -0
  4. data/Guardfile +4 -0
  5. data/README.md +55 -18
  6. data/Rakefile +3 -5
  7. data/bin/console +1 -1
  8. data/circle.yml +7 -0
  9. data/cognito.gemspec +4 -6
  10. data/config/devtools.yml +2 -0
  11. data/config/errors.yml +2 -0
  12. data/config/flay.yml +5 -0
  13. data/config/flog.yml +5 -0
  14. data/config/mutant.yml +6 -0
  15. data/config/reek.yml +111 -0
  16. data/config/rubocop.yml +91 -0
  17. data/config/yardstick.yml +2 -0
  18. data/lib/cognito/client.rb +59 -96
  19. data/lib/cognito/client/command.rb +34 -0
  20. data/lib/cognito/client/commands/create_identity.rb +22 -0
  21. data/lib/cognito/client/commands/create_identity_assessment.rb +26 -0
  22. data/lib/cognito/client/commands/create_identity_search.rb +37 -0
  23. data/lib/cognito/client/commands/create_profile.rb +24 -0
  24. data/lib/cognito/client/commands/mixins/create_behavior.rb +20 -0
  25. data/lib/cognito/client/commands/retrieve_identity_location.rb +28 -0
  26. data/lib/cognito/client/commands/retrieve_identity_search_job.rb +40 -0
  27. data/lib/cognito/client/connection.rb +36 -0
  28. data/lib/cognito/client/document.rb +32 -0
  29. data/lib/cognito/client/params.rb +13 -0
  30. data/lib/cognito/client/params/identity.rb +48 -0
  31. data/lib/cognito/client/params/identity_assessment.rb +23 -0
  32. data/lib/cognito/client/params/identity_search.rb +25 -0
  33. data/lib/cognito/client/params/omitted.rb +9 -0
  34. data/lib/cognito/client/request.rb +98 -0
  35. data/lib/cognito/client/resource.rb +124 -0
  36. data/lib/cognito/client/resource/identity_assessment.rb +53 -0
  37. data/lib/cognito/client/resource/identity_search.rb +64 -0
  38. data/lib/cognito/client/resource/identity_search_job.rb +12 -0
  39. data/lib/cognito/client/resource/profile.rb +10 -0
  40. data/lib/cognito/client/resource_identifier.rb +17 -0
  41. data/lib/cognito/client/response.rb +17 -0
  42. data/lib/cognito/client/response/builder.rb +48 -0
  43. data/lib/cognito/client/response/identity_assessment.rb +10 -0
  44. data/lib/cognito/client/response/identity_search.rb +32 -0
  45. data/lib/cognito/client/response/identity_search_job.rb +20 -0
  46. data/lib/cognito/client/response/profile.rb +10 -0
  47. data/lib/cognito/version.rb +3 -3
  48. metadata +77 -83
  49. data/.rubocop.yml +0 -57
  50. data/.travis.yml +0 -4
  51. data/lib/cognito.rb +0 -32
  52. data/lib/cognito/cleaner.rb +0 -30
  53. data/lib/cognito/constants.rb +0 -8
  54. data/lib/cognito/document.rb +0 -33
  55. data/lib/cognito/error.rb +0 -8
  56. data/lib/cognito/notary.rb +0 -56
  57. data/lib/cognito/resource.rb +0 -129
  58. data/lib/cognito/resource/identity_assessment.rb +0 -40
  59. data/lib/cognito/resource/identity_search.rb +0 -63
  60. data/lib/cognito/resource/identity_search_job.rb +0 -11
  61. data/lib/cognito/resource/profile.rb +0 -9
  62. data/lib/cognito/responder.rb +0 -61
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Cognito
4
- class Resource
5
- class IdentitySearchJob < self
6
- register_type :identity_search_job
7
-
8
- attribute :status
9
- end
10
- end
11
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Cognito
4
- class Resource
5
- class Profile < self
6
- register_type :profile
7
- end
8
- end
9
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
-
5
- module Cognito
6
- module Responder
7
- DEFAULT_WHITELIST = %w(
8
- identity_record
9
- birth
10
- death
11
- us_address
12
- name
13
- phone
14
- ssn
15
- ).freeze
16
-
17
- def included(base)
18
- base.include InstanceMethods
19
- end
20
-
21
- def response_from(response, options = {})
22
- build(parse_response(response, options))
23
- end
24
-
25
- private
26
-
27
- MAPPER = {
28
- IDENTITY_ASSESSMENT => Cognito::Resource::IdentityAssessment,
29
- IDENTITY_SEARCH => Cognito::Resource::IdentitySearch,
30
- IDENTITY_SEARCH_JOB => Cognito::Resource::IdentitySearchJob,
31
- PROFILE => Cognito::Resource::Profile
32
- }.freeze
33
-
34
- def build(json)
35
- klass_mapper(json.fetch(:data).fetch(:type)).create(json)
36
- end
37
-
38
- def klass_mapper(type)
39
- MAPPER.fetch(type) { raise ServerError, 'malformed JSON response' }
40
- end
41
-
42
- def parse_response(response, options = {})
43
- json = JSON.parse(response.body, symbolize_names: true)
44
- if response.code < 400
45
- whitelist = options.fetch(:permit, DEFAULT_WHITELIST).map(&:to_s)
46
- Cleaner.new(json, whitelist).call
47
- else
48
- handle_errors(json, response.code)
49
- end
50
- end
51
-
52
- def handle_errors(json, code)
53
- klass = (code < 500) ? ClientError : ServerError
54
- format_error(klass, json[:errors].first)
55
- end
56
-
57
- def format_error(klass, error)
58
- raise klass, error[:detail]
59
- end
60
- end
61
- end