Advertisement
madrahimov

Untitled

Dec 7th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. def insert_or_update_object(params, restaurant_id, table_name, schema_name, device_id, shard) # Обрабатываем XML объекта
  2. object_status = {}
  3. model = get_model_object(schema_name, table_name) # Преврашаем в модель
  4. object = model.using(shard).find_by_id(params[:id]) # Ищем объект
  5. if object.blank? # Объект если не найден добавляем если найден то обновляем
  6. begin
  7. object_status = insert_object(params, restaurant_id, model, device_id, shard)
  8. rescue ActiveRecord::RecordInvalid => ex
  9. restaurant = Restaurant.find_by_id(restaurant_id)
  10. text = 'Restaurant:' + restaurant.title + ' id: ' + restaurant.id.to_s
  11. text << "\nparams:\n #{params}"
  12. text << "\ntable_name:\n #{table_name}"
  13. text << ex.backtrace.to_s + '\n' + ex.class.to_s + '\n' + ex.message.to_s
  14. send_error(text)
  15. # ErrorEmailer.send_sync_error(ex.backtrace, ex.class, ex.message, params, table_name, restaurant).deliver
  16. object_status = {}
  17. object_status[:id] = params[:id]
  18. object_status[:code] = 73 # параметры объекта не правильны, не проходят валидацию
  19. rescue ActiveRecord::InvalidForeignKey => ex
  20. restaurant = Restaurant.find_by_id(restaurant_id)
  21. text = 'Restaurant:' + restaurant.title + ' id: ' + restaurant.id.to_s
  22. text << "\nparams:\n #{params}"
  23. text << "\ntable_name:\n #{table_name}"
  24. text << ex.backtrace.to_s + '\n' + ex.class.to_s + '\n' + ex.message.to_s
  25. send_error(text)
  26. # ErrorEmailer.send_sync_error(ex.backtrace, ex.class, ex.message, params, table_name, restaurant).deliver
  27. object_status = {}
  28. object_status[:id] = params[:id]
  29. object_status[:code] = 74 # ошибка во внешнем ключе
  30. rescue => ex
  31. restaurant = Restaurant.find_by_id(restaurant_id)
  32. text = 'Restaurant:' + restaurant.title + ' id: ' + restaurant.id.to_s
  33. text << "\nparams:\n #{params}"
  34. text << "\ntable_name:\n #{table_name}"
  35. text << ex.backtrace.to_s + '\n' + ex.class.to_s + '\n' + ex.message.to_s
  36. send_error(text)
  37. # ErrorEmailer.send_sync_error(ex.backtrace, ex.class, ex.message, params, table_name, restaurant).deliver
  38. object_status = {}
  39. object_status[:id] = params[:id]
  40. object_status[:code] = 75 # Другая ошибка при сохранение, проверьте параметры объекта
  41. end
  42. end
  43. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement