cognito-client 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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