Class: App42::Util

Inherits:
Object
  • Object
show all
Defined in:
lib/util/util.rb

Instance Method Summary collapse

Instance Method Details

#compute_hmac(secret_key, sorted_params) ⇒ Object

Encoding and decoding of the queries are done using the Hmac Algorithm.



106
107
108
109
110
111
112
# File 'lib/util/util.rb', line 106

def compute_hmac(secret_key, sorted_params)
  signature =  Base64.encode64(HMAC::SHA1::digest(secret_key, sorted_params)).strip
  puts "Signature #{signature}"
  computed_hmac = CGI.escape(signature)
  puts "Computed Hmac #{computed_hmac}"
  computed_hmac
end

#extractFileExtension(fileName) ⇒ Object

Taking extension out



221
222
223
224
# File 'lib/util/util.rb', line 221

def extractFileExtension(fileName)
  ext = File.extname(fileName)
  return ext;
end

#get_timestamp_utcObject

Finds the current time



24
25
26
27
28
29
30
31
# File 'lib/util/util.rb', line 24

def get_timestamp_utc
  #time_stamp = Time.now.utc.iso8601
  #time_stamp = Time.now.utc.xmlschema
  time_stamp = Time.now.utc
  time_stamp = time_stamp.strftime("%Y-%m-%dT%H:%M:%S.%LZ")
  puts "TimeStamp - #{time_stamp}"
  time_stamp
end

#get_timestamp_utc_from_date(date) ⇒ Object

Finds the particular time for a particular date



42
43
44
45
46
47
# File 'lib/util/util.rb', line 42

def get_timestamp_utc_from_date(date)
  time = Time.parse(date).utc
  time_stamp = time.strftime("%Y-%m-%dT%H:%M:%S.%LZ")
  puts "TimeStamp - #{time_stamp}"
  time_stamp
end

#get_timestamp_utc_from_date_discount(date) ⇒ Object



49
50
51
52
53
54
# File 'lib/util/util.rb', line 49

def get_timestamp_utc_from_date_discount(date)
  time = Time.parse(date).utc
  time_stamp = time.strftime("%a %b %d %l:%M:%S %Z %Y")
  puts "TimeStamp - #{time_stamp}"
  time_stamp
end

#my_strip(str) ⇒ Object



114
115
116
117
# File 'lib/util/util.rb', line 114

def my_strip(str)
  s =  str.gsub(/ /,'')
  return s
end

#sign(secret_key, params) ⇒ Object

It signs the request that has to be sent in the Hmac format.



86
87
88
89
90
91
92
# File 'lib/util/util.rb', line 86

def sign(secret_key, params)
  sorted_params =  sort_convert_table(params)
  puts sorted_params
  signature = compute_hmac(secret_key, sorted_params)
  puts "Signature #{signature}"
  signature
end

#sort_convert_table(table) ⇒ Object

This method sorts all the values that are stored in the table.



64
65
66
67
68
69
70
71
72
# File 'lib/util/util.rb', line 64

def sort_convert_table(table)
  sorted_params = ""
  table.sort {|a,b| a[0] <=> b[0]}.each{ |key, val|
    sorted_params << key
    sorted_params << val
  }
  puts "Sorted params #{sorted_params}"
  sorted_params
end

#throwExceptionIfEmailNotValid(obj, name) ⇒ Object

An exception to check whether the email entered is valid or not.



172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
# File 'lib/util/util.rb', line 172

def throwExceptionIfEmailNotValid(obj, name)
  if(obj==nil)
    raise App42Exception.new(name +" parameter can not be null")
  end
  email_regex = %r{
           ^ # Start of string

           [0-9a-z] # First character
           [0-9a-z.+]+ # Middle characters
           [0-9a-z] # Last character

           @ # Separating @ character

           [0-9a-z] # Domain name begin
           [0-9a-z.-]+ # Domain name middle
           [0-9a-z] # Domain name end

           $ # End of string
  }xi
  if (obj =~ email_regex) == 0
  else
    raise App42Exception.new(name + " is not valid. ")
  end
end

#throwExceptionIfNotValidExtension(fileName, name) ⇒ Object

An exception to check if the file has valid extension or not



204
205
206
207
208
209
210
211
# File 'lib/util/util.rb', line 204

def throwExceptionIfNotValidExtension(fileName, name)
  if(fileName==nil)
    raise App42Exception.new(name + " parameter can not be null")
  end
  if(fileName.index('.') == -1)
    raise App42Exception.new(name + " does not contain valid extension. ")
  end
end

#throwExceptionIfNotValidImageExtension(fileName, name) ⇒ Object

To check if the image has a valid extension or not.



233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
# File 'lib/util/util.rb', line 233

def throwExceptionIfNotValidImageExtension(fileName, name)

  if(fileName == nil)
    raise App42Exception.new(name + " parameter can not be null")
  end

  if(fileName.index('.') == -1)
    raise App42Exception.new(name + " does not contain valid extension. ")
  end

  ext = extractFileExtension(fileName);
  if((ext.eql?(".jpg") == false) && (ext.eql?(".JPG") == false) && (ext.eql?(".jpeg") == false) && (ext.eql?(".JPEG") == false) && (ext.eql?(".gif") == false) && (ext.eql?(".GIF") == false) && (ext.eql?(".png") == false) && (ext.eql?(".PNG") == false))
    raise App42Exception.new( "The Request parameters are invalid. Only file with extensions jpg, jpeg, gif and png are supported");
  end

end

#throwExceptionIfNullOrBlank(obj, name) ⇒ Object

An exception to check whether the object is null or blank.



126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/util/util.rb', line 126

def throwExceptionIfNullOrBlank(obj,name)
  if obj.kind_of?(String)
    trm = my_strip(obj)
  else
    trm = obj
  end

  if(trm==nil)
    raise App42Exception.new(name +" parameter can not be null");
  end
  if(trm == "")
    raise App42Exception.new(name +" parameter can not be blank");
  end
end

#validateHowMany(howMany) ⇒ Object

To check whether the value of how many is less than 1000 or not.



159
160
161
162
163
# File 'lib/util/util.rb', line 159

def validateHowMany(howMany)
  if(howMany.to_i > 1000)
    raise App42Exception.new("How Many should be less than 1000");
  end
end

#validateMax(max) ⇒ Object

To check whether the max value is greater than zero or not.



147
148
149
150
151
# File 'lib/util/util.rb', line 147

def validateMax(max)
  if(max.to_i < 1)
    raise App42Exception.new("Max must be greater than Zero.");
  end
end