iubenda_api 1.0.0 → 1.0.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6607de3d8b26913af68de3012e23ffb397620f78
4
- data.tar.gz: d9e0f9b85d4042755421722cf17230ecf9f56b3a
3
+ metadata.gz: d3262f34a681a56f8ef4350ef46d3093b717eb36
4
+ data.tar.gz: 41bf966ca5ae22d079bdba31be6ed93fb0907e46
5
5
  SHA512:
6
- metadata.gz: 8e702d0cfc819c3f62f727668f3058ef1aec26d2ae57637f75c2ed1c3ab1e9d9108c1031cf99213ae35a1acb6774a1c485b286fc5b19d6136f6ac6cec14d8bf0
7
- data.tar.gz: fd7c466105e9a35a845c2ad1b6bc6ec0d3cd7398815d0a85553174cc8c22400150c02eee3a04ecee59a223cdb102781e716f7e8bba2271e5de2e489a5259bbc1
6
+ metadata.gz: 4f9ae33498b112213220c748cd20d9924fca9ef1a6c2377755aab91eff08e6ce0939778e1037cc5ecb030754cb413772c965752dbd8a6dd547d110d310c86179
7
+ data.tar.gz: 58d80319245db982407cf8ebe1f7ff5a188e361f248ef0a8375a374856c88fa6bcc014f504dd2c5afc03ae6559c6a1c06ca9c4cf8bf5cb9ca0bd5d2e61083e96
@@ -0,0 +1,59 @@
1
+ # Ruby CircleCI 2.0 configuration file
2
+ #
3
+ # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
+ #
5
+ version: 2
6
+ jobs:
7
+ build:
8
+ docker:
9
+ # specify the version you desire here
10
+ - image: circleci/ruby:2.4.1-node-browsers
11
+
12
+ # Specify service dependencies here if necessary
13
+ # CircleCI maintains a library of pre-built images
14
+ # documented at https://circleci.com/docs/2.0/circleci-images/
15
+ # - image: circleci/postgres:9.4
16
+
17
+ working_directory: ~/repo
18
+
19
+ steps:
20
+ - checkout
21
+
22
+ # Download and cache dependencies
23
+ - restore_cache:
24
+ keys:
25
+ - v1-dependencies-{{ checksum "iubenda_api.gemspec" }}
26
+ # fallback to using the latest cache if no exact match is found
27
+ - v1-dependencies-
28
+
29
+ - run:
30
+ name: install dependencies
31
+ command: |
32
+ bundle install --jobs=4 --retry=3 --path vendor/bundle
33
+
34
+ - save_cache:
35
+ paths:
36
+ - ./vendor/bundle
37
+ key: v1-dependencies-{{ checksum "iubenda_api.gemspec" }}
38
+
39
+ # run tests!
40
+ - run:
41
+ name: run tests
42
+ command: |
43
+ mkdir /tmp/test-results
44
+ TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \
45
+ circleci tests split --split-by=timings)"
46
+
47
+ bundle exec rspec \
48
+ --format progress \
49
+ --format RspecJunitFormatter \
50
+ --out /tmp/test-results/rspec.xml \
51
+ --format progress \
52
+ $TEST_FILES
53
+
54
+ # collect reports
55
+ - store_test_results:
56
+ path: /tmp/test-results
57
+ - store_artifacts:
58
+ path: /tmp/test-results
59
+ destination: test-results
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- iubenda_api (1.0.0)
4
+ iubenda_api (1.0.1)
5
5
  api_struct
6
6
  dry-configurable
7
7
 
@@ -65,6 +65,8 @@ GEM
65
65
  diff-lcs (>= 1.2.0, < 2.0)
66
66
  rspec-support (~> 3.9.0)
67
67
  rspec-support (3.9.0)
68
+ rspec_junit_formatter (0.4.1)
69
+ rspec-core (>= 2, < 4, != 2.12.0)
68
70
  safe_yaml (1.0.5)
69
71
  unf (0.1.4)
70
72
  unf_ext
@@ -83,6 +85,7 @@ DEPENDENCIES
83
85
  iubenda_api!
84
86
  rake (~> 10.0)
85
87
  rspec (~> 3.0)
88
+ rspec_junit_formatter (~> 0.4.1)
86
89
  webmock (~> 3.7.6)
87
90
 
88
91
  BUNDLED WITH
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  This ruby client is an unofficial client
4
4
 
5
+ [![Gem Version](https://badge.fury.io/rb/iubenda_api.svg)](https://badge.fury.io/rb/iubenda_api) [![Maintainability](https://api.codeclimate.com/v1/badges/4dbfa40f66bcac425417/maintainability)](https://codeclimate.com/github/raihan2006i/iubenda_api/maintainability) [![CircleCI](https://circleci.com/gh/raihan2006i/iubenda_api.svg?style=svg)](https://circleci.com/gh/raihan2006i/iubenda_api)
6
+
5
7
  ## Installation
6
8
 
7
9
  Add this line to your application's Gemfile:
@@ -23,10 +25,10 @@ Or install it yourself as:
23
25
  This gem expects that you have already set `IUBENDA_API_KEY` environment variable. Use your Iubenda `Private key`
24
26
 
25
27
  ```ruby
26
- id = 'testsubject'
27
-
28
+ # Subject
29
+ subject_id = 'testsubject'
28
30
  IubendaApi::ConsentSolution::Subject.create(
29
- id: id,
31
+ id: subject_id,
30
32
  email: "john.doe@example.com",
31
33
  first_name: "John",
32
34
  last_name: "Doe",
@@ -37,6 +39,75 @@ IubendaApi::ConsentSolution::Subject.create(
37
39
  IubendaApi::ConsentSolution::Subject.show(id) # -> #<IubendaApi::ConsentSolution::Subject email="john.doe@example.com" first_name="John" full_name=nil id="testsubject" last_name="Doe" owner_id="10240" preferences=nil timestamp="2019-11-05T11:33:20+00:00" verified=false>
38
40
  IubendaApi::ConsentSolution::Subject.list # -> [#<IubendaApi::ConsentSolution::Subject email="john.doe@example.com" first_name="John" full_name=nil id="testsubject" last_name="Doe" owner_id="10240" preferences=nil timestamp="2019-11-05T11:33:20+00:00" verified=false>, ...]
39
41
  IubendaApi::ConsentSolution::Subject.update(id, email: "john.snow@example.com", first_name: "John", last_name: "Snow", full_name: 'John Snow') # -> #<IubendaApi::ConsentSolution::Subject id="testsubject" timestamp="2019-11-05T11:33:20.039Z">
42
+
43
+ # Consent
44
+ IubendaApi::ConsentSolution::Consent.create(
45
+ subject: {
46
+ id: 'testsubject',
47
+ email: 'subject@example.com',
48
+ first_name: "John",
49
+ last_name: "Doe",
50
+ verified: false
51
+ },
52
+ preferences: {
53
+ newsletter: false,
54
+ privacy_policy: true
55
+ }
56
+ ) # -> #<IubendaApi::ConsentSolution::Consent id="00b654b3-ce4d-45c9-a8aa-9450551579c0" timestamp="2019-11-05T11:33:20.039Z">
57
+
58
+ IubendaApi::ConsentSolution::Consent.show('00b654b3-ce4d-45c9-a8aa-9450551579c0') # -> #<IubendaApi::ConsentSolution::Consent id="00b654b3-ce4d-45c9-a8aa-9450551579c0", ...>
59
+ IubendaApi::ConsentSolution::Consent.list(limit: 1) # -> [#<IubendaApi::ConsentSolution::Consent id="00b654b3-ce4d-45c9-a8aa-9450551579c0", ...>, ...]
60
+
61
+ # Legal Notice
62
+ # Single legal notice without multi-language content:
63
+ IubendaApi::ConsentSolution::LegalNotice.create(
64
+ identifier: "privacy_policy",
65
+ content: "privacy policy content"
66
+ ) # -> #<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-12-13T14:56:00Z">
67
+
68
+ # Single legal notice with multi-language content:
69
+ IubendaApi::ConsentSolution::LegalNotice.create(
70
+ identifier: "privacy_policy",
71
+ content: {
72
+ en: "privacy policy content",
73
+ it: "contenuto della privacy policy"
74
+ }
75
+ ) # -> #<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-12-13T14:56:00Z">
76
+
77
+ # Multiple legal notice without multi-language content:
78
+ IubendaApi::ConsentSolution::LegalNotice.create_multiple([
79
+ {
80
+ identifier: "privacy_policy",
81
+ content: "privacy policy content"
82
+ },
83
+ {
84
+ identifier: "cookie_policy",
85
+ content: "cookie policy content"
86
+ }
87
+ ]) # -> [#<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-12-13T14:56:00Z">, #<IubendaApi::ConsentSolution::LegalNotice identifier="cookie_policy" version=1 timestamp="2019-12-13T14:56:00Z">]
88
+
89
+ # Multiple legal notice with multi-language content:
90
+ IubendaApi::ConsentSolution::LegalNotice.create_multiple([
91
+ {
92
+ identifier: "privacy_policy",
93
+ content: {
94
+ en: "privacy policy content",
95
+ it: "contenuto della privacy policy"
96
+ }
97
+ },
98
+ {
99
+ identifier: "cookie_policy",
100
+ content: {
101
+ en: "cookie policy content",
102
+ it: "contenuto della cookie policy"
103
+ }
104
+ },
105
+ ]) # -> [#<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-12-13T14:56:00Z">, #<IubendaApi::ConsentSolution::LegalNotice identifier="cookie_policy" version=1 timestamp="2019-12-13T14:56:00Z">]
106
+
107
+ IubendaApi::ConsentSolution::LegalNotice.versions('privacy_policy') # -> [#<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-11-07T16:18:05+00:00" content=#<Hashie::Mash>, ...]
108
+ IubendaApi::ConsentSolution::LegalNotice.version('privacy_policy', 1) # -> #<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-11-07T16:18:05+00:00" content=#<Hashie::Mash>
109
+ IubendaApi::ConsentSolution::LegalNotice.list(limit: 1) # -> [#<IubendaApi::ConsentSolution::LegalNotice content=#<Hashie::Mash it="https://example.com/privacy_policy.pdf"> id="10298_privacy_policy" identifier="privacy_policy" owner_id="1000" timestamp="2019-11-22T14:12:06+00:00" version=1>, ...]
110
+
40
111
  ```
41
112
 
42
113
  ## Development
@@ -45,9 +116,6 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
45
116
 
46
117
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
47
118
 
48
- TODO:
49
- * Implement `IubendaApi::ConsentSolution::Consent` entity
50
- * Implement `IubendaApi::ConsentSolution::LegalNotice` entity
51
119
 
52
120
  ## Contributing
53
121
 
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "bundler", "~> 1.16"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
27
27
  spec.add_development_dependency "rspec", "~> 3.0"
28
+ spec.add_development_dependency "rspec_junit_formatter", "~> 0.4.1"
28
29
  spec.add_development_dependency "webmock", "~> 3.7.6"
29
30
  spec.add_development_dependency "dotenv", "~> 2.7.5"
30
31
  end
@@ -4,7 +4,11 @@ require 'dry-configurable'
4
4
  require "iubenda_api/version"
5
5
  require 'iubenda_api/settings'
6
6
  require 'iubenda_api/consent_solution/clients/subject'
7
+ require 'iubenda_api/consent_solution/clients/consent'
8
+ require 'iubenda_api/consent_solution/clients/legal_notice'
7
9
  require 'iubenda_api/consent_solution/subject'
10
+ require 'iubenda_api/consent_solution/consent'
11
+ require 'iubenda_api/consent_solution/legal_notice'
8
12
 
9
13
  module IubendaApi # :nodoc:
10
14
  end
@@ -0,0 +1,84 @@
1
+ module IubendaApi # :nodoc:
2
+ module ConsentSolution # :nodoc:
3
+ module Clients # :nodoc:
4
+
5
+ # Endpoint wrapper class for Iubenda Consent HTTP APIs
6
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#consent-1
7
+ class Consent < ApiStruct::Client
8
+ consent_solution_api :consent
9
+
10
+ # Calls GET /consent/:id
11
+ #
12
+ # @param id [String] the id of the consent
13
+ # @return [Dry::Monads::Result::Success] if success
14
+ # @return [Dry::Monads::Result::Failure] if failed
15
+ # @example
16
+ # IubendaApi::ConsentSolution::Clients::Consent.new.show('testsubject') # -> Dry::Monads::Result::Success({:id=>"testsubject", :email=>"subject@example.com", :first_name=>"John", :last_name=>"Doe", :verified=>false, :owner_id=>"1", :preferences=> {}, :timestamp=>"2019-11-04T17:30:58+00:00"})
17
+ # IubendaApi::ConsentSolution::Clients::Consent.new.show('notfound') # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007ff1544606c0 @status=#<HTTP::Response::Status 404 Not Found>, @body={:status=>"not_found"}>)
18
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#get-consent
19
+ def show(id)
20
+ get(id)
21
+ end
22
+
23
+ # Calls GET /consent
24
+ #
25
+ # @overload list
26
+ # @overload list(options)
27
+ # @param [Hash] options options to send as query parameters.
28
+ # @option options [String] :from_time Filter by consents timestamp. Returns all consents from that time onward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds). Default null
29
+ # @option options [String] :to_time Filter by consents timestamp. Returns all consents from that time backward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds). Default null
30
+ # @option options [String] :source Filter by consents source. Possible values: public, private. Default null
31
+ # @option options [String] :ip_address Filter by IP address. Default null. Valid formats (IP address format|’none’)
32
+ # @option options [String] :subject_id Filter by Subject ID. Default null
33
+ # @option options [String] :subject_email_exact Filter by Subject email. It must exactly match (case sensitive). Default null
34
+ # @option options [String] :subject_email Filter by Subject email. It tries to match parts of the provided email split by dots and spaces. Ex. providing “@test.com” will match all the subjects with an email containing “@test” or containing “com” (case insensitive). Default null
35
+ # @option options [String] :subject_first_name Filter by Subject first name. It must exactly match (case sensitive). Default null
36
+ # @option options [String] :subject_last_name Filter by Subject last name. It must exactly match (case sensitive). Default null
37
+ # @option options [String] :subject_full_name Filter by Subject full name. It tries to match parts of the provided full name split by dots and spaces. Ex. “test hello” will match all the subjects with a full name containing “test” or containing “hello” (case insensitive). Default null
38
+ # @option options [String] :subject_verified Filter by subject verified status. Possible values: true, false. Default null
39
+ # @option options [String] :preference_key Filter for consents in which the key exists. Default null
40
+ # @option options [UUID] :starting_after Cursor which indicates after which Consent the results should be returned (cursor excluded). Default null
41
+ # @option options [Numeric] :limit optional Integer Number indicating the number of results returned. Min: 1, Max: 100. Default 10
42
+ # @return [Dry::Monads::Result::Success] if success
43
+ # @return [Dry::Monads::Result::Failure] if failed
44
+ # @example
45
+ # IubendaApi::ConsentSolution::Clients::Consent.new.list(limit: 1) # -> Dry::Monads::Result::Success([{:id=>"testsubject", :email=>"subject@example.com", :first_name=>"John", :last_name=>"Doe", :verified=>false, :owner_id=>"1", :preferences=> {}, :timestamp=>"2019-11-04T17:30:58+00:00"}])
46
+ # IubendaApi::ConsentSolution::Clients::Consent.new.list(limit: 1) # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007f7f699fc3c0 @status=#<HTTP::Response::Status 403 Forbidden>, @body={:message=>"Invalid authentication credentials"}>)
47
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#list-consents
48
+ def list(options = {})
49
+ get(params: options)
50
+ end
51
+
52
+ # Calls POST /consent
53
+ #
54
+ # @param [Hash] options options to send as subject attributes.
55
+ # @option options [String] :timestamp ISO 8601 timestamp at which the consent occurred
56
+ # @option options [Hash] :subject
57
+ # * :id (String) auto-filled if not provided
58
+ # * :email (String)
59
+ # * :first_name (String)
60
+ # * :last_name (String)
61
+ # * :full_name (String)
62
+ # * :verified (Boolean) Reserved field used to signal whether a subject is verified, for instance via the double opt-in method
63
+ # @option options [Array<Hash>] :legal_notices Array of objects containing legal_notices data
64
+ # * :identifier (String) privacy_policy, cookie_policy, terms or a custom identifier
65
+ # * :version (String) auto-filled if not provided
66
+ # @option options [Array<Hash>] :proofs Array of objects containing proof data
67
+ # * :content (String)
68
+ # * :form (String)
69
+ # @option options [Hash] :preferences Set of key-value pairs with user preferences for the consent action
70
+ # @option options [String] :ip_address Considered only when using a `private` key. Saves the passed IP address on the Consent. Default null
71
+ # @option options [String] :autodetect_ip_address Default `true`, Considered only when using a `public` key. Enables or disables (true, false) the IP address autedetection. Default true
72
+ # @return [Dry::Monads::Result::Success] if success
73
+ # @return [Dry::Monads::Result::Failure] if failed
74
+ # @example
75
+ # IubendaApi::ConsentSolution::Clients::Consent.new.create(id: 'testsubject', email: 'subject@example.com', first_name: "John", last_name: "Doe", verified: false) # -> Dry::Monads::Result::Success({:id=>"testsubject", :timestamp=>"2019-11-05T11:33:20.039Z"})
76
+ # IubendaApi::ConsentSolution::Clients::Consent.new.create(id: 'testsubject', email: 'subject@example.com', first_name: "John", last_name: "Doe", verified: false) # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007f7f699fc3c0 @status=#<HTTP::Response::Status 403 Forbidden>, @body={:message=>"Invalid authentication credentials"}>)
77
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#create-consent
78
+ def create(options)
79
+ post(json: options)
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,125 @@
1
+ module IubendaApi # :nodoc:
2
+ module ConsentSolution # :nodoc:
3
+ module Clients # :nodoc:
4
+
5
+ # Endpoint wrapper class for Iubenda LegalNotice HTTP APIs
6
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#legal-notices
7
+ class LegalNotice < ApiStruct::Client
8
+ consent_solution_api :legal_notices
9
+
10
+ # Calls GET /legal_notices/:identifier/:version
11
+ #
12
+ # @param identifier [String] the identifier of the legal notice
13
+ # @param version [String] the version of the legal notice
14
+ # @return [Dry::Monads::Result::Success] if success
15
+ # @return [Dry::Monads::Result::Failure] if failed
16
+ # @example
17
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.version('privacy_policy', '1') # -> Dry::Monads::Result::Success({:identifier=>"privacy_policy", :version=>1, :timestamp=>"2019-11-07T15:26:33+00:00", :content=>{:it=>"http://localhost:3000/privacy_policy.pdf"}})
18
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.version('notfound', '1') # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007ff1544606c0 @status=#<HTTP::Response::Status 404 Not Found>, @body={:status=>"not_found"}>)
19
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#get-a-legal-notice-version
20
+ def version(identifier, version)
21
+ get(path: 'legal_notices/:identifier/:version', identifier: identifier, version: version)
22
+ end
23
+
24
+ # Calls GET /legal_notices/:identifier
25
+ #
26
+ # @param identifier [String] the identifier of the legal notice
27
+ # @return [Dry::Monads::Result::Success] if success
28
+ # @return [Dry::Monads::Result::Failure] if failed
29
+ # @example
30
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.versions('privacy_policy') # -> Dry::Monads::Result::Success([{:identifier=>"privacy_policy", :version=>1, :timestamp=>"2019-11-07T15:26:33+00:00", :id=>"10298_privacy_policy", :owner_id=>"10298", :content=>{:it=>"http://localhost:3000/privacy_policy.pdf"}}])
31
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.versions('notfound') # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007ff1544606c0 @status=#<HTTP::Response::Status 404 Not Found>, @body={:status=>"not_found"}>)
32
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#get-all-legal-notice-versions
33
+ def versions(identifier)
34
+ get(path: 'legal_notices/:identifier', identifier: identifier)
35
+ end
36
+
37
+ # Calls GET /legal_notices
38
+ #
39
+ # @overload list
40
+ # @overload list(options)
41
+ # @param [Hash] options options to send as query parameters.
42
+ # @option options [String] :id Optional, Filter by id. It must exactly match. Default null
43
+ # @option options [String] :identifier Optional, Filter by identifier. It must exactly match (case sensitive). Default null.
44
+ # @option options [Numeric] :version Optional, Numeric Filter by version. It must exactly match. Default null.
45
+ # @option options [String] :language Optional, Filter by legal notices which contents include the specified language (using short form like ‘en’, ‘it’ etc.). Default null.
46
+ # @option options [String] :from_time Optional, Filter by legal notices timestamp. Returns all legal notices from that time onward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds). Default null.
47
+ # @option options [String] :to_time Optional, Filter by legal notices timestamp. Returns all legal notices from that time backward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds). Default null.
48
+ # @option options [Numeric] :starting_after_version Optional, Cursor which indicates after which Legal Notice’s version the results should be returned (cursor excluded). Default null.
49
+ # @option options [String] :starting_after_identifier Optional, Cursor which indicates after which Legal Notice’s identifier the results should be returned (cursor excluded). Default null.
50
+ # @option options [Numeric] :limit Optional, Number indicating the number of results returned. Min: 1, Max: 100. Default 10.
51
+ # @return [Dry::Monads::Result::Success] if success
52
+ # @return [Dry::Monads::Result::Failure] if failed
53
+ # @example
54
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.list(limit: 1) # -> Dry::Monads::Result::Success([{:identifier=>"privacy_policy", :version=>1, :timestamp=>"2019-11-07T15:26:33+00:00", :id=>"10298_privacy_policy", :owner_id=>"10298", :content=>{:it=>"http://localhost:3000/privacy_policy.pdf"}}])
55
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.list(limit: 1) # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007f7f699fc3c0 @status=#<HTTP::Response::Status 403 Forbidden>, @body={:message=>"Invalid authentication credentials"}>)
56
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#list-legal-notices
57
+ def list(options = {})
58
+ get(params: options)
59
+ end
60
+
61
+ # Calls POST /legal_notices
62
+ #
63
+ # @param [Hash] options options to send as legal notice attributes.
64
+ # @option options [String] :identifier Identifier of the legal notice
65
+ # @option options [String] :timestamp ISO 8601 timestamp at operation
66
+ # @option options [String, Hash] :content Content of the legal notice
67
+ # @return [Dry::Monads::Result::Success] if success
68
+ # @return [Dry::Monads::Result::Failure] if failed
69
+ # @example
70
+ # # Without multi-language content:
71
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.create(
72
+ # identifier: "privacy_policy",
73
+ # content: "privacy policy content"
74
+ # ) # -> Dry::Monads::Result::Success({:identifier=>"privacy_policy", :version=>1, :timestamp=>"2018-05-16T13:55:57"})
75
+ #
76
+ # # With multi-language content:
77
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.create(
78
+ # identifier: "privacy_policy",
79
+ # content: {
80
+ # en: "privacy policy content",
81
+ # it: "contenuto della privacy policy"
82
+ # }
83
+ # ) # -> Dry::Monads::Result::Success({:identifier=>"privacy_policy", :version=>1, :timestamp=>"2018-05-16T13:55:57"})
84
+ #
85
+ # # Error
86
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.create(identifier: 'privacy_policy', content: 'privacy policy content') # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007f7f699fc3c0 @status=#<HTTP::Response::Status 403 Forbidden>, @body={:message=>"Invalid authentication credentials"}>)
87
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#create-a-legal-notice
88
+ def create(options)
89
+ post(json: options)
90
+ end
91
+
92
+ # Calls POST /legal_notices
93
+ #
94
+ # @param [Array<Hash>] options Array of legal notice attributes
95
+ # * :identifier (String) Identifier of the legal notice
96
+ # * :timestamp (String) ISO 8601 timestamp at operation
97
+ # * :content (String, Hash) Content of the legal notice
98
+ # @return [Dry::Monads::Result::Success] if success
99
+ # @return [Dry::Monads::Result::Failure] if failed
100
+ # @example
101
+ # # Without multi-language content:
102
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.create_multiple([
103
+ # identifier: "privacy_policy",
104
+ # content: "privacy policy content"
105
+ # ]) # -> Dry::Monads::Result::Success([{:identifier=>"privacy_policy", :version=>1, :timestamp=>"2018-05-16T13:55:57"}])
106
+ #
107
+ # # With multi-language content:
108
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.create_multiple([
109
+ # identifier: "privacy_policy",
110
+ # content: {
111
+ # en: "privacy policy content",
112
+ # it: "contenuto della privacy policy"
113
+ # }
114
+ # ]) # -> Dry::Monads::Result::Success([{:identifier=>"privacy_policy", :version=>1, :timestamp=>"2018-05-16T13:55:57"}])
115
+ #
116
+ # # Error
117
+ # IubendaApi::ConsentSolution::Clients::LegalNotice.new.create_multiple([identifier: 'privacy_policy', content: 'privacy policy content']) # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007f7f699fc3c0 @status=#<HTTP::Response::Status 403 Forbidden>, @body={:message=>"Invalid authentication credentials"}>)
118
+ # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#create-multiple-legal-notices
119
+ def create_multiple(options)
120
+ post(json: options)
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -2,7 +2,7 @@ module IubendaApi # :nodoc:
2
2
  module ConsentSolution # :nodoc:
3
3
  module Clients # :nodoc:
4
4
 
5
- # Endpoint wrapper class for Iubenda Subjects HTTP APIs
5
+ # Endpoint wrapper class for Iubenda Subject HTTP APIs
6
6
  # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#subjects-1
7
7
  class Subject < ApiStruct::Client
8
8
  consent_solution_api :subjects
@@ -13,8 +13,8 @@ module IubendaApi # :nodoc:
13
13
  # @return [Dry::Monads::Result::Success] if success
14
14
  # @return [Dry::Monads::Result::Failure] if failed
15
15
  # @example
16
- # IubendaApi::ConsentSolution::Clients::Subject.new.get('testsubject') # -> Dry::Monads::Result::Success({:id=>"testsubject", :email=>"subject@example.com", :first_name=>"John", :last_name=>"Doe", :verified=>false, :owner_id=>"1", :preferences=> {}, :timestamp=>"2019-11-04T17:30:58+00:00"})
17
- # IubendaApi::ConsentSolution::Clients::Subject.new.get('notfound') # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007ff1544606c0 @status=#<HTTP::Response::Status 404 Not Found>, @body={:status=>"not_found"}>)
16
+ # IubendaApi::ConsentSolution::Clients::Subject.new.show('testsubject') # -> Dry::Monads::Result::Success({:id=>"testsubject", :email=>"subject@example.com", :first_name=>"John", :last_name=>"Doe", :verified=>false, :owner_id=>"1", :preferences=> {}, :timestamp=>"2019-11-04T17:30:58+00:00"})
17
+ # IubendaApi::ConsentSolution::Clients::Subject.new.show('notfound') # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007ff1544606c0 @status=#<HTTP::Response::Status 404 Not Found>, @body={:status=>"not_found"}>)
18
18
  # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#get-subjects
19
19
  def show(id)
20
20
  get(id)
@@ -49,42 +49,38 @@ module IubendaApi # :nodoc:
49
49
 
50
50
  # Calls POST /subjects
51
51
  #
52
- # @overload create
53
- # @overload create(options)
54
- # @param [Hash] options options to send as subject attributes.
55
- # @option options [String] :id auto-filled if not provided
56
- # @option options [String] :email Optional
57
- # @option options [String] :first_name Optional
58
- # @option options [String] :last_name Optional
59
- # @option options [String] :full_name Optional
60
- # @option options [Boolean] :verified Optional, Reserved field used to signal whether a subject is verified, for instance via the double opt-in method
52
+ # @param [Hash] options options to send as subject attributes.
53
+ # @option options [String] :id auto-filled if not provided
54
+ # @option options [String] :email Optional
55
+ # @option options [String] :first_name Optional
56
+ # @option options [String] :last_name Optional
57
+ # @option options [String] :full_name Optional
58
+ # @option options [Boolean] :verified Optional, Reserved field used to signal whether a subject is verified, for instance via the double opt-in method
61
59
  # @return [Dry::Monads::Result::Success] if success
62
60
  # @return [Dry::Monads::Result::Failure] if failed
63
61
  # @example
64
62
  # IubendaApi::ConsentSolution::Clients::Subject.new.create(id: 'testsubject', email: 'subject@example.com', first_name: "John", last_name: "Doe", verified: false) # -> Dry::Monads::Result::Success({:id=>"testsubject", :timestamp=>"2019-11-05T11:33:20.039Z"})
65
63
  # IubendaApi::ConsentSolution::Clients::Subject.new.create(id: 'testsubject', email: 'subject@example.com', first_name: "John", last_name: "Doe", verified: false) # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007f7f699fc3c0 @status=#<HTTP::Response::Status 403 Forbidden>, @body={:message=>"Invalid authentication credentials"}>)
66
64
  # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#create-subjects
67
- def create(options = {})
65
+ def create(options)
68
66
  post(json: options)
69
67
  end
70
68
 
71
69
  # Calls PUT /subjects/:id
72
70
  #
73
- # @overload update(id)
74
- # @overload update(id, options)
75
- # @param [Hash] options options to send as subject attributes.
76
- # @option options [String] :email Optional
77
- # @option options [String] :first_name Optional
78
- # @option options [String] :last_name Optional
79
- # @option options [String] :full_name Optional
80
- # @option options [Boolean] :verified Optional, Reserved field used to signal whether a subject is verified, for instance via the double opt-in method
71
+ # @param [Hash] options options to send as subject attributes.
72
+ # @option options [String] :email Optional
73
+ # @option options [String] :first_name Optional
74
+ # @option options [String] :last_name Optional
75
+ # @option options [String] :full_name Optional
76
+ # @option options [Boolean] :verified Optional, Reserved field used to signal whether a subject is verified, for instance via the double opt-in method
81
77
  # @return [Dry::Monads::Result::Success] if success
82
78
  # @return [Dry::Monads::Result::Failure] if failed
83
79
  # @example
84
80
  # IubendaApi::ConsentSolution::Clients::Subject.new.update('testsubject', email: 'john.doe@example.com') # -> Dry::Monads::Result::Success({:id=>"testsubject", :timestamp=>"2019-11-05T11:33:20.000+00:00"})
85
81
  # IubendaApi::ConsentSolution::Clients::Subject.new.update('testsubject', email: 'john.doe@example.com') # -> Dry::Monads::Result::Failure(#<ApiStruct::Errors::Client:0x007f7f699fc3c0 @status=#<HTTP::Response::Status 403 Forbidden>, @body={:message=>"Invalid authentication credentials"}>)
86
82
  # @see https://www.iubenda.com/en/help/6484-consent-solution-http-api-documentation#update-subjects
87
- def update(id, options = {})
83
+ def update(id, options)
88
84
  put(id, json: options)
89
85
  end
90
86
  end
@@ -0,0 +1,92 @@
1
+ module IubendaApi # :nodoc:
2
+ module ConsentSolution # :nodoc:
3
+
4
+ # Response serializer class for client service IubendaApi::ConsentSolution::Clients::Consent
5
+ #
6
+ class Consent < ApiStruct::Entity
7
+
8
+ # @!method self.show(id)
9
+ # Gets a consent
10
+ # @param id [String] the id of the consent
11
+ # @return [IubendaApi::ConsentSolution::Consent] if found
12
+ # @return [ApiStruct::Errors::Entity] if not found or failed
13
+ # @example
14
+ # IubendaApi::ConsentSolution::Consent.show('00b654b3-ce4d-45c9-a8aa-9450551579c0') # -> #<IubendaApi::ConsentSolution::Consent id="00b654b3-ce4d-45c9-a8aa-9450551579c0", ...>
15
+ # IubendaApi::ConsentSolution::Consent.show('notfound') # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
16
+ # @see IubendaApi::ConsentSolution::Clients::Consent#show
17
+ #
18
+ #
19
+
20
+ # @!method self.list(options = {})
21
+ # Gets list of subjects
22
+ # @overload list
23
+ # @overload list(options)
24
+ # @param [Hash] options options to send as query parameters. Options are same as IubendaApi::ConsentSolution::Clients::Consent#list options
25
+ # @see IubendaApi::ConsentSolution::Clients::Consent#list
26
+ # @return [Array<IubendaApi::ConsentSolution::Consent>] if success
27
+ # @return [ApiStruct::Errors::Entity] if failed
28
+ # @example
29
+ # IubendaApi::ConsentSolution::Consent.list(limit: 1) # -> [#<IubendaApi::ConsentSolution::Consent id="00b654b3-ce4d-45c9-a8aa-9450551579c0", ...>, ...]
30
+ # IubendaApi::ConsentSolution::Consent.list(limit: 1) # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
31
+ #
32
+
33
+ # @!method self.create(options)
34
+ # Creates a consent
35
+ #
36
+ # @param [Hash] options options to send as consent attributes. Options are same as IubendaApi::ConsentSolution::Clients::Consent#create options
37
+ # @see IubendaApi::ConsentSolution::Clients::Consent#create
38
+ # @return [IubendaApi::ConsentSolution::Consent] if created
39
+ # @return [ApiStruct::Errors::Entity] if not found or failed
40
+ # @example
41
+ # IubendaApi::ConsentSolution::Consent.create(
42
+ # subject: {
43
+ # id: 'testsubject',
44
+ # email: 'subject@example.com',
45
+ # first_name: "John",
46
+ # last_name: "Doe",
47
+ # verified: false
48
+ # },
49
+ # preferences: {
50
+ # newsletter: false,
51
+ # privacy_policy: true
52
+ # }
53
+ # ) # -> #<IubendaApi::ConsentSolution::Consent id="00b654b3-ce4d-45c9-a8aa-9450551579c0" timestamp="2019-11-05T11:33:20.039Z">
54
+ # IubendaApi::ConsentSolution::Consent.create({}) # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
55
+ #
56
+ #
57
+ client_service IubendaApi::ConsentSolution::Clients::Consent
58
+
59
+ # @!attribute [r] id
60
+ # @return [String] Unique identifier of the specific consent event
61
+ #
62
+ # @!attribute [r] timestamp
63
+ # @return [String] ISO 8601 timestamp at which the consent occurred
64
+ #
65
+ # @!attribute [r] checksum
66
+ # @return [String]
67
+ #
68
+ # @!attribute [r] owner
69
+ # @return [String] Unique identifier of the API key owner
70
+ #
71
+ # @!attribute [r] subject
72
+ # @return [Hash] Subject of the consent
73
+ #
74
+ # @!attribute [r] preferences
75
+ # @return [Hash] Set of key-value pairs with user preferences for the consent action
76
+ #
77
+ # @!attribute [r] legal_notices
78
+ # @return [Array<Hash>] Array of objects containing legal_notices data
79
+ #
80
+ # @!attribute [r] proofs
81
+ # @return [Array<Hash>] Array of objects containing proof data
82
+ #
83
+ # @!attribute [r] ip_address
84
+ # @return [String] IP address on the Consent
85
+ #
86
+ # @!attribute [r] source
87
+ # @return [String] Whether the consent was filed from the public or the private API key
88
+ #
89
+ attr_entity :id, :timestamp, :checksum, :owner, :subject, :preferences, :legal_notices, :proofs, :ip_address, :source
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,132 @@
1
+ module IubendaApi # :nodoc:
2
+ module ConsentSolution # :nodoc:
3
+
4
+ # Response serializer class for client service IubendaApi::ConsentSolution::Clients::LegalNotice
5
+ #
6
+ class LegalNotice < ApiStruct::Entity
7
+
8
+ # @!method self.version(identifier, version)
9
+ # Gets a legal notice version
10
+ # @param identifier [String] the identifier of the legal notice
11
+ # @param version [String] the version of the legal notice
12
+ # @return [IubendaApi::ConsentSolution::LegalNotice] if found
13
+ # @return [ApiStruct::Errors::Entity] if not found or failed
14
+ # @example
15
+ # IubendaApi::ConsentSolution::LegalNotice.version('privacy_policy', 1) # -> #<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-11-07T16:18:05+00:00" content=#<Hashie::Mash>
16
+ # IubendaApi::ConsentSolution::LegalNotice.version('notfound', 1) # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
17
+ # @see IubendaApi::ConsentSolution::Clients::LegalNotice#version
18
+ #
19
+
20
+ # @!method self.versions(identifier)
21
+ # Gets list of versions of a legal notice
22
+ # @param identifier [String] the identifier of the legal notice
23
+ # @return [Array<IubendaApi::ConsentSolution::LegalNotice>] if success
24
+ # @return [ApiStruct::Errors::Entity] if failed
25
+ # @example
26
+ # IubendaApi::ConsentSolution::LegalNotice.versions('privacy_policy') # -> [#<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-11-07T16:18:05+00:00" content=#<Hashie::Mash>, ...]
27
+ # IubendaApi::ConsentSolution::LegalNotice.versions('notfound') # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
28
+ # @see IubendaApi::ConsentSolution::Clients::LegalNotice#versions
29
+ #
30
+
31
+ # @!method self.list(options = {})
32
+ # Gets list of legal notices
33
+ # @overload list
34
+ # @overload list(options)
35
+ # @param [Hash] options options to send as query parameters. Options are same as IubendaApi::ConsentSolution::Clients::LegalNotice#list options
36
+ # @see IubendaApi::ConsentSolution::Clients::LegalNotice#list
37
+ # @return [Array<IubendaApi::ConsentSolution::LegalNotice>] if success
38
+ # @return [ApiStruct::Errors::Entity] if failed
39
+ # @example
40
+ # IubendaApi::ConsentSolution::LegalNotice.list(limit: 1) # -> [#<IubendaApi::ConsentSolution::LegalNotice content=#<Hashie::Mash it="https://example.com/privacy_policy.pdf"> id="10298_privacy_policy" identifier="privacy_policy" owner_id="1000" timestamp="2019-11-22T14:12:06+00:00" version=1>, ...]
41
+ # IubendaApi::ConsentSolution::LegalNotice.list(limit: 1) # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
42
+ #
43
+
44
+ # @!method self.create(options)
45
+ # Creates a legal notice
46
+ # @param [Hash] options options to send as legal notice attributes. Options are same as IubendaApi::ConsentSolution::Clients::LegalNotice#create options
47
+ # @see IubendaApi::ConsentSolution::Clients::LegalNotice#create
48
+ # @return [IubendaApi::ConsentSolution::LegalNotice] if created
49
+ # @return [ApiStruct::Errors::Entity] if not created or failed
50
+ # @example
51
+ # # Without multi-language content:
52
+ # IubendaApi::ConsentSolution::LegalNotice.create(
53
+ # identifier: "privacy_policy",
54
+ # content: "privacy policy content"
55
+ # ) # -> #<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-12-13T14:56:00Z">
56
+ #
57
+ # # With multi-language content:
58
+ # IubendaApi::ConsentSolution::LegalNotice.create(
59
+ # identifier: "privacy_policy",
60
+ # content: {
61
+ # en: "privacy policy content",
62
+ # it: "contenuto della privacy policy"
63
+ # }
64
+ # ) # -> #<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-12-13T14:56:00Z">
65
+ #
66
+ # # Error
67
+ # IubendaApi::ConsentSolution::LegalNotice.create(identifier: "privacy_policy", content: "privacy policy content") # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
68
+ #
69
+
70
+ # @!method self.create_multiple(options)
71
+ # @param [Array<Hash>] options Array of legal notice attributes. Options are same as IubendaApi::ConsentSolution::Clients::LegalNotice#create_multiple options
72
+ # @see IubendaApi::ConsentSolution::Clients::LegalNotice#create_multiple
73
+ # @return [Array<IubendaApi::ConsentSolution::LegalNotice>] if success
74
+ # @return [ApiStruct::Errors::Entity] if not created or failed
75
+ # @example
76
+ # # Multiple legal notice without multi-language content:
77
+ # IubendaApi::ConsentSolution::LegalNotice.create_multiple([
78
+ # {
79
+ # identifier: "privacy_policy",
80
+ # content: "privacy policy content"
81
+ # },
82
+ # {
83
+ # identifier: "cookie_policy",
84
+ # content: "cookie policy content"
85
+ # }
86
+ # ]) # -> [#<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-12-13T14:56:00Z">, #<IubendaApi::ConsentSolution::LegalNotice identifier="cookie_policy" version=1 timestamp="2019-12-13T14:56:00Z">]
87
+ #
88
+ # # Multiple legal notice with multi-language content:
89
+ # IubendaApi::ConsentSolution::LegalNotice.create_multiple([
90
+ # {
91
+ # identifier: "privacy_policy",
92
+ # content: {
93
+ # en: "privacy policy content",
94
+ # it: "contenuto della privacy policy"
95
+ # }
96
+ # },
97
+ # {
98
+ # identifier: "cookie_policy",
99
+ # content: {
100
+ # en: "cookie policy content",
101
+ # it: "contenuto della cookie policy"
102
+ # }
103
+ # },
104
+ # ]) # -> [#<IubendaApi::ConsentSolution::LegalNotice identifier="privacy_policy" version=1 timestamp="2019-12-13T14:56:00Z">, #<IubendaApi::ConsentSolution::LegalNotice identifier="cookie_policy" version=1 timestamp="2019-12-13T14:56:00Z">]
105
+ #
106
+ # # Error
107
+ # IubendaApi::ConsentSolution::LegalNotice.create_multiple([identifier: 'privacy_policy', content: 'privacy policy content']) # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
108
+ #
109
+ client_service IubendaApi::ConsentSolution::Clients::LegalNotice
110
+
111
+ # @!attribute [r] id
112
+ # @return [String] ID of the legal notice
113
+ #
114
+ # @!attribute [r] identifier
115
+ # @return [String] The identifier of the legal notice
116
+ #
117
+ # @!attribute [r] version
118
+ # @return [Number] Version of the legal notice
119
+ #
120
+ # @!attribute [r] timestamp
121
+ # @return [String] ISO 8601 timestamp. Operation time, for instance creation time, update time
122
+ #
123
+ # @!attribute [r] content
124
+ # @return [String, Hash] Content of the legal notice. Returns hash when content is multi-language, otherwise returns string
125
+ #
126
+ # @!attribute [r] owner_id
127
+ # @return [String] owner id of the legal notice
128
+ #
129
+ attr_entity :id, :identifier, :version, :timestamp, :content, :owner_id
130
+ end
131
+ end
132
+ end
@@ -11,8 +11,8 @@ module IubendaApi # :nodoc:
11
11
  # @return [IubendaApi::ConsentSolution::Subject] if found
12
12
  # @return [ApiStruct::Errors::Entity] if not found or failed
13
13
  # @example
14
- # IubendaApi::ConsentSolution::Subject.get('testsubject') # -> #<IubendaApi::ConsentSolution::Subject email="john.doe@example.com" first_name="John" full_name=nil id="testsubject" last_name="Doe" owner_id="10240" preferences=nil timestamp="2019-11-05T11:33:20+00:00" verified=false>
15
- # IubendaApi::ConsentSolution::Subject.get('notfound') # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
14
+ # IubendaApi::ConsentSolution::Subject.show('testsubject') # -> #<IubendaApi::ConsentSolution::Subject email="john.doe@example.com" first_name="John" full_name=nil id="testsubject" last_name="Doe" owner_id="10240" preferences=nil timestamp="2019-11-05T11:33:20+00:00" verified=false>
15
+ # IubendaApi::ConsentSolution::Subject.show('notfound') # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
16
16
  # @see IubendaApi::ConsentSolution::Clients::Subject#show
17
17
  #
18
18
  #
@@ -28,37 +28,28 @@ module IubendaApi # :nodoc:
28
28
  # @example
29
29
  # IubendaApi::ConsentSolution::Subject.list(limit: 1) # -> [#<IubendaApi::ConsentSolution::Subject email="john.doe@example.com" first_name="John" full_name=nil id="testsubject" last_name="Doe" owner_id="10240" preferences=nil timestamp="2019-11-05T11:33:20+00:00" verified=false>, ...]
30
30
  # IubendaApi::ConsentSolution::Subject.list(limit: 1) # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
31
- # @see IubendaApi::ConsentSolution::Clients::Subject#list(options)
32
31
  #
33
32
 
34
- # @!method self.create(options = {})
33
+ # @!method self.create(options)
35
34
  # Creates a subject
36
- # @overload create
37
- # @overload create(options)
38
- # @param [Hash] options options to send as subject attributes.
39
- # @see IubendaApi::ConsentSolution::Clients::Subject#create Options are same as IubendaApi::ConsentSolution::Clients::Subject#create options
35
+ # @param [Hash] options options to send as subject attributes. Options are same as IubendaApi::ConsentSolution::Clients::Subject#create options
36
+ # @see IubendaApi::ConsentSolution::Clients::Subject#create
40
37
  # @return [IubendaApi::ConsentSolution::Subject] if created
41
38
  # @return [ApiStruct::Errors::Entity] if not found or failed
42
39
  # @example
43
40
  # IubendaApi::ConsentSolution::Subject.create(id: 'testsubject', email: 'subject@example.com', first_name: "John", last_name: "Doe", verified: false) # -> #<IubendaApi::ConsentSolution::Subject id="testsubject" timestamp="2019-11-05T11:33:20.039Z">
44
41
  # IubendaApi::ConsentSolution::Subject.create(id: 'testsubject', email: 'subject@example.com', first_name: "John", last_name: "Doe", verified: false) # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
45
- # @see IubendaApi::ConsentSolution::Clients::Subject#create
46
- #
47
42
  #
48
43
 
49
- # @!method self.update(id, options = {})
44
+ # @!method self.update(id, options)
50
45
  # Updates a subject
51
- # @overload update(id)
52
- # @overload update(id, options)
53
- # @param [Hash] options options to send as subject attributes.
54
- # @see IubendaApi::ConsentSolution::Clients::Subject#update Options are same as IubendaApi::ConsentSolution::Clients::Subject#update options
46
+ # @param [Hash] options options to send as subject attributes. Options are same as IubendaApi::ConsentSolution::Clients::Subject#update options
47
+ # @see IubendaApi::ConsentSolution::Clients::Subject#update
55
48
  # @return [IubendaApi::ConsentSolution::Subject] if updated
56
49
  # @return [ApiStruct::Errors::Entity] if not found or failed
57
50
  # @example
58
51
  # IubendaApi::ConsentSolution::Subject.update('testsubject', email: 'subject@example.com') # -> #<IubendaApi::ConsentSolution::Subject id="testsubject" timestamp="2019-11-05T11:33:20.039Z">
59
52
  # IubendaApi::ConsentSolution::Subject.update('testsubject', email: 'subject@example.com') # -> #<ApiStruct::Errors::Entity body=#<Hashie::Mash message="Invalid authentication credentials"> error=true status=#<HTTP::Response::Status 403 Forbidden>>
60
- # @see IubendaApi::ConsentSolution::Clients::Subject#update
61
- #
62
53
  #
63
54
  client_service IubendaApi::ConsentSolution::Clients::Subject
64
55
 
@@ -81,10 +72,10 @@ module IubendaApi # :nodoc:
81
72
  # @return [Boolean] Reserved field used to signal whether a subject is verified, for instance via the double opt-in method
82
73
  #
83
74
  # @!attribute [r] preferences
84
- # @return [Object] Set of key-value pairs with user preferences for the consent action
75
+ # @return [Hash] Set of key-value pairs with user preferences for the consent action
85
76
  #
86
77
  # @!attribute [r] timestamp
87
- # @return [Object] Operation time, for instance creation time, update time
78
+ # @return [String] ISO 8601 timestamp. Operation time, for instance creation time, update time
88
79
  #
89
80
  # @!attribute [r] owner_id
90
81
  # @return [String] owner id of the subject
@@ -1,3 +1,3 @@
1
1
  module IubendaApi # :nodoc:
2
- VERSION = "1.0.0" # :nodoc:
2
+ VERSION = "1.0.1" # :nodoc:
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iubenda_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raihan Mahmud Arman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-07 00:00:00.000000000 Z
11
+ date: 2019-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: api_struct
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec_junit_formatter
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.4.1
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.4.1
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: webmock
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -115,6 +129,7 @@ executables: []
115
129
  extensions: []
116
130
  extra_rdoc_files: []
117
131
  files:
132
+ - ".circleci/config.yml"
118
133
  - ".gitignore"
119
134
  - ".rspec"
120
135
  - ".travis.yml"
@@ -128,7 +143,11 @@ files:
128
143
  - bin/setup
129
144
  - iubenda_api.gemspec
130
145
  - lib/iubenda_api.rb
146
+ - lib/iubenda_api/consent_solution/clients/consent.rb
147
+ - lib/iubenda_api/consent_solution/clients/legal_notice.rb
131
148
  - lib/iubenda_api/consent_solution/clients/subject.rb
149
+ - lib/iubenda_api/consent_solution/consent.rb
150
+ - lib/iubenda_api/consent_solution/legal_notice.rb
132
151
  - lib/iubenda_api/consent_solution/subject.rb
133
152
  - lib/iubenda_api/settings.rb
134
153
  - lib/iubenda_api/version.rb