mints 0.0.29 → 0.0.30

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
  SHA256:
3
- metadata.gz: 7a43644b57a99c773dba9934104719cad9bd4c4605f1cc801783a7cf7dd1d8dc
4
- data.tar.gz: d97a25f0d2414ef4e97fc9d5b516b5d9773bfd4a5867cf92e4940d51c722c11a
3
+ metadata.gz: 6a9a445aee572bf7d3208545a3fed7fef5979e0151d7bdacde92b060e1142d6e
4
+ data.tar.gz: 14f88f53ccff619b7e3980c0ea606ce05e71461129885f47f7c59dc4a88cb5c4
5
5
  SHA512:
6
- metadata.gz: fb667cc4ec647580977fa48e0e164dc96aaa389c27f9ab258772632fa85888ddddc1d93c63c1c7cc9bd51682879d86cb599898d2fad8471dac0ee244779291e8
7
- data.tar.gz: 405f7d336e2b135fba5d07a5195d5e2a82bd4976d55d59110dd9bb71026aa6236dff49ec8c25e02086f494011dfef8f0f31dc1c25b4676589665ff3dd53bad0a
6
+ metadata.gz: 895fed64e6d46023b5e34c2a26fb751d10ea8f8115c64648b130cde117da07c9fa59cbfc5a343a0850641d9ee8fbcda42addd9583681d4da7135beb2d0e51e4a
7
+ data.tar.gz: 9ca24a98b56455221ddb5f56a143debd9f15ecd979a019970d2915bf15ee3a18d2c70c83aa4a94a9f36aad1fee81b84cee905f76b4f793ab9eba59de57c28ccf
@@ -3,10 +3,12 @@
3
3
  require_relative './order_items_groups'
4
4
  require_relative './order_items'
5
5
  require_relative './orders'
6
+ require_relative './vouchers'
6
7
 
7
8
  module Ecommerce
8
9
  include OrderItemsGroups
9
10
  include OrderItems
10
11
  include Orders
12
+ include Vouchers
11
13
 
12
14
  end
@@ -108,7 +108,6 @@ module Orders
108
108
  #
109
109
  # ==== Example
110
110
  # @data = @mints_contact.get_my_shopping_cart
111
- # FIXME: This method returns a nil data.
112
111
  def get_my_shopping_cart(options = nil)
113
112
  @client.raw('get', '/ecommerce/my-shopping-cart', options, nil, @contact_v1_url)
114
113
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vouchers
4
+ ##
5
+ # === Apply voucher.
6
+ # Apply voucher code to the existing order, only applies to sale orders.
7
+ #
8
+ # ==== Parameters
9
+ # order_id:: (Integer) -- Order id.
10
+ # data:: (Hash) -- Data to be submitted.
11
+ #
12
+ # ==== Example
13
+ # data = { description: 'This is the transaction description', voucher_code: 'XAZWQ12MP' }
14
+ # @data = @mints_contact.apply_voucher(1, data)
15
+ def apply_voucher(order_id, data)
16
+ @client.raw('post', "/ecommerce/orders/#{order_id}/voucher", nil, data_transform(data))
17
+ end
18
+ end
data/lib/errors.rb CHANGED
@@ -11,7 +11,7 @@ module Mints
11
11
  '401' => 'AccessDeniedException',
12
12
  '404' => 'ResourceNotFoundException',
13
13
  '422' => 'ValidationException',
14
- '405' => 'MethodNotAllowed',
14
+ '405' => 'MethodNotAllowedException',
15
15
  'default' => 'InternalServerException',
16
16
  }
17
17
 
@@ -43,9 +43,9 @@ module ContactAuthHelper
43
43
  def mints_contact_logout
44
44
  # Logout from mints
45
45
  @mints_contact.logout
46
- # Delete local cookie
46
+ # Delete session token and keep the contact token id
47
+ # Never delete the mints_contact_id cookie to avoid the creation of ghosts
47
48
  cookies.delete(:mints_contact_session_token)
48
- cookies.delete(:mints_contact_id)
49
49
  @contact_token = nil
50
50
  end
51
51
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Attributes
4
+ ##
5
+ # === Get Attributes.
6
+ # Get a collection of attributes.
7
+ #
8
+ # ==== Example
9
+ # @data = @mints_pub.get_attributes
10
+ def get_attributes
11
+ @client.raw('get', '/config/attributes')
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ ### V1/CONFIG ###
4
+
5
+ require_relative './attributes'
6
+ require_relative './public_folders'
7
+ require_relative './tags'
8
+ require_relative './taxonomies'
9
+
10
+ module Config
11
+ include Attributes
12
+ include PublicFolders
13
+ include Tags
14
+ include Taxonomies
15
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PublicFolders
4
+ ##
5
+ # === Get Public Folders.
6
+ # Get a collection of public folders.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
10
+ #
11
+ # ==== First Example
12
+ # options = {
13
+ # object_type: "products"
14
+ # }
15
+ # @data = @mints_pub.get_public_folders(options)
16
+ #
17
+ # ==== Second Example
18
+ # options = {
19
+ # object_type: "products",
20
+ # fields: "id",
21
+ # sort: "-id"
22
+ # }
23
+ # @data = @mints_pub.get_public_folders(options)
24
+ def get_public_folders(options = nil)
25
+ @client.raw('get', '/config/public-folders', options)
26
+ end
27
+
28
+ ##
29
+ # === Get Public Folder.
30
+ # Get a public folder info.
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
+ # options = {
38
+ # object_type: "products"
39
+ # }
40
+ # @data = @mints_pub.get_public_folder('yellow', options)
41
+ #
42
+ # ==== Second Example
43
+ # options = {
44
+ # object_type: "products",
45
+ # fields: 'id, title'
46
+ # }
47
+ # @data = @mints_pub.get_public_folder('yellow', options)
48
+ def get_public_folder(slug, options)
49
+ @client.raw('get', "/config/public-folders/#{slug}", options)
50
+ end
51
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tags
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 Taxonomies
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 Assets
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 Content
14
+ include Assets
15
+ include ContentBundles
16
+ include ContentInstanceVersions
17
+ include ContentInstances
18
+ include Forms
19
+ include Stories
20
+ include StoryVersions
21
+
22
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContentBundles
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 ContentInstanceVersions
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 ContentInstances
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 Forms
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 Stories
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 StoryVersions
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 Ecommerce
10
+ include Locations
11
+ include Products
12
+ include Orders
13
+
14
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Locations
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 Orders
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 Products
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
data/lib/pub.rb CHANGED
@@ -3,6 +3,9 @@
3
3
  require 'yaml'
4
4
  require_relative './client'
5
5
  require_relative './mints/helpers/mints_helper'
6
+ require_relative './pub/content/content'
7
+ require_relative './pub/ecommerce/ecommerce'
8
+ require_relative './pub/config/config'
6
9
 
7
10
  module Mints
8
11
  ##
@@ -61,6 +64,9 @@ module Mints
61
64
  attr_reader :client
62
65
 
63
66
  include MintsHelper
67
+ include Content
68
+ include Ecommerce
69
+ include Config
64
70
 
65
71
  ##
66
72
  # === Initialize.
@@ -118,433 +124,6 @@ module Mints
118
124
  @client.raw('get', "/register-visit-timer?visit=#{visit}&time=#{time}")
119
125
  end
120
126
 
121
- ### V1/CONTENT ###
122
-
123
- ##
124
- # === Get Asset Info.
125
- # Get a description of an Asset.
126
- #
127
- # ==== Parameters
128
- # slug:: (String) -- It's the string identifier of the asset.
129
- #
130
- # ==== Example
131
- # @data = @mints_pub.get_asset_info("asset_slug")
132
- def get_asset_info(slug)
133
- @client.raw('get', "/content/asset-info/#{slug}")
134
- end
135
-
136
- ##
137
- # === Get Stories.
138
- # Get a collection of stories.
139
- #
140
- # ==== Parameters
141
- # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
142
- # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
143
- #
144
- # ==== First Example
145
- # @data = @mints_pub.get_stories
146
- #
147
- # ==== Second Example
148
- # options = { fields: 'id, slug' }
149
- # @data = @mints_pub.get_stories(options)
150
- #
151
- # ==== Third Example
152
- # options = {
153
- # fields: 'id, slug'
154
- # }
155
- # @data = @mints_pub.get_stories(options, false)
156
- def get_stories(options = nil, use_post = true)
157
- get_query_results('/content/stories', options, use_post)
158
- end
159
-
160
- ##
161
- # === Get Story.
162
- # Get a single story.
163
- #
164
- # ==== Parameters
165
- # slug:: (String) -- It's the string identifier generated by Mints.
166
- # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
167
- #
168
- # ==== First Example
169
- # @data = @mints_pub.get_story("story_slug")
170
- #
171
- # ==== Second Example
172
- # @data = @mints_pub.get_story("story_slug", options.to_json)
173
- def get_story(slug, options = nil)
174
- @client.raw('get', "/content/stories/#{slug}", options)
175
- end
176
-
177
- ##
178
- # === Get Story Versions.
179
- # Get a collection of story version.
180
- #
181
- # ==== Parameters
182
- # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
183
- # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
184
- #
185
- # ==== First Example
186
- # @data = @mints_pub.get_story_versions
187
- #
188
- # ==== Second Example
189
- # options = {
190
- # fields: 'id, title'
191
- # }
192
- # @data = @mints_pub.get_story_versions(options)
193
- #
194
- # ==== Third Example
195
- # options = {
196
- # fields: 'id, title'
197
- # }
198
- # @data = @mints_pub.get_story_versions(options, false)
199
- def get_story_versions(options = nil, use_post = true)
200
- get_query_results('/content/story-versions', options, use_post)
201
- end
202
-
203
- ##
204
- # === Get Story Version.
205
- # Get a single story version.
206
- #
207
- # ==== Parameters
208
- # slug:: (String) -- It's the string identifier generated by Mints.
209
- # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
210
- #
211
- # ==== First Example
212
- # @data = @mints_pub.get_story_version("story_slug")
213
- #
214
- # ==== Second Example
215
- # @data = @mints_pub.get_story_version("story_slug", options.to_json)
216
- def get_story_version(slug, options = nil)
217
- @client.raw('get', "/content/story-versions/#{slug}", options)
218
- end
219
-
220
- ##
221
- # === Get Forms.
222
- # Get a collection of forms.
223
- #
224
- # ==== Example
225
- # @data = @mints_pub.get_forms
226
- def get_forms(options = nil)
227
- @client.raw('get', '/content/forms', options)
228
- end
229
-
230
- ##
231
- # === Get Form.
232
- # Get a single form.
233
- #
234
- # ==== Parameters
235
- # slug:: (String) -- It's the string identifier generated by Mints.
236
- #
237
- # ==== Example
238
- # @data = @mints_pub.get_form("form_slug")
239
- def get_form(slug, options = nil)
240
- @client.raw('get', "/content/forms/#{slug}", options)
241
- end
242
-
243
- ##
244
- # === Submit Form.
245
- # Submit a form with data.
246
- #
247
- # ==== Parameters
248
- # data:: (Hash) -- Data to be submitted.
249
- #
250
- # ==== Example
251
- # data = {
252
- # 'form_slug': 'form_slug',
253
- # 'email': 'email@example.com',
254
- # 'given_name': 'given_name',
255
- # 'f1': 'Field 1 answer',
256
- # 'f2': 'Field 2 answer',
257
- # 'f3': 'Field 3 answer'
258
- # }
259
- # @data = @mints_pub.submit_form(data)
260
- def submit_form(data)
261
- @client.raw('post', '/content/forms/submit', nil, data_transform(data))
262
- end
263
-
264
- ##
265
- # === Get Content Instances.
266
- # Get a collection of content instances. _Note:_ Options must be specified.
267
- #
268
- # ==== Parameters
269
- # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
270
- #
271
- # ==== First Example
272
- # options = {
273
- # "template": "content_instance_template_slug"
274
- # }
275
- # @data = @mints_pub.get_content_instances(options)
276
- #
277
- # ==== Second Example
278
- # options = {
279
- # "template": "content_instance_template_slug",
280
- # sort: "-id"
281
- # }
282
- # @data = @mints_pub.get_content_instances(options)
283
- def get_content_instances(options = nil)
284
- @client.raw('get', '/content/content-instances', options)
285
- end
286
-
287
- ##
288
- # === Get Content Instance.
289
- # Get a single content instance.
290
- #
291
- # ==== Parameters
292
- # slug:: (String) -- It's the string identifier generated by Mints.
293
- #
294
- # ==== Example
295
- # @data = @mints_pub.get_content_instance("content_instance_slug")
296
- def get_content_instance(slug)
297
- @client.raw('get', "/content/content-instances/#{slug}")
298
- end
299
-
300
- ##
301
- # === Get Content Pages.
302
- # Get all content pages.
303
- #
304
- # ==== Parameters
305
- # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
306
- def get_content_bundles(options = nil)
307
- @client.raw('get', '/content/content-bundles', options)
308
- end
309
-
310
- ##
311
- # === Get Content Page.
312
- # Get a single content page.
313
- #
314
- # ==== Parameters
315
- # slug:: (String) -- It's the string identifier generated by Mints.
316
- #
317
- # ==== Example
318
- # @data = @mints_pub.get_content_page("test-page")
319
- def get_content_page(slug, options = nil)
320
- warn '[DEPRECATED] The get_content_page method is deprecated and will be removed in the future, use get_content_bundle instead'
321
- @client.raw('get', "/content/content-pages/#{slug}", options)
322
- end
323
-
324
- ##
325
- # === Get Content Bundle.
326
- # Get a single content bundle.
327
- #
328
- # ==== Parameters
329
- # slug:: (String) -- It's the string identifier generated by Mints.
330
- #
331
- # ==== Example
332
- # @data = @mints_pub.get_content_bundle("test-page")
333
- def get_content_bundle(slug, options = nil)
334
- @client.raw('get', "/content/content-bundles/#{slug}", options)
335
- end
336
-
337
- ### V1/ECOMMERCE ###
338
-
339
- ##
340
- # === Get Locations.
341
- # Get all locations.
342
- #
343
- # ==== Parameters
344
- # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
345
- # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
346
- #
347
- # ==== First Example
348
- # @data = @mints_pub.get_locations
349
- #
350
- # ==== Second Example
351
- # options = { fields: "title" }
352
- # @data = @mints_pub.get_locations(options)
353
- #
354
- # ==== Third Example
355
- # options = { fields: "title" }
356
- # @data = @mints_pub.get_locations(options, false)
357
- def get_locations(options = nil, use_post = true)
358
- get_query_results('/ecommerce/locations', options, use_post)
359
- end
360
-
361
- ##
362
- # === Get Products.
363
- # Get a collection of products.
364
- #
365
- # ==== Parameters
366
- # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
367
- # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
368
- #
369
- # ==== First Example
370
- # @data = @mints_pub.get_products
371
- #
372
- # ==== Second Example
373
- # options = { fields: "title" }
374
- # @data = @mints_pub.get_products(options)
375
- #
376
- # ==== Third Example
377
- # options = { fields: "title" }
378
- # @data = @mints_pub.get_products(options, false)
379
- def get_products(options = nil, use_post = true)
380
- get_query_results('/ecommerce/products', options, use_post)
381
- end
382
-
383
- ##
384
- # === Get Product.
385
- # Get a single product.
386
- #
387
- # ==== Parameters
388
- # slug:: (String) -- It's the string identifier generated by Mints.
389
- # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
390
- #
391
- # ==== First Example
392
- # @data = @mints_pub.get_product("product_slug")
393
- #
394
- # ==== Second Example
395
- # options = {
396
- # fields: 'id, slug'
397
- # }
398
- # @data = @mints_pub.get_product("lego-set", options)
399
- def get_product(slug, options = nil)
400
- @client.raw('get', "/ecommerce/products/#{slug}", options)
401
- end
402
-
403
- ### V1/CONFIG ###
404
-
405
- ##
406
- # === Get Public Folders.
407
- # Get a collection of public folders.
408
- #
409
- # ==== Parameters
410
- # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
411
- #
412
- # ==== First Example
413
- # options = {
414
- # object_type: "products"
415
- # }
416
- # @data = @mints_pub.get_public_folders(options)
417
- #
418
- # ==== Second Example
419
- # options = {
420
- # object_type: "products",
421
- # fields: "id",
422
- # sort: "-id"
423
- # }
424
- # @data = @mints_pub.get_public_folders(options)
425
- def get_public_folders(options = nil)
426
- @client.raw('get', '/config/public-folders', options)
427
- end
428
-
429
- ##
430
- # === Get Public Folder.
431
- # Get a public folder info.
432
- #
433
- # ==== Parameters
434
- # slug:: (String) -- It's the string identifier generated by Mints.
435
- # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
436
- #
437
- # ==== First Example
438
- # options = {
439
- # object_type: "products"
440
- # }
441
- # @data = @mints_pub.get_public_folder('yellow', options)
442
- #
443
- # ==== Second Example
444
- # options = {
445
- # object_type: "products",
446
- # fields: 'id, title'
447
- # }
448
- # @data = @mints_pub.get_public_folder('yellow', options)
449
- def get_public_folder(slug, options)
450
- @client.raw('get', "/config/public-folders/#{slug}", options)
451
- end
452
-
453
- ##
454
- # === Get Tags.
455
- # Get a collection of tags.
456
- #
457
- # ==== Parameters
458
- # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
459
- #
460
- # ==== First Example
461
- # @data = @mints_pub.get_tags
462
- #
463
- # ==== Second Example
464
- # options = {
465
- # fields: "id, tag"
466
- # }
467
- # @data = @mints_pub.get_tags(options)
468
- def get_tags(options = nil)
469
- @client.raw('get', '/config/tags', options)
470
- end
471
-
472
- ##
473
- # === Get Tag.
474
- # Get a single tag.
475
- #
476
- # ==== Parameters
477
- # slug:: (String) -- It's the string identifier generated by Mints.
478
- # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
479
- #
480
- # ==== First Example
481
- # @data = @mints_pub.get_tag("tag_slug")
482
- #
483
- # ==== Second Example
484
- # options = {
485
- # fields: "id, tag"
486
- # }
487
- # @data = @mints_pub.get_tag("tag-example", options)
488
- def get_tag(slug, options = nil)
489
- @client.raw('get', "/config/tags/#{slug}", options)
490
- end
491
-
492
- ##
493
- # === Get Taxonomies.
494
- # Get a collection of taxonomies.
495
- #
496
- # ==== Parameters
497
- # options:: (Hash) -- List of {Resource collection Options}[#class-Mints::Pub-label-Resource+collections+options+] shown above can be used as parameter.
498
- # use_post:: (Boolean) -- Variable to determine if the request is by 'post' or 'get' functions.
499
- #
500
- # ==== First Example
501
- # @data = @mints_pub.get_taxonomies
502
- #
503
- # ==== Second Example
504
- # options = {
505
- # fields: 'id, title'
506
- # }
507
- # @data = @mints_pub.get_taxonomies(options)
508
- #
509
- # ==== Third Example
510
- # options = {
511
- # fields: 'id, title'
512
- # }
513
- # @data = @mints_pub.get_taxonomies(options, false)
514
- def get_taxonomies(options = nil, use_post = true)
515
- get_query_results('/config/taxonomies', options, use_post)
516
- end
517
-
518
- ##
519
- # === Get Taxonomy.
520
- # Get a single taxonomy.
521
- #
522
- # ==== Parameters
523
- # slug:: (String) -- It's the string identifier generated by Mints.
524
- # options:: (Hash) -- List of {Single Resource Options}[#class-Mints::Pub-label-Single+resource+options] shown above can be used as parameter.
525
- #
526
- # ==== First Example
527
- # @data = @mints_pub.get_taxonomy('taxonomy_slug')
528
- #
529
- # ==== Second Example
530
- # options = {
531
- # fields: 'title'
532
- # }
533
- # @data = @mints_pub.get_taxonomy('taxonomy_slug', options)
534
- def get_taxonomy(slug, options = nil)
535
- @client.raw('get', "/config/taxonomies/#{slug}", options)
536
- end
537
-
538
- ##
539
- # === Get Attributes.
540
- # Get a collection of attributes.
541
- #
542
- # ==== Example
543
- # @data = @mints_pub.get_attributes
544
- def get_attributes
545
- @client.raw('get', '/config/attributes')
546
- end
547
-
548
127
  def send_user_magic_link(email_or_phone, template_slug, redirect_url = '', life_time = 1440, max_visits = nil, driver = 'email')
549
128
  data = {
550
129
  driver: driver,
@@ -13,6 +13,7 @@ require_relative './skus'
13
13
  require_relative './taxes'
14
14
  require_relative './variant_options'
15
15
  require_relative './variant_values'
16
+ require_relative './vouchers'
16
17
 
17
18
  module Ecommerce
18
19
  include ItemPrices
@@ -28,4 +29,5 @@ module Ecommerce
28
29
  include Taxes
29
30
  include VariantOptions
30
31
  include VariantValues
32
+ include Vouchers
31
33
  end
@@ -31,8 +31,8 @@ module Locations
31
31
  #
32
32
  # ==== Example
33
33
  # @data = @mints_user.get_location(2)
34
- def get_location(id)
35
- @client.raw('get', "/ecommerce/locations/#{id}")
34
+ def get_location(id, options = nil)
35
+ @client.raw('get', "/ecommerce/locations/#{id}", options)
36
36
  end
37
37
 
38
38
  # === Create location.
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vouchers
4
+ ##
5
+ # === Get vouchers.
6
+ # Get a collection of vouchers.
7
+ #
8
+ # ==== Parameters
9
+ # options:: (Hash) -- List of Resource Collection 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
+ #
14
+ # @data = @mints_user.get_vouchers
15
+ # ==== Second Example
16
+ #
17
+ # options = { fields: 'id,title' }
18
+ # @data = @mints_user.get_vouchers(options)
19
+ # ==== Third Example
20
+ #
21
+ # options = { fields: 'id,title' }
22
+ # @data = @mints_user.get_vouchers(options, true)
23
+ #
24
+ def get_vouchers(options = nil, use_post = true)
25
+ get_query_results('/ecommerce/vouchers', options, use_post)
26
+ end
27
+
28
+ ##
29
+ # === Get vouchers.
30
+ # Get a specific voucher.
31
+ #
32
+ # ==== Parameters
33
+ # id:: (Integer) -- Voucher id.
34
+ # options:: (Hash) -- List of Resource Collection Options shown above can be used as parameter.
35
+ #
36
+ # ==== First Example
37
+ #
38
+ # @data = @mints_user.get_voucher(1)
39
+ # ==== Second Example
40
+ #
41
+ # options = { fields: 'id,title' }
42
+ # @data = @mints_user.get_voucher(1, options)
43
+ def get_voucher(id, options = nil)
44
+ @client.raw('get', "/ecommerce/vouchers/#{id}", options)
45
+ end
46
+
47
+ ##
48
+ # === Create voucher.
49
+ # Create voucher code.
50
+ #
51
+ # ==== Parameters
52
+ # data:: (Hash) -- Data to be submitted.
53
+ #
54
+ # ==== Example
55
+ # data = {
56
+ # title: 'Voucher title',
57
+ # voucher_code: 'XAZWQ12MP',
58
+ # amount: 100,
59
+ # start_date: '2023-03-28T10:20:00-06:00',
60
+ # end_date: '2023-03-31T10:20:00-06:00',
61
+ # is_redeemed: false
62
+ # }
63
+ #
64
+ # @data = @mints_user.create_voucher(data)
65
+ def create_voucher(data)
66
+ @client.raw('post', '/ecommerce/vouchers', nil, data_transform(data))
67
+ end
68
+
69
+ ##
70
+ # === Update voucher.
71
+ # Update voucher code.
72
+ #
73
+ # ==== Parameters
74
+ # id:: (Integer) -- Voucher id.
75
+ # data:: (Hash) -- Data to be submitted.
76
+ #
77
+ # ==== Example
78
+ # data = {
79
+ # title: 'New voucher title',
80
+ # voucher_code: 'XAZWQ12MP2',
81
+ # amount: 250,
82
+ # start_date: '2023-03-27T10:20:00-06:00',
83
+ # end_date: '2023-03-30T10:20:00-06:00'
84
+ # }
85
+ #
86
+ # @data = @mints_user.update_voucher(1, data)
87
+ def update_voucher(id, data)
88
+ @client.raw('put', "/ecommerce/vouchers/#{id}", nil, data_transform(data))
89
+ end
90
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mints
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.29
4
+ version: 0.0.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruben Gomez Garcia, Omar Mora, Luis Payan, Oscar Castillo, Fabian Garcia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-28 00:00:00.000000000 Z
11
+ date: 2023-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -122,6 +122,7 @@ files:
122
122
  - lib/contact/ecommerce/order_items.rb
123
123
  - lib/contact/ecommerce/order_items_groups.rb
124
124
  - lib/contact/ecommerce/orders.rb
125
+ - lib/contact/ecommerce/vouchers.rb
125
126
  - lib/errors.rb
126
127
  - lib/generators/mints_assets_controller.rb
127
128
  - lib/generators/mints_config.yml.erb
@@ -145,6 +146,23 @@ files:
145
146
  - lib/mints/helpers/proxy_controllers_methods.rb
146
147
  - lib/mints/helpers/user_auth_helper.rb
147
148
  - lib/pub.rb
149
+ - lib/pub/config/attributes.rb
150
+ - lib/pub/config/config.rb
151
+ - lib/pub/config/public_folders.rb
152
+ - lib/pub/config/tags.rb
153
+ - lib/pub/config/taxonomies.rb
154
+ - lib/pub/content/assets.rb
155
+ - lib/pub/content/content.rb
156
+ - lib/pub/content/content_bundles.rb
157
+ - lib/pub/content/content_instance_versions.rb
158
+ - lib/pub/content/content_instances.rb
159
+ - lib/pub/content/forms.rb
160
+ - lib/pub/content/stories.rb
161
+ - lib/pub/content/story_versions.rb
162
+ - lib/pub/ecommerce/ecommerce.rb
163
+ - lib/pub/ecommerce/locations.rb
164
+ - lib/pub/ecommerce/orders.rb
165
+ - lib/pub/ecommerce/products.rb
148
166
  - lib/user.rb
149
167
  - lib/user/config/api_keys.rb
150
168
  - lib/user/config/appointments.rb
@@ -199,6 +217,7 @@ files:
199
217
  - lib/user/ecommerce/taxes.rb
200
218
  - lib/user/ecommerce/variant_options.rb
201
219
  - lib/user/ecommerce/variant_values.rb
220
+ - lib/user/ecommerce/vouchers.rb
202
221
  - lib/user/helpers/helpers.rb
203
222
  - lib/user/helpers/object_activities.rb
204
223
  - lib/user/helpers/object_folders.rb