freckle_io 0.1.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +7 -5
- data/freckle-io.gemspec +3 -3
- data/lib/freckle_io/client/entries.rb +1 -26
- data/lib/freckle_io/client/project_groups.rb +0 -2
- data/lib/freckle_io/client/projects.rb +1 -13
- data/lib/freckle_io/client/tags.rb +1 -6
- data/lib/freckle_io/client/users.rb +1 -6
- data/lib/freckle_io/configuration.rb +5 -5
- data/lib/freckle_io/connection.rb +1 -3
- data/lib/freckle_io/params.rb +5 -10
- data/lib/freckle_io/request/multiple_pages.rb +3 -3
- data/lib/freckle_io/request/single_page.rb +2 -2
- data/lib/freckle_io/validator/base_contract.rb +16 -0
- data/lib/freckle_io/validator/entry.rb +26 -50
- data/lib/freckle_io/validator/project.rb +13 -39
- data/lib/freckle_io/validator/project_group.rb +5 -24
- data/lib/freckle_io/validator/tag.rb +5 -24
- data/lib/freckle_io/validator/user.rb +13 -37
- data/lib/freckle_io/validator/validation.yml +8 -13
- data/lib/freckle_io.rb +1 -1
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Entries/with_configuration/_all/result_must_be_a_Request_MultiplePages.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Entries/with_configuration/_all/returns_a_entry_for_each_response.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Entries/with_configuration/with_unknow_params/doesn_t_raise_a_invalid_params_error.yml +53 -0
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Entries/with_configuration/with_valid_params/params_should_be_valid.yml +22 -17
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Entries/with_configuration/with_validator/call_entry_s_validator.yml +24 -19
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_ProjectGroups/with_configuration/_all/result_must_be_a_Request_MultiplePages.yml +261 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_ProjectGroups/with_configuration/_all/returns_a_project_group_for_each_response.yml +262 -36
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_ProjectGroups/with_configuration/with_unknow_params/doesn_t_raises_a_invalid_params_error.yml +325 -0
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_ProjectGroups/with_configuration/with_valid_params/params_should_be_valid.yml +22 -17
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_ProjectGroups/with_configuration/with_validator/call_project_group_s_validator.yml +261 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Projects/with_configuration/_all/result_must_be_a_Request_MultiplePages.yml +501 -225
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Projects/with_configuration/_all/returns_a_project_for_each_response.yml +501 -225
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Projects/with_configuration/_show/get_a_spacific_project.yml +24 -19
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Projects/with_configuration/_show/raw_links_should_be_a_empty_array.yml +24 -19
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Projects/with_configuration/with_unknow_params/doesn_t_raises_a_invalid_params_error.yml +865 -0
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Projects/with_configuration/with_valid_params/params_should_be_valid.yml +22 -17
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Projects/with_configuration/with_validator/call_project_s_validator.yml +502 -226
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Tags/with_configuration/_all/result_must_be_a_Request_MultiplePages.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Tags/with_configuration/_all/returns_a_tag_for_each_response.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Tags/with_configuration/with_unknow_params/doesn_t_raise_a_invalid_params_error.yml +53 -0
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Tags/with_configuration/with_valid_params/params_should_be_valid.yml +22 -17
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Tags/with_configuration/with_validator/call_tag_s_validator.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Users/with_configuration/_all/result_must_be_a_Request_MultiplePages.yml +45 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Users/with_configuration/_all/returns_a_user_for_each_response.yml +45 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Users/with_configuration/with_unknow_params/doesn_t_raise_a_invalid_params_error.yml +109 -0
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Users/with_configuration/with_valid_params/params_should_be_valid.yml +22 -17
- data/spec/fixtures/vcr_cassettes/FreckleIO_Client_Users/with_configuration/with_validator/call_user_s_validator.yml +45 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Connection/with_default_configuration/with_a_valid_response/must_be_a_json_format.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Connection/with_default_configuration/with_freckle_token_authentication/set_X-FreckleToken.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Connection/with_default_configuration/with_header/set_user_agent.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Connection/with_default_configuration/with_invalid_url/raises_a_resource_not_found_error_for_invalid_resource.yml +13 -16
- data/spec/fixtures/vcr_cassettes/FreckleIO_Connection/with_default_configuration/with_page_param/response_must_be_success.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Connection/with_default_configuration/with_per_page_param/response_must_have_per_page_elements.yml +24 -19
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_MultiplePages/with_configuration/_get/returns_an_array_of_faraday_response.yml +45 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_MultiplePages/with_configuration/_get/returns_freckle_default_per_page_elements.yml +45 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_MultiplePages/with_per_page/_get/return_per_page_number_elements.yml +74 -59
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_first/next_page_should_be_a_SinglePage.yml +45 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_first/prev_page_should_be_nil.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_first/when_get_last_page_from_the_first_page/next_should_be_nil.yml +45 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_get/returns_correct_raw_links_for_the_first_page.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_last/next_page_should_be_nil.yml +45 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_last/returns_correct_raw_links_for_the_last_page.yml +45 -35
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_last/when_get_prev_page_from_the_last_page/prev_should_be_nil.yml +67 -52
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_next/previous_page_is_a_SinglePage.yml +67 -52
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_next/previous_page_should_be_not_nil.yml +67 -52
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_prev/next_page_is_a_SinglePage.yml +89 -69
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_prev/when_get_prev_page_from_the_first_page/prev_should_be_nil.yml +67 -52
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_total_page/with_first_page/returns_the_range_of_pages.yml +23 -18
- data/spec/fixtures/vcr_cassettes/FreckleIO_Request_SinglePage/with_configuration/_total_page/with_next_page/returns_an_empty_array.yml +45 -35
- data/spec/freckle_io/client/entries_spec.rb +23 -32
- data/spec/freckle_io/client/project_groups_spec.rb +11 -20
- data/spec/freckle_io/client/projects_spec.rb +15 -21
- data/spec/freckle_io/client/tags_spec.rb +10 -19
- data/spec/freckle_io/client/users_spec.rb +13 -21
- data/spec/freckle_io/configuration_spec.rb +7 -4
- data/spec/freckle_io/connection_spec.rb +1 -1
- data/spec/freckle_io/paginator_spec.rb +8 -8
- data/spec/freckle_io/params_spec.rb +1 -1
- data/spec/freckle_io/request/single_page_spec.rb +6 -6
- data/spec/spec_helper.rb +3 -3
- data/spec/support/anonymize/entries.rb +9 -8
- data/spec/support/anonymize/project_groups.rb +4 -3
- data/spec/support/anonymize/projects.rb +9 -8
- data/spec/support/anonymize/tags.rb +5 -4
- data/spec/support/anonymize/users.rb +13 -15
- data/spec/support/anonymize_interaction.rb +5 -5
- metadata +29 -24
- data/lib/freckle_io/validator/restricted_hash.rb +0 -11
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://foo.com/
|
5
|
+
uri: http://foo.com/6
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -16,33 +16,38 @@ http_interactions:
|
|
16
16
|
response:
|
17
17
|
status:
|
18
18
|
code: 200
|
19
|
-
message:
|
19
|
+
message: ''
|
20
20
|
headers:
|
21
21
|
Server:
|
22
22
|
- nginx
|
23
23
|
Date:
|
24
|
-
-
|
24
|
+
- Wed, 19 Oct 2022 15:06:58 GMT
|
25
25
|
Content-Type:
|
26
26
|
- application/json; charset=utf-8
|
27
|
-
Content-Length:
|
28
|
-
- '2284'
|
29
|
-
Connection:
|
30
|
-
- keep-alive
|
31
|
-
Status:
|
32
|
-
- 200 OK
|
33
|
-
Cache-Control:
|
34
|
-
- private, max-age=0, must-revalidate
|
35
27
|
X-Frame-Options:
|
36
28
|
- SAMEORIGIN
|
29
|
+
X-Xss-Protection:
|
30
|
+
- '0'
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
X-Download-Options:
|
34
|
+
- noopen
|
35
|
+
X-Permitted-Cross-Domain-Policies:
|
36
|
+
- none
|
37
|
+
Referrer-Policy:
|
38
|
+
- strict-origin-when-cross-origin
|
39
|
+
Etag:
|
40
|
+
- W/"58eed19f9cd175d6241e523f9e2d6e81"
|
41
|
+
Cache-Control:
|
42
|
+
- max-age=0, private, must-revalidate
|
43
|
+
X-Request-Id:
|
44
|
+
- 8722dbed-f573-4cec-a67c-94493488ee9b
|
37
45
|
X-Runtime:
|
38
|
-
- '
|
46
|
+
- '0.094024'
|
39
47
|
Vary:
|
40
48
|
- Origin
|
41
|
-
Strict-Transport-Security:
|
42
|
-
- max-age=31536000; includeSubdomains
|
43
49
|
body:
|
44
|
-
encoding:
|
45
|
-
string: '{"id":0,"name":"name_0","description":"","billing_increment":5,"enabled":
|
46
|
-
|
47
|
-
|
48
|
-
recorded_with: VCR 4.0.0
|
50
|
+
encoding: ASCII-8BIT
|
51
|
+
string: '{"id":0,"name":"name_0","description":"","billing_increment":5,"enabled":true,"billable":true,"color":"#f6bed7","created_at":"2020-12-16T18:27:04Z","updated_at":"2022-08-07T21:24:00Z","group":{"id":1,"name":"name_1","url":"http://foo.com/0"},"minutes":3930,"billable_minutes":3495,"unbillable_minutes":435,"invoiced_minutes":0,"uninvoiced_minutes":3495,"remaining_minutes":null,"budgeted_minutes":null,"participants":[{"id":2,"email":"email_0@domain.com","first_name":"first_name_0","last_name":"last_name_0","profile_image_url":"http://foo.com/0","url":"http://foo.com/1"},{"id":3,"email":"email_1@domain.com","first_name":"first_name_1","last_name":"last_name_1","profile_image_url":"http://foo.com/1","url":"http://foo.com/2"},{"id":4,"email":"email_2@domain.com","first_name":"first_name_2","last_name":"last_name_2","profile_image_url":"http://foo.com/2","url":"http://foo.com/3"},{"id":5,"email":"email_3@domain.com","first_name":"first_name_3","last_name":"last_name_3","profile_image_url":"http://foo.com/3","url":"http://foo.com/4"},{"id":6,"email":"email_4@domain.com","first_name":"first_name_4","last_name":"last_name_4","profile_image_url":"http://foo.com/4","url":"http://foo.com/5"}],"entries":51,"entries_url":"http://foo.com/6/entries","url":"http://foo.com/6","merge_url":"http://foo.com/6/merge","archive_url":"http://foo.com/6/archive","unarchive_url":"http://foo.com/6/unarchive"}'
|
52
|
+
recorded_at: Wed, 19 Oct 2022 15:06:58 GMT
|
53
|
+
recorded_with: VCR 6.1.0
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://foo.com/
|
5
|
+
uri: http://foo.com/6
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -16,33 +16,38 @@ http_interactions:
|
|
16
16
|
response:
|
17
17
|
status:
|
18
18
|
code: 200
|
19
|
-
message:
|
19
|
+
message: ''
|
20
20
|
headers:
|
21
21
|
Server:
|
22
22
|
- nginx
|
23
23
|
Date:
|
24
|
-
-
|
24
|
+
- Wed, 19 Oct 2022 15:06:58 GMT
|
25
25
|
Content-Type:
|
26
26
|
- application/json; charset=utf-8
|
27
|
-
Content-Length:
|
28
|
-
- '2284'
|
29
|
-
Connection:
|
30
|
-
- keep-alive
|
31
|
-
Status:
|
32
|
-
- 200 OK
|
33
|
-
Cache-Control:
|
34
|
-
- private, max-age=0, must-revalidate
|
35
27
|
X-Frame-Options:
|
36
28
|
- SAMEORIGIN
|
29
|
+
X-Xss-Protection:
|
30
|
+
- '0'
|
31
|
+
X-Content-Type-Options:
|
32
|
+
- nosniff
|
33
|
+
X-Download-Options:
|
34
|
+
- noopen
|
35
|
+
X-Permitted-Cross-Domain-Policies:
|
36
|
+
- none
|
37
|
+
Referrer-Policy:
|
38
|
+
- strict-origin-when-cross-origin
|
39
|
+
Etag:
|
40
|
+
- W/"58eed19f9cd175d6241e523f9e2d6e81"
|
41
|
+
Cache-Control:
|
42
|
+
- max-age=0, private, must-revalidate
|
43
|
+
X-Request-Id:
|
44
|
+
- '035185e7-9d28-41e5-b345-5d4bda4ab537'
|
37
45
|
X-Runtime:
|
38
|
-
- '
|
46
|
+
- '0.079669'
|
39
47
|
Vary:
|
40
48
|
- Origin
|
41
|
-
Strict-Transport-Security:
|
42
|
-
- max-age=31536000; includeSubdomains
|
43
49
|
body:
|
44
|
-
encoding:
|
45
|
-
string: '{"id":0,"name":"name_0","description":"","billing_increment":5,"enabled":
|
46
|
-
|
47
|
-
|
48
|
-
recorded_with: VCR 4.0.0
|
50
|
+
encoding: ASCII-8BIT
|
51
|
+
string: '{"id":0,"name":"name_0","description":"","billing_increment":5,"enabled":true,"billable":true,"color":"#f6bed7","created_at":"2020-12-16T18:27:04Z","updated_at":"2022-08-07T21:24:00Z","group":{"id":1,"name":"name_1","url":"http://foo.com/0"},"minutes":3930,"billable_minutes":3495,"unbillable_minutes":435,"invoiced_minutes":0,"uninvoiced_minutes":3495,"remaining_minutes":null,"budgeted_minutes":null,"participants":[{"id":2,"email":"email_0@domain.com","first_name":"first_name_0","last_name":"last_name_0","profile_image_url":"http://foo.com/0","url":"http://foo.com/1"},{"id":3,"email":"email_1@domain.com","first_name":"first_name_1","last_name":"last_name_1","profile_image_url":"http://foo.com/1","url":"http://foo.com/2"},{"id":4,"email":"email_2@domain.com","first_name":"first_name_2","last_name":"last_name_2","profile_image_url":"http://foo.com/2","url":"http://foo.com/3"},{"id":5,"email":"email_3@domain.com","first_name":"first_name_3","last_name":"last_name_3","profile_image_url":"http://foo.com/3","url":"http://foo.com/4"},{"id":6,"email":"email_4@domain.com","first_name":"first_name_4","last_name":"last_name_4","profile_image_url":"http://foo.com/4","url":"http://foo.com/5"}],"entries":51,"entries_url":"http://foo.com/6/entries","url":"http://foo.com/6","merge_url":"http://foo.com/6/merge","archive_url":"http://foo.com/6/archive","unarchive_url":"http://foo.com/6/unarchive"}'
|
52
|
+
recorded_at: Wed, 19 Oct 2022 15:06:58 GMT
|
53
|
+
recorded_with: VCR 6.1.0
|