Merge pull request #10723 from demarches-simplifiees/multiple_urls

Ajoute la possibilité d'avoir plusieurs urls pour une démarche (HACK à ne pas utiliser)
This commit is contained in:
LeSim 2024-08-29 16:08:54 +00:00 committed by GitHub
commit ad6aa84774
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 49 additions and 1 deletions

View file

@ -4,6 +4,17 @@ module Users
class CommencerController < ApplicationController
layout 'procedure_context'
before_action :path_rewrite, only: [:commencer, :commencer_test, :dossier_vide_pdf, :dossier_vide_pdf_test, :sign_in, :sign_up, :france_connect, :procedure_for_help, :closing_details]
# TODO: REMOVE THIS
# this was only added because a administration needed new urls
# check from 07/2025 if this is still needed
def path_rewrite
path_rewrite = PathRewrite.find_by(from: params[:path])
params[:path] = path_rewrite.to if path_rewrite.present?
end
def commencer
@procedure = retrieve_procedure

View file

@ -0,0 +1,4 @@
# frozen_string_literal: true
class PathRewrite < ApplicationRecord
end

View file

@ -0,0 +1,13 @@
# frozen_string_literal: true
class CreatePathRewrites < ActiveRecord::Migration[7.0]
def change
create_table :path_rewrites do |t|
t.string :from, null: false
t.string :to, null: false
t.timestamps
end
add_index :path_rewrites, :from, unique: true
end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2024_08_26_130121) do
ActiveRecord::Schema[7.0].define(version: 2024_08_29_141049) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_buffercache"
enable_extension "pg_stat_statements"
@ -858,6 +858,14 @@ ActiveRecord::Schema[7.0].define(version: 2024_08_26_130121) do
t.index ["procedure_id"], name: "index_module_api_cartos_on_procedure_id", unique: true
end
create_table "path_rewrites", force: :cascade do |t|
t.datetime "created_at", null: false
t.string "from", null: false
t.string "to", null: false
t.datetime "updated_at", null: false
t.index ["from"], name: "index_path_rewrites_on_from", unique: true
end
create_table "procedure_presentations", id: :serial, force: :cascade do |t|
t.integer "assign_to_id"
t.datetime "created_at", precision: nil

View file

@ -19,6 +19,18 @@ describe Users::CommencerController, type: :controller do
end
end
context 'when a path rewrite is present' do
let(:path) { 'from' }
let!(:path_rewrite) { PathRewrite.create(from: 'from', to: published_procedure.path) }
it 'redirects to the new path' do
expect(subject.status).to eq(200)
expect(subject).to render_template('show')
expect(assigns(:procedure)).to eq published_procedure
expect(assigns(:revision)).to eq published_procedure.published_revision
end
end
context 'when the path is for a draft procedure' do
let(:path) { draft_procedure.path }