mints 0.0.29 → 0.0.31

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +290 -32
  3. data/lib/contact/config/appointments.rb +1 -1
  4. data/lib/contact/config/config.rb +2 -2
  5. data/lib/contact/content/content.rb +2 -2
  6. data/lib/contact/content/conversations.rb +2 -2
  7. data/lib/contact/ecommerce/ecommerce.rb +6 -4
  8. data/lib/contact/ecommerce/order_items.rb +1 -1
  9. data/lib/contact/ecommerce/order_items_groups.rb +1 -1
  10. data/lib/contact/ecommerce/orders.rb +1 -2
  11. data/lib/contact/ecommerce/vouchers.rb +18 -0
  12. data/lib/contact.rb +9 -3
  13. data/lib/errors.rb +1 -1
  14. data/lib/mints/controllers/concerns/mints_clients.rb +3 -1
  15. data/lib/mints/helpers/contact_auth_helper.rb +2 -2
  16. data/lib/mints/helpers/proxy_controllers_methods.rb +1 -1
  17. data/lib/pub/config/attributes.rb +13 -0
  18. data/lib/pub/config/config.rb +15 -0
  19. data/lib/pub/config/public_folders.rb +51 -0
  20. data/lib/pub/config/tags.rb +42 -0
  21. data/lib/pub/config/taxonomies.rb +49 -0
  22. data/lib/pub/content/assets.rb +16 -0
  23. data/lib/pub/content/content.rb +22 -0
  24. data/lib/pub/content/content_bundles.rb +40 -0
  25. data/lib/pub/content/content_instance_versions.rb +56 -0
  26. data/lib/pub/content/content_instances.rb +37 -0
  27. data/lib/pub/content/forms.rb +47 -0
  28. data/lib/pub/content/stories.rb +44 -0
  29. data/lib/pub/content/story_versions.rb +46 -0
  30. data/lib/pub/ecommerce/ecommerce.rb +14 -0
  31. data/lib/pub/ecommerce/locations.rb +25 -0
  32. data/lib/pub/ecommerce/orders.rb +31 -0
  33. data/lib/pub/ecommerce/products.rb +45 -0
  34. data/lib/pub.rb +6 -427
  35. data/lib/user/config/config.rb +1 -1
  36. data/lib/user/config/public_folders.rb +1 -1
  37. data/lib/user/config/users.rb +4 -4
  38. data/lib/user/content/content.rb +0 -55
  39. data/lib/user/content/forms.rb +4 -4
  40. data/lib/user/content/messages.rb +4 -4
  41. data/lib/user/content/stories.rb +8 -5
  42. data/lib/user/content/story_templates.rb +2 -2
  43. data/lib/user/crm/contacts.rb +0 -13
  44. data/lib/user/crm/workflow_steps.rb +4 -4
  45. data/lib/user/crm/workflows.rb +4 -4
  46. data/lib/user/ecommerce/ecommerce.rb +2 -0
  47. data/lib/user/ecommerce/locations.rb +2 -2
  48. data/lib/user/ecommerce/order_items_groups.rb +2 -2
  49. data/lib/user/ecommerce/skus.rb +2 -2
  50. data/lib/user/ecommerce/vouchers.rb +90 -0
  51. metadata +21 -2
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicTags
4
+ ##
5
+ # === Get Tags.
6
+ # Get a collection of tags.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
10
+ #
11
+ # ==== First Example
12
+ # @data = @mints_pub.get_tags
13
+ #
14
+ # ==== Second Example
15
+ # options = {
16
+ # fields: "id, tag"
17
+ # }
18
+ # @data = @mints_pub.get_tags(options)
19
+ def get_tags(options = nil)
20
+ @client.raw('get', '/config/tags', options)
21
+ end
22
+
23
+ ##
24
+ # === Get Tag.
25
+ # Get a single tag.
26
+ #
27
+ # ==== Parameters
28
+ # slug:: (String) -- It's the string identifier generated by Mints.
29
+ # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
30
+ #
31
+ # ==== First Example
32
+ # @data = @mints_pub.get_tag("tag_slug")
33
+ #
34
+ # ==== Second Example
35
+ # options = {
36
+ # fields: "id, tag"
37
+ # }
38
+ # @data = @mints_pub.get_tag("tag-example", options)
39
+ def get_tag(slug, options = nil)
40
+ @client.raw('get', "/config/tags/#{slug}", options)
41
+ end
42
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicTaxonomies
4
+ ##
5
+ # === Get Taxonomies.
6
+ # Get a collection of taxonomies.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
10
+ # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
11
+ #
12
+ # ==== First Example
13
+ # @data = @mints_pub.get_taxonomies
14
+ #
15
+ # ==== Second Example
16
+ # options = {
17
+ # fields: 'id, title'
18
+ # }
19
+ # @data = @mints_pub.get_taxonomies(options)
20
+ #
21
+ # ==== Third Example
22
+ # options = {
23
+ # fields: 'id, title'
24
+ # }
25
+ # @data = @mints_pub.get_taxonomies(options, false)
26
+ def get_taxonomies(options = nil, use_post = true)
27
+ get_query_results('/config/taxonomies', options, use_post)
28
+ end
29
+
30
+ ##
31
+ # === Get Taxonomy.
32
+ # Get a single taxonomy.
33
+ #
34
+ # ==== Parameters
35
+ # slug:: (String) -- It's the string identifier generated by Mints.
36
+ # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
37
+ #
38
+ # ==== First Example
39
+ # @data = @mints_pub.get_taxonomy('taxonomy_slug')
40
+ #
41
+ # ==== Second Example
42
+ # options = {
43
+ # fields: 'title'
44
+ # }
45
+ # @data = @mints_pub.get_taxonomy('taxonomy_slug', options)
46
+ def get_taxonomy(slug, options = nil)
47
+ @client.raw('get', "/config/taxonomies/#{slug}", options)
48
+ end
49
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicAssets
4
+ ##
5
+ # === Get Asset Info.
6
+ # Get a description of an Asset.
7
+ #
8
+ # ==== Parameters
9
+ # slug:: (String) -- It's the string identifier of the asset.
10
+ #
11
+ # ==== Example
12
+ # @data = @mints_pub.get_asset_info("asset_slug")
13
+ def get_asset_info(slug)
14
+ @client.raw('get', "/content/asset-info/#{slug}")
15
+ end
16
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ ### V1/CONTENT ###
4
+
5
+ require_relative './assets'
6
+ require_relative './content_bundles'
7
+ require_relative './content_instance_versions'
8
+ require_relative './content_instances'
9
+ require_relative './forms'
10
+ require_relative './stories'
11
+ require_relative './story_versions'
12
+
13
+ module PublicContent
14
+ include PublicAssets
15
+ include PublicContentBundles
16
+ include PublicContentInstanceVersions
17
+ include PublicContentInstances
18
+ include PublicForms
19
+ include PublicStories
20
+ include PublicStoryVersions
21
+
22
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicContentBundles
4
+ ##
5
+ # === Get Content Pages.
6
+ # Get all content pages.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
10
+ def get_content_bundles(options = nil)
11
+ @client.raw('get', '/content/content-bundles', options)
12
+ end
13
+
14
+ ##
15
+ # === Get Content Page.
16
+ # Get a single content page.
17
+ #
18
+ # ==== Parameters
19
+ # slug:: (String) -- It's the string identifier generated by Mints.
20
+ #
21
+ # ==== Example
22
+ # @data = @mints_pub.get_content_page("test-page")
23
+ def get_content_page(slug, options = nil)
24
+ warn '[DEPRECATED] The get_content_page method is deprecated and will be removed in the future, use get_content_bundle instead'
25
+ @client.raw('get', "/content/content-pages/#{slug}", options)
26
+ end
27
+
28
+ ##
29
+ # === Get Content Bundle.
30
+ # Get a single content bundle.
31
+ #
32
+ # ==== Parameters
33
+ # slug:: (String) -- It's the string identifier generated by Mints.
34
+ #
35
+ # ==== Example
36
+ # @data = @mints_pub.get_content_bundle("test-page")
37
+ def get_content_bundle(slug, options = nil)
38
+ @client.raw('get', "/content/content-bundles/#{slug}", options)
39
+ end
40
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicContentInstanceVersions
4
+ ##
5
+ # === Get Content Instance Versions.
6
+ # Get a collection of content instance versions.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
10
+ # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
11
+ #
12
+ # ==== First Example
13
+ # @data = @mints_pub.get_content_instance_versions
14
+ #
15
+ # ==== Second Example
16
+ # options = {
17
+ # fields: 'id, title'
18
+ # }
19
+ # @data = @mints_pub.get_content_instance_versions(options)
20
+ #
21
+ # ==== Third Example
22
+ # options = {
23
+ # fields: 'id, title'
24
+ # }
25
+ # @data = @mints_pub.get_content_instance_versions(options, false)
26
+ def get_content_instance_versions(options = nil)
27
+ unless options&.[](:template) || options&.[]('template')
28
+ raise Mints::Errors::DynamicError.new(
29
+ self,
30
+ 'Error 422 | Missing required fields, see the details for more information',
31
+ 'Add the template option, example { template: slug }',
32
+ 422,
33
+ { template: ['The template option is required'] }
34
+ )
35
+ end
36
+
37
+ @client.raw('get', '/content/content-instance-versions', options)
38
+ end
39
+
40
+ ##
41
+ # === Get Content Instance Version.
42
+ # Get a single content instance version.
43
+ #
44
+ # ==== Parameters
45
+ # slug:: (String) -- It's the string identifier generated by Mints.
46
+ # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
47
+ #
48
+ # ==== First Example
49
+ # @data = @mints_pub.get_content_instance_version('content_instance_version_slug')
50
+ #
51
+ # ==== Second Example
52
+ # @data = @mints_pub.get_content_instance_version('content_instance_version_slug', options)
53
+ def get_content_instance_version(slug, options = nil)
54
+ @client.raw('get', "/content/content-instance-versions/#{slug}", options)
55
+ end
56
+ end
@@ -0,0 +1,37 @@
1
+ module PublicContentInstances
2
+ ##
3
+ # === Get Content Instances.
4
+ # Get a collection of content instances. _Note:_ Options must be specified.
5
+ #
6
+ # ==== Parameters
7
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
8
+ #
9
+ # ==== First Example
10
+ # options = {
11
+ # "template": "content_instance_template_slug"
12
+ # }
13
+ # @data = @mints_pub.get_content_instances(options)
14
+ #
15
+ # ==== Second Example
16
+ # options = {
17
+ # "template": "content_instance_template_slug",
18
+ # sort: "-id"
19
+ # }
20
+ # @data = @mints_pub.get_content_instances(options)
21
+ def get_content_instances(options = nil)
22
+ @client.raw('get', '/content/content-instances', options)
23
+ end
24
+
25
+ ##
26
+ # === Get Content Instance.
27
+ # Get a single content instance.
28
+ #
29
+ # ==== Parameters
30
+ # slug:: (String) -- It's the string identifier generated by Mints.
31
+ #
32
+ # ==== Example
33
+ # @data = @mints_pub.get_content_instance("content_instance_slug")
34
+ def get_content_instance(slug)
35
+ @client.raw('get', "/content/content-instances/#{slug}")
36
+ end
37
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicForms
4
+ ##
5
+ # === Get Forms.
6
+ # Get a collection of forms.
7
+ #
8
+ # ==== Example
9
+ # @data = @mints_pub.get_forms
10
+ def get_forms(options = nil)
11
+ @client.raw('get', '/content/forms', options)
12
+ end
13
+
14
+ ##
15
+ # === Get Form.
16
+ # Get a single form.
17
+ #
18
+ # ==== Parameters
19
+ # slug:: (String) -- It's the string identifier generated by Mints.
20
+ #
21
+ # ==== Example
22
+ # @data = @mints_pub.get_form("form_slug")
23
+ def get_form(slug, options = nil)
24
+ @client.raw('get', "/content/forms/#{slug}", options)
25
+ end
26
+
27
+ ##
28
+ # === Submit Form.
29
+ # Submit a form with data.
30
+ #
31
+ # ==== Parameters
32
+ # data:: (Hash) -- Data to be submitted.
33
+ #
34
+ # ==== Example
35
+ # data = {
36
+ # 'form_slug': 'form_slug',
37
+ # 'email': 'email@example.com',
38
+ # 'given_name': 'given_name',
39
+ # 'f1': 'Field 1 answer',
40
+ # 'f2': 'Field 2 answer',
41
+ # 'f3': 'Field 3 answer'
42
+ # }
43
+ # @data = @mints_pub.submit_form(data)
44
+ def submit_form(data)
45
+ @client.raw('post', '/content/forms/submit', nil, data_transform(data))
46
+ end
47
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicStories
4
+ ##
5
+ # === Get Stories.
6
+ # Get a collection of stories.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
10
+ # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
11
+ #
12
+ # ==== First Example
13
+ # @data = @mints_pub.get_stories
14
+ #
15
+ # ==== Second Example
16
+ # options = { fields: 'id, slug' }
17
+ # @data = @mints_pub.get_stories(options)
18
+ #
19
+ # ==== Third Example
20
+ # options = {
21
+ # fields: 'id, slug'
22
+ # }
23
+ # @data = @mints_pub.get_stories(options, false)
24
+ def get_stories(options = nil, use_post = true)
25
+ get_query_results('/content/stories', options, use_post)
26
+ end
27
+
28
+ ##
29
+ # === Get Story.
30
+ # Get a single story.
31
+ #
32
+ # ==== Parameters
33
+ # slug:: (String) -- It's the string identifier generated by Mints.
34
+ # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
35
+ #
36
+ # ==== First Example
37
+ # @data = @mints_pub.get_story("story_slug")
38
+ #
39
+ # ==== Second Example
40
+ # @data = @mints_pub.get_story("story_slug", options.to_json)
41
+ def get_story(slug, options = nil)
42
+ @client.raw('get', "/content/stories/#{slug}", options)
43
+ end
44
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicStoryVersions
4
+ ##
5
+ # === Get Story Versions.
6
+ # Get a collection of story version.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
10
+ # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
11
+ #
12
+ # ==== First Example
13
+ # @data = @mints_pub.get_story_versions
14
+ #
15
+ # ==== Second Example
16
+ # options = {
17
+ # fields: 'id, title'
18
+ # }
19
+ # @data = @mints_pub.get_story_versions(options)
20
+ #
21
+ # ==== Third Example
22
+ # options = {
23
+ # fields: 'id, title'
24
+ # }
25
+ # @data = @mints_pub.get_story_versions(options, false)
26
+ def get_story_versions(options = nil, use_post = true)
27
+ get_query_results('/content/story-versions', options, use_post)
28
+ end
29
+
30
+ ##
31
+ # === Get Story Version.
32
+ # Get a single story version.
33
+ #
34
+ # ==== Parameters
35
+ # slug:: (String) -- It's the string identifier generated by Mints.
36
+ # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
37
+ #
38
+ # ==== First Example
39
+ # @data = @mints_pub.get_story_version('story_slug')
40
+ #
41
+ # ==== Second Example
42
+ # @data = @mints_pub.get_story_version('story_slug', options)
43
+ def get_story_version(slug, options = nil)
44
+ @client.raw('get', "/content/story-versions/#{slug}", options)
45
+ end
46
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ ### V1/ECOMMERCE ###
4
+
5
+ require_relative './locations'
6
+ require_relative './products'
7
+ require_relative './orders'
8
+
9
+ module PublicEcommerce
10
+ include PublicLocations
11
+ include PublicProducts
12
+ include PublicOrders
13
+
14
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicLocations
4
+ ##
5
+ # === Get Locations.
6
+ # Get all locations.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
10
+ # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
11
+ #
12
+ # ==== First Example
13
+ # @data = @mints_pub.get_locations
14
+ #
15
+ # ==== Second Example
16
+ # options = { fields: "title" }
17
+ # @data = @mints_pub.get_locations(options)
18
+ #
19
+ # ==== Third Example
20
+ # options = { fields: "title" }
21
+ # @data = @mints_pub.get_locations(options, false)
22
+ def get_locations(options = nil, use_post = true)
23
+ get_query_results('/ecommerce/locations', options, use_post)
24
+ end
25
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicOrders
4
+ ##
5
+ # === Get My Shopping Cart.
6
+ # Get a collection of items in the shopping cart.
7
+ #
8
+ # ==== Example
9
+ # @data = @mints_ pub.get_my_shopping_cart
10
+ def get_my_shopping_cart(options = nil)
11
+ @client.raw('get', '/ecommerce/my-shopping-cart', options, nil)
12
+ end
13
+
14
+ ##
15
+ # === Add Item To Shopping Cart.
16
+ # Add an item into a shopping cart.
17
+ #
18
+ # ==== Parameters
19
+ # data:: (Hash) -- Data to be submitted.
20
+ #
21
+ # ==== Example
22
+ # data = {
23
+ # quantity: 1,
24
+ # sku_id: 1,
25
+ # price_list_id: 1
26
+ # }
27
+ # @data = @mints_ pub.add_item_to_shopping_cart(data)
28
+ def add_item_to_shopping_cart(data, options = nil)
29
+ @client.raw('post', '/ecommerce/shopping-cart', options, data_transform(data))
30
+ end
31
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicProducts
4
+ ##
5
+ # === Get Products.
6
+ # Get a collection of products.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
10
+ # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
11
+ #
12
+ # ==== First Example
13
+ # @data = @mints_pub.get_products
14
+ #
15
+ # ==== Second Example
16
+ # options = { fields: "title" }
17
+ # @data = @mints_pub.get_products(options)
18
+ #
19
+ # ==== Third Example
20
+ # options = { fields: "title" }
21
+ # @data = @mints_pub.get_products(options, false)
22
+ def get_products(options = nil, use_post = true)
23
+ get_query_results('/ecommerce/products', options, use_post)
24
+ end
25
+
26
+ ##
27
+ # === Get Product.
28
+ # Get a single product.
29
+ #
30
+ # ==== Parameters
31
+ # slug:: (String) -- It's the string identifier generated by Mints.
32
+ # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
33
+ #
34
+ # ==== First Example
35
+ # @data = @mints_pub.get_product("product_slug")
36
+ #
37
+ # ==== Second Example
38
+ # options = {
39
+ # fields: 'id, slug'
40
+ # }
41
+ # @data = @mints_pub.get_product("lego-set", options)
42
+ def get_product(slug, options = nil)
43
+ @client.raw('get', "/ecommerce/products/#{slug}", options)
44
+ end
45
+ end