item_builder 0.1.62 → 0.1.63
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 +4 -4
- data/lib/item_builder/modes/create/tokopedia_service.rb +54 -0
- data/lib/item_builder/modes/create_service.rb +2 -0
- data/lib/item_builder/modes/map_create/tokopedia_service.rb +42 -0
- data/lib/item_builder/modes/map_create_service.rb +3 -1
- data/lib/item_builder/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b48a75c5e15be8f6899f995d9a25f6e2c8fece519738579714ec81f6125ca6d
|
4
|
+
data.tar.gz: b4a9cebcec35b4fb2fbf5336526a786c99275bef0677334d78bef7a85033e524
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 372fbfc1f0d49fbfaf9eb81af4bca332131e6f034a92656f93c22a51229b593ccbf519ce32c75db2978b4086735f1e532c883b025e599f64a75530c0ddc938b9
|
7
|
+
data.tar.gz: a48406e9bfb520fd5e5d3d034cbb89717b260bc59c68e7ceca1bc9328c87e1366e0483579738118ddd5c1f3af17a91ecf2e7c9a0df9371f3301f0abd5fd4a054
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'item_builder/modes/create/base'
|
4
|
+
class ItemBuilder
|
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/modes.rb'
|
4
4
|
require 'item_builder/modes/create/shopee_service'
|
5
|
+
require 'item_builder/modes/create/tokopedia_service'
|
5
6
|
class ItemBuilder
|
6
7
|
module Modes
|
7
8
|
class CreateService
|
@@ -9,6 +10,7 @@ class ItemBuilder
|
|
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/modes/map_create/base'
|
4
|
+
class ItemBuilder
|
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
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'item_builder/modes.rb'
|
4
4
|
require 'item_builder/modes/map_create/shopee_service'
|
5
|
+
require 'item_builder/modes/map_create/tokopedia_service'
|
5
6
|
class ItemBuilder
|
6
7
|
module Modes
|
7
8
|
class MapCreateService
|
@@ -9,6 +10,7 @@ class ItemBuilder
|
|
9
10
|
|
10
11
|
MAP_CREATE_CHANNEL = {}.tap do |hash|
|
11
12
|
hash[12] = :Shopee
|
13
|
+
hash[15] = :Tokopedia
|
12
14
|
end.freeze
|
13
15
|
|
14
16
|
def perform
|
@@ -50,7 +52,7 @@ class ItemBuilder
|
|
50
52
|
id: img.id,
|
51
53
|
local_id: img.local_id,
|
52
54
|
local_url: img.local_url,
|
53
|
-
url: img.image.image.url
|
55
|
+
url: img.image.image.url(:xlarge, timestamp: false)
|
54
56
|
}
|
55
57
|
end
|
56
58
|
end
|
data/lib/item_builder/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: item_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.63
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- okaaryanata
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
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.
|
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.
|
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/modes/base_service.rb
|
124
124
|
- lib/item_builder/modes/create/base.rb
|
125
125
|
- lib/item_builder/modes/create/shopee_service.rb
|
126
|
+
- lib/item_builder/modes/create/tokopedia_service.rb
|
126
127
|
- lib/item_builder/modes/create_service.rb
|
127
128
|
- lib/item_builder/modes/map_create/base.rb
|
128
129
|
- lib/item_builder/modes/map_create/shopee_service.rb
|
130
|
+
- lib/item_builder/modes/map_create/tokopedia_service.rb
|
129
131
|
- lib/item_builder/modes/map_create_service.rb
|
130
132
|
- lib/item_builder/modes/precondition_create/base.rb
|
131
133
|
- lib/item_builder/modes/precondition_create/shopee_service.rb
|