pampa_workers 1.1.14 → 1.1.15

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/client.rb +35 -26
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aba9aea867a845f00fc38af85c85f1fe3c8d0afc
4
- data.tar.gz: f358e41e0bc8208cfc8c566b3058248d1d5912be
3
+ metadata.gz: 7ab275405509b5e1757e26edcbd0aa703da36a65
4
+ data.tar.gz: 59873b29ad9be66f9c439478dedcef526e8581d1
5
5
  SHA512:
6
- metadata.gz: ea4e86c9fc7bec5f3a98c4745a0b1d46359e67a1ef9805323aa3b1609deccd6e309897f2c5ae15b0c2a6c2adfa935ad54e72ab7fd3599de501a78f8fb344df07
7
- data.tar.gz: c8b7ae792c64d07e44800544eed195b14add96bc83130bb0a240ca705340d658e977f5c82d44d149f43b33e91a535570b1e4eaf5fc12b72e1a23e1b7ea8e46e8
6
+ metadata.gz: fc5757fb1c54805415645caca9e87360c58cbcc0c4566700e772d0260edb30bc13245a76b73f413194373a8568cf397012e1973f94b8abce18e9f440e3844fca
7
+ data.tar.gz: b38cb83d0656799b2c531724075f7838fde797e26ff4f2c8afa6caec662286cb1dbdb4b96a34682ad2610f4f0a7c6b023419bb86404a9e3135808c0472107abf
@@ -85,50 +85,59 @@ module BlackStack
85
85
 
86
86
  # llama a la api de postmark preguntando el reseller email configurado para este clietne fue ferificado
87
87
  def checkDomainForSSMVerified()
88
- return_message = {}
88
+ return_message = {}
89
89
  domain = self.domain_for_ssm
90
90
  email = self.from_email_for_ssm
91
91
  id = ''
92
92
  client = ''
93
-
94
93
  if domain != nil && email != nil
95
94
  begin
96
- client_postmark = Postmark::AccountApiClient.new(POSTMARK_API_TOKEN, secure: true)
97
- client_list = client_postmark.get_signatures()
98
-
99
- client_list.each do |sign|
100
- if sign[:domain] == domain
101
- if sign[:email_address] == email
102
- id = sign[:id]
103
- break
104
- end
105
- end
106
- end
107
-
108
- if id.to_s.size > 0
109
- client = client_postmark.get_sender(id)
95
+ # create postmark client
96
+ client_postmark = Postmark::AccountApiClient.new(POSTMARK_API_TOKEN, secure: true)
97
+
98
+ # get signature
99
+ # more info: https://github.com/wildbit/postmark-gem/wiki/Senders
100
+ #
101
+ # this first strategy is not scalable if we handle a large list of signatures.
102
+ #sign = client_postmark.signatures.select { |sign| sign[:domain]==domain }.first
103
+ #
104
+ # this other approach is a bit more scalable, but anyway we need to call the API
105
+ # with filering by the domain.
106
+ #
107
+ pagesize = 30 # TODO: increase this value to 300 for optimization
108
+ i = 0
109
+ j = 1
110
+ sign = nil
111
+ while j>0 && sign.nil?
112
+ buff = client_postmark.get_signatures(offset: i, count: pagesize)
113
+ j = buff.size
114
+ i += pagesize
115
+ sign = buff.select { |s| s[:domain]==domain }.first
116
+ end # while
117
+
118
+ # if signature has been found?
119
+ if sign.nil?
120
+ # sincronizo con la central
121
+ return_message[:status] = "Client Signature Not Found"
122
+ return_message[:value] = client[:id]
123
+ return return_message.to_json
124
+ else
125
+ id = sign[:id]
126
+ client = client_postmark.get_sender(id)
110
127
  if !client[:confirmed]
111
128
  self.domain_for_ssm_verified = false
112
- self.save
113
-
129
+ self.save
114
130
  return_message[:status] = "No Verified"
115
131
  return_message[:value] = client[:id]
116
-
117
132
  return return_message.to_json
118
133
  else
119
134
  self.domain_for_ssm_verified = true
120
- self.save
121
-
122
- # sincronizo con la central
123
- return_message = {}
124
-
135
+ self.save
125
136
  return_message[:status] = "success"
126
137
  return_message[:value] = client[:id]
127
-
128
138
  return return_message.to_json
129
139
  end
130
140
  end
131
-
132
141
  rescue Postmark::ApiInputError => e
133
142
  return_message[:status] = e.to_s
134
143
  return return_message.to_json
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pampa_workers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.14
4
+ version: 1.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leandro Daniel Sardi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-28 00:00:00.000000000 Z
11
+ date: 2020-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: websocket