pampa_workers 1.1.14 → 1.1.15

Sign up to get free protection for your applications and to get access to all the features.
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