Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def insert_or_update_object(params, restaurant_id, table_name, schema_name, device_id, shard) # Обрабатываем XML объекта
- object_status = {}
- model = get_model_object(schema_name, table_name) # Преврашаем в модель
- object = model.using(shard).find_by_id(params[:id]) # Ищем объект
- if object.blank? # Объект если не найден добавляем если найден то обновляем
- begin
- object_status = insert_object(params, restaurant_id, model, device_id, shard)
- rescue ActiveRecord::RecordInvalid => ex
- restaurant = Restaurant.find_by_id(restaurant_id)
- text = 'Restaurant:' + restaurant.title + ' id: ' + restaurant.id.to_s
- text << "\nparams:\n #{params}"
- text << "\ntable_name:\n #{table_name}"
- text << ex.backtrace.to_s + '\n' + ex.class.to_s + '\n' + ex.message.to_s
- send_error(text)
- # ErrorEmailer.send_sync_error(ex.backtrace, ex.class, ex.message, params, table_name, restaurant).deliver
- object_status = {}
- object_status[:id] = params[:id]
- object_status[:code] = 73 # параметры объекта не правильны, не проходят валидацию
- rescue ActiveRecord::InvalidForeignKey => ex
- restaurant = Restaurant.find_by_id(restaurant_id)
- text = 'Restaurant:' + restaurant.title + ' id: ' + restaurant.id.to_s
- text << "\nparams:\n #{params}"
- text << "\ntable_name:\n #{table_name}"
- text << ex.backtrace.to_s + '\n' + ex.class.to_s + '\n' + ex.message.to_s
- send_error(text)
- # ErrorEmailer.send_sync_error(ex.backtrace, ex.class, ex.message, params, table_name, restaurant).deliver
- object_status = {}
- object_status[:id] = params[:id]
- object_status[:code] = 74 # ошибка во внешнем ключе
- rescue => ex
- restaurant = Restaurant.find_by_id(restaurant_id)
- text = 'Restaurant:' + restaurant.title + ' id: ' + restaurant.id.to_s
- text << "\nparams:\n #{params}"
- text << "\ntable_name:\n #{table_name}"
- text << ex.backtrace.to_s + '\n' + ex.class.to_s + '\n' + ex.message.to_s
- send_error(text)
- # ErrorEmailer.send_sync_error(ex.backtrace, ex.class, ex.message, params, table_name, restaurant).deliver
- object_status = {}
- object_status[:id] = params[:id]
- object_status[:code] = 75 # Другая ошибка при сохранение, проверьте параметры объекта
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement