item_builder_mwh 0.1.44 → 0.1.46

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: 482cc6d6dd1d2442abc3da06b07a9eedac844cfd0141f4099060a04b3b67b540
4
- data.tar.gz: 1967d32f663a263f432776d9f34b6690060372bc2eb14acf329c779a8d00d748
3
+ metadata.gz: bce7977aea75ad1bd97df14619406111699aa96e40346f29396223733a6aeeda
4
+ data.tar.gz: b28d83dc417c3b56c987e24b1b430121f5f93e28fa8022d2cdad4a809b8ef189
5
5
  SHA512:
6
- metadata.gz: 31a5ed3b16df26a17e28304ab323fe307e969e30820e74fcb14e346862e496955aeaadd12184ae388ba3060da86f7c3d4b3a9af3e8a8e62799e2941d3fa0eeb0
7
- data.tar.gz: 24edff01fc375f29af19882d4e4d35bb45a8c37ab1bc293fe351d44d897acf33dfc693032eaf473071de3b3ae74e6a52ba2ec1ce711936143d4a00bb8d398eee
6
+ metadata.gz: 7009a572231c435b5de10d7c10ef7083feba8ac5c48d949703095bbfadaffcc31d94d5b8bba26d43735960e7735b8062ffd704fe58f369e68cfc401a30b51338
7
+ data.tar.gz: 4c5785354cd3100bb785a010570734697c1b8e14bfb867bd4eac1f572b3c51601f64a6524e0bb09951f24216f62f58427a81fa344a7dea19adea6b4c8a058ee5
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'item_builder_mwh/modes/create/base'
4
+ class ItemBuilderMwh
5
+ module Modes
6
+ module Create
7
+ class TokopediaService < Base
8
+ def perform
9
+ {
10
+ category: category,
11
+ master_option_types: master_option_types
12
+ }
13
+ end
14
+
15
+ def category
16
+ {
17
+ id: item_listing&.item_listing_category&.id,
18
+ local_id: item_listing&.item_listing_category&.tokopedia&.local_id,
19
+ name: item_listing&.item_listing_category&.tokopedia&.name
20
+ }
21
+ end
22
+
23
+ def master_option_types
24
+ item.option_types.map do |option_type|
25
+ {
26
+ name: option_type.name,
27
+ option_list: option_list(option_type)
28
+ }
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ def option_list(option_type)
35
+ options = option_type
36
+ .options
37
+ .joins(:variant_option_associations)
38
+ .where({item_variant_option_associations: {variant_id: variant_ids}})
39
+ .pluck(:name)
40
+ .reject{|option_name| option_name.blank? }
41
+ .map{|name| YAML.load(name)}
42
+ end
43
+
44
+ def variant_ids
45
+ @variant_ids ||= item.variants.pluck(:id)
46
+ end
47
+
48
+ def item
49
+ @item ||= item_listing.item
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'item_builder_mwh/modes.rb'
4
4
  require 'item_builder_mwh/modes/create/shopee_service'
5
+ require 'item_builder_mwh/modes/create/tokopedia_service'
5
6
  class ItemBuilderMwh
6
7
  module Modes
7
8
  class CreateService
@@ -9,6 +10,7 @@ class ItemBuilderMwh
9
10
 
10
11
  CREATE_CHANNEL = {}.tap do |hash|
11
12
  hash[12] = :Shopee
13
+ hash[15] = :Tokopedia
12
14
  end.freeze
13
15
 
14
16
  def perform
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'item_builder_mwh/modes/map_create/base'
4
+ class ItemBuilderMwh
5
+ module Modes
6
+ module MapCreate
7
+ class TokopediaService < Base
8
+ def perform
9
+ {
10
+ item_custom_fields: [],
11
+ variant_custom_fields: variant_custom_fields,
12
+ new_condition: listing.new_condition,
13
+ minimum_order: listing.minimum_order,
14
+ etalase_id: listing.tokopedia_showcase_id,
15
+ master_option_types: master_option_types
16
+ }
17
+ end
18
+
19
+ private
20
+
21
+ def variant_custom_fields
22
+ listing.item_listing_variant_custom_fields.map do |variant|
23
+ {
24
+ value: YAML.load(variant.value),
25
+ local_id: variant&.tokopedia&.local_id,
26
+ name: variant&.tokopedia&.name,
27
+ identifier: variant&.tokopedia&.display_name
28
+ }
29
+ end
30
+ end
31
+
32
+ def master_option_types
33
+ listing
34
+ .variant
35
+ .options.order(:option_type_id)
36
+ .pluck(:name)
37
+ .map{|name| YAML.load(name)}
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -4,6 +4,7 @@ require 'item_builder_mwh/modes.rb'
4
4
  require 'warehouse_models'
5
5
  require 'item_builder_mwh/get_quantity_service'
6
6
  require 'item_builder_mwh/modes/map_create/shopee_service'
7
+ require 'item_builder_mwh/modes/map_create/tokopedia_service'
7
8
  require 'item_builder_mwh/modes/quantity/base'
8
9
  require 'item_builder_mwh/modes/quantity/lazada_service'
9
10
  require 'item_builder_mwh/modes/quantity/zalora_service'
@@ -22,6 +23,7 @@ class ItemBuilderMwh
22
23
 
23
24
  MAP_CREATE_CHANNEL = {}.tap do |hash|
24
25
  hash[12] = :Shopee
26
+ hash[15] = :Tokopedia
25
27
  end.freeze
26
28
 
27
29
  def perform
@@ -37,7 +37,7 @@ class ItemBuilderMwh
37
37
  @shopify_inventory_location = args.fetch(:shopify_inventory_location, {})
38
38
  mode = args.fetch(:mode, '')
39
39
  @shipping_providers = args.fetch(:shipping_providers, [])
40
- warehouse unless mode == :create || mode == :item_create || mode == :precondition_create || mode == :precondition_update
40
+ warehouse unless mode == :create || mode == :item_create || mode == :precondition_create || mode == :precondition_update || mode == :update
41
41
  end
42
42
 
43
43
  def base
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ItemBuilderMwh
4
- VERSION = '0.1.44'
4
+ VERSION = '0.1.46'
5
5
  end
@@ -34,7 +34,7 @@ class ItemBuilderMwh
34
34
  def mode_check
35
35
  if mode == :quantity || mode == :simple
36
36
  quantity_simple_mode
37
- elsif mode == :create || mode == :item_create || mode == :precondition_create || mode == :precondition_update
37
+ elsif mode == :create || mode == :item_create || mode == :precondition_create || mode == :precondition_update || mode == :update
38
38
  create_mode
39
39
  elsif mode == :map_create
40
40
  map_create_mode
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: item_builder_mwh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.44
4
+ version: 0.1.46
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Ivander
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-20 00:00:00.000000000 Z
11
+ date: 2022-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.0.11
89
+ version: 0.0.18
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.0.11
96
+ version: 0.0.18
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: warehouse_models
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -123,9 +123,11 @@ files:
123
123
  - lib/item_builder_mwh/modes/base_service.rb
124
124
  - lib/item_builder_mwh/modes/create/base.rb
125
125
  - lib/item_builder_mwh/modes/create/shopee_service.rb
126
+ - lib/item_builder_mwh/modes/create/tokopedia_service.rb
126
127
  - lib/item_builder_mwh/modes/create_service.rb
127
128
  - lib/item_builder_mwh/modes/map_create/base.rb
128
129
  - lib/item_builder_mwh/modes/map_create/shopee_service.rb
130
+ - lib/item_builder_mwh/modes/map_create/tokopedia_service.rb
129
131
  - lib/item_builder_mwh/modes/map_create_service.rb
130
132
  - lib/item_builder_mwh/modes/precondition_create/base.rb
131
133
  - lib/item_builder_mwh/modes/precondition_create/shopee_service.rb