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.

Parameters:

  • baseString
  • key
[View source]

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

Parameters:

  • fileName

Returns:

  • extension

[View source]

215
216
217
218
# File 'lib/util/util.rb', line 215

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

#get_timestamp_utcObject

Finds the current time

Returns:

  • time format

[View source]

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

Parameters:

  • date

Returns:

  • time format

[View source]

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

[View source]

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

[View source]

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.

Parameters:

  • secretKey
  • params
[View source]

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.

Parameters:

  • table

Returns:

  • sorted string

[View source]

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.

Parameters:

  • obj
  • name
[View source]

166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'lib/util/util.rb', line 166

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

Parameters:

  • fileName
  • name
[View source]

198
199
200
201
202
203
204
205
# File 'lib/util/util.rb', line 198

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.

Parameters:

  • fileName
  • name
[View source]

227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# File 'lib/util/util.rb', line 227

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.

Parameters:

  • obj
  • name

Raises:

[View source]

126
127
128
129
130
131
132
133
# File 'lib/util/util.rb', line 126

def throwExceptionIfNullOrBlank(obj,name)
  obj.kind_of?(String) ? trm = my_strip(obj) : trm = obj

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

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

end

#validateHowMany(howMany) ⇒ Object

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

Parameters:

  • howMany
[View source]

153
154
155
156
157
# File 'lib/util/util.rb', line 153

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.

Parameters:

  • max
[View source]

141
142
143
144
145
# File 'lib/util/util.rb', line 141

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