wolf_core 1.1.3 → 1.1.4
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcfd91aedb5d4ebb38e45ba2cd911633fd732d4096f3e5c08a60afff24199b95
|
4
|
+
data.tar.gz: 964fe3de836bd69567299b9dcc7c69975406cb9373c032f530d4a4ebcc6e6e87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80e7e908fac3ee1866d45e7faf12d65c6d1370d8e83582a32336192180e728e9adc1ed6f0db7e31ce8b627c04213f7a84751e80ee187ab782273cea8dd5134f2
|
7
|
+
data.tar.gz: 720faa8d753336d7c58d05334c73144bb0c6e28e38d231a2b2225157e5a635d24ae9dbe0fb0d8b52470dabc02fea274dc54e19b0e567118f170d409c5fb4e591
|
@@ -3,26 +3,33 @@ module WolfCore
|
|
3
3
|
module WebhooksOperations
|
4
4
|
def get_payload(params:, event_type: nil)
|
5
5
|
event_type ||= get_event_type(params: params)
|
6
|
-
return if event_type ==
|
7
|
-
|
8
|
-
|
6
|
+
return if event_type == "SubscriptionConfirmation"
|
7
|
+
|
8
|
+
message = params["Message"] || {}
|
9
|
+
message = JSON.parse(message) if message.is_a?(String)
|
10
|
+
|
11
|
+
payload = message["payload"] || {}
|
12
|
+
payload = JSON.parse(payload) if payload.is_a?(String)
|
13
|
+
|
14
|
+
payload
|
9
15
|
end
|
10
16
|
|
11
17
|
def get_event_type(params:)
|
12
|
-
params[
|
18
|
+
params["Type"]
|
13
19
|
end
|
14
20
|
|
15
21
|
def get_event_name(params:)
|
16
|
-
message =
|
17
|
-
message
|
22
|
+
message = params["Message"] || {}
|
23
|
+
message = JSON.parse(message) if message.is_a?(String)
|
24
|
+
message["event_name"]
|
18
25
|
end
|
19
26
|
|
20
27
|
def validate_user_is_not_admin(params:)
|
21
28
|
event_type = get_event_type(params: params)
|
22
|
-
return if event_type ==
|
29
|
+
return if event_type == "SubscriptionConfirmation"
|
23
30
|
|
24
|
-
user_id = params.dig(
|
25
|
-
return unless user_id == ENV[
|
31
|
+
user_id = params.dig("invoker", "user_id").to_s
|
32
|
+
return unless user_id == ENV["WOLF_ADMIN_ID"].to_s
|
26
33
|
|
27
34
|
raise_service_error("Ignoring event from user id #{user_id}")
|
28
35
|
end
|
@@ -30,16 +37,16 @@ module WolfCore
|
|
30
37
|
def subscription_confirmation_request(url:)
|
31
38
|
safe_http_get(
|
32
39
|
url: url,
|
33
|
-
error_message: "Can not confirm subscription"
|
40
|
+
error_message: "Can not confirm subscription"
|
34
41
|
)
|
35
42
|
end
|
36
43
|
|
37
44
|
def process_webhook(params:)
|
38
45
|
event_type = get_event_type(params: params)
|
39
|
-
if event_type ==
|
40
|
-
url = params[
|
46
|
+
if event_type == "SubscriptionConfirmation"
|
47
|
+
url = params["SubscribeURL"]
|
41
48
|
subscription_confirmation_request(url: url)
|
42
|
-
elsif event_type ==
|
49
|
+
elsif event_type == "Notification"
|
43
50
|
event_name = get_event_name(params: params)
|
44
51
|
yield(event_name)
|
45
52
|
end
|
@@ -52,14 +59,15 @@ module WolfCore
|
|
52
59
|
}
|
53
60
|
if include_changes
|
54
61
|
payload = get_payload(params: params)
|
55
|
-
body[:changes] = payload&.dig(
|
62
|
+
body[:changes] = payload&.dig("changes")
|
56
63
|
end
|
57
64
|
body
|
58
65
|
end
|
59
66
|
|
60
67
|
def get_object_id(params:)
|
61
|
-
|
62
|
-
|
68
|
+
message = params["Message"] || {}
|
69
|
+
message = JSON.parse(message) if message.is_a?(String)
|
70
|
+
message["object_id"]
|
63
71
|
end
|
64
72
|
|
65
73
|
def group_custom_values_by_custom_requirement_group(
|
@@ -68,29 +76,27 @@ module WolfCore
|
|
68
76
|
reference_form_custom_requirement_ids:,
|
69
77
|
disclosure_form_custom_requirement_ids:
|
70
78
|
)
|
71
|
-
custom_values = payload.dig(
|
72
|
-
if custom_values.blank?
|
73
|
-
custom_values = [ payload['attributes'] ]
|
74
|
-
end
|
79
|
+
custom_values = payload.dig("changes", "custom_values")
|
80
|
+
custom_values = [payload["attributes"]] if custom_values.blank?
|
75
81
|
|
76
82
|
custom_values.group_by do |custom_value|
|
77
|
-
custom_requirement_group = if jobseeker_file_custom_requirement_ids.include?(custom_value[
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
83
|
+
custom_requirement_group = if jobseeker_file_custom_requirement_ids.include?(custom_value["custom_requirement_id"].to_s)
|
84
|
+
"jobseeker_file"
|
85
|
+
elsif reference_form_custom_requirement_ids.include?(custom_value["custom_requirement_id"].to_s)
|
86
|
+
"reference_form"
|
87
|
+
elsif disclosure_form_custom_requirement_ids.include?(custom_value["custom_requirement_id"].to_s)
|
88
|
+
"disclosure_form"
|
89
|
+
elsif custom_value["user_category"] == "Freelancer"
|
90
|
+
"jobseeker"
|
91
|
+
elsif custom_value["user_category"] == "Campaign"
|
92
|
+
"order"
|
93
|
+
else
|
94
|
+
"unknown_group"
|
95
|
+
end
|
90
96
|
|
91
97
|
custom_requirement_group
|
92
98
|
end
|
93
99
|
end
|
94
100
|
end
|
95
101
|
end
|
96
|
-
end
|
102
|
+
end
|
data/lib/wolf_core/version.rb
CHANGED