Skip to content

Instantly share code, notes, and snippets.

@inem
Last active September 30, 2015 15:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save inem/684e63edff1acffdee02 to your computer and use it in GitHub Desktop.
Save inem/684e63edff1acffdee02 to your computer and use it in GitHub Desktop.
def purchase
message = ''
title = 'Access is denied'
error = 'Only registered users can make purchases'
if @product.name_shop.blank? && @product.pro?
title = 'Error!'
message = 'This product is not for sale, apologize'
else
if current_user.allow_product?
title = 'Error!'
message = 'Only users with role \'User\' can make purchases'
else
if current_user.allow_email?
if get_photos == 1
title = 'Sorry!'
message = 'Unfortunately it was not possible to make a purchase now. Try again later'
SendAdminError.mail_create(current_user.email).deliver_now
elsif get_photos == false
title = 'Exception!'
message = 'Encountered an error when trying get photos'
else
if send_todos == false
title = 'Exception!'
message = 'Encountered an error when trying send todos'
SendAdminError.mail_create(current_user.email).deliver_now
else
title = 'Hello, user'
message = 'Thank you for shopping in our store'
SendUser.mail_create(get_photos, current_user.email).deliver_now
SendAdmin.mail_create(send_todos).deliver_now
end
end
else
title = 'Error!'
message = 'Users can not buy products if they have email in the zone com'
end
end
end
respond_to do |format|
format.json { render json: {status: "ok", mess: message, title: title, error: error}}
end
def get_photos
begin
sleep_number = (1..6).to_a.sample
random_number = (1..5000).to_a.sample
if sleep_number > 3
sleep(sleep_number)
Rails.logger.debug "Response: #{sleep_number}"
raise "Exception #: #{sleep_number}"
else
sleep(sleep_number)
# Rails.logger.debug "Response img №2: #{sleep_number}"
response = HTTParty.get("http://jsonplaceholder.typicode.com/photos/#{random_number}")
image = JSON.parse(response.body)
if image['url'][-6..-1].to_i(16) > image['thumbnailUrl'][-6..-1].to_i(16)
return image['url']
else
return 1
end
end
rescue Exception=>e
Rails.logger.error { "Encountered an error when trying get photos, #{e}" }
return false
end
end
def send_todos
tries ||= 3
begin
sleep_number = (1..6).to_a.sample
if sleep_number > 3
sleep(sleep_number)
Rails.logger.debug "Response send_todos: #{sleep_number}"
raise "Exception #: #{sleep_number}"
else
sleep(sleep_number)
response = HTTParty.post("http://jsonplaceholder.typicode.com/todos",
{
:data => { title: 'foo', body: 'bar', userId: 1 }
}
)
post = JSON.parse(response.body)
post['id']
end
rescue Exception=>e
Rails.logger.error { "Encountered an error when trying send todos, #{e}" }
if (tries -= 1) > 0
retry
else
return false
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment