63 lines
1.6 KiB
Ruby
63 lines
1.6 KiB
Ruby
class Users::CarteController < UsersController
|
|
|
|
before_action only: [:show] do
|
|
authorized_routes? self.class
|
|
end
|
|
|
|
def show
|
|
@dossier = current_user_dossier
|
|
|
|
rescue ActiveRecord::RecordNotFound
|
|
flash.alert = t('errors.messages.dossier_not_found')
|
|
redirect_to url_for(root_path)
|
|
end
|
|
|
|
def save
|
|
dossier = current_user_dossier
|
|
|
|
dossier.quartier_prioritaires.map(&:destroy)
|
|
dossier.cadastres.map(&:destroy)
|
|
|
|
unless params[:json_latlngs].blank?
|
|
ModuleApiCartoService.save_qp! dossier, params[:json_latlngs]
|
|
ModuleApiCartoService.save_cadastre! dossier, params[:json_latlngs]
|
|
end
|
|
|
|
dossier.update_attributes(json_latlngs: params[:json_latlngs])
|
|
|
|
controller = :recapitulatif
|
|
controller = :description if dossier.draft?
|
|
|
|
redirect_to url_for(controller: controller, action: :show, dossier_id: params[:dossier_id])
|
|
end
|
|
|
|
def get_position
|
|
point = Carto::Geocodeur.convert_adresse_to_point(current_user_dossier.etablissement.geo_adresse) rescue nil
|
|
|
|
lon = '2.428462'
|
|
lat = '46.538192'
|
|
zoom = '13'
|
|
|
|
unless point.nil?
|
|
lon = point.x.to_s
|
|
lat = point.y.to_s
|
|
end
|
|
|
|
render json: {lon: lon, lat: lat, zoom: zoom, dossier_id: params[:dossier_id]}
|
|
end
|
|
|
|
def get_qp
|
|
render json: {quartier_prioritaires: ModuleApiCartoService.generate_qp(JSON.parse(params[:coordinates]))}
|
|
end
|
|
|
|
def get_cadastre
|
|
render json: {cadastres: ModuleApiCartoService.generate_cadastre(JSON.parse(params[:coordinates]))}
|
|
end
|
|
|
|
def self.route_authorization
|
|
{
|
|
states: [:draft, :initiated, :replied, :updated],
|
|
api_carto: true
|
|
}
|
|
end
|
|
end
|