Pre-doc APIs
This commit is contained in:
parent
c971849312
commit
3e62dd01fb
5 changed files with 180 additions and 12 deletions
|
@ -2,6 +2,7 @@ class API::V1::DossiersController < APIController
|
|||
|
||||
api :GET, '/procedures/:procedure_id/dossiers/', 'Liste de tous les dossiers d\'une procédure'
|
||||
param :procedure_id, Integer, desc: "L'identifiant de la procédure", required: true
|
||||
param :token, String, desc: "Token administrateur", required: true
|
||||
error code: 401, desc: "Non authorisé"
|
||||
error code: 404, desc: "Procédure inconnue"
|
||||
|
||||
|
@ -23,7 +24,8 @@ class API::V1::DossiersController < APIController
|
|||
|
||||
api :GET, '/procedures/:procedure_id/dossiers/:id', 'Informations du dossier d\'une procédure'
|
||||
param :procedure_id, Integer, desc: "L'identifiant de la procédure", required: true
|
||||
param :dossier_id, Integer, desc: "L'identifiant de la procédure", required: true
|
||||
param :dossier_id, Integer, desc: "L'identifiant du dossier", required: true
|
||||
param :token, String, desc: "Token administrateur", required: true
|
||||
error code: 401, desc: "Non authorisé"
|
||||
error code: 404, desc: "Procédure ou dossier inconnu"
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
class API::V1::ProceduresController < APIController
|
||||
api :GET, '/procedures/:id', 'Informations concernant une procédure'
|
||||
param :id, Integer, desc: "L'identifiant de la procédure", required: true
|
||||
param :token, String, desc: "Token administrateur", required: true
|
||||
error code: 401, desc: "Non authorisé"
|
||||
error code: 404, desc: "Procédure inconnue"
|
||||
|
||||
|
|
165
doc/apipie_examples.json
Normal file
165
doc/apipie_examples.json
Normal file
|
@ -0,0 +1,165 @@
|
|||
{
|
||||
"dossiers#index": [
|
||||
{
|
||||
"verb": "GET",
|
||||
"path": "/api/v1/procedures/2/dossiers",
|
||||
"versions": [
|
||||
"1.0"
|
||||
],
|
||||
"query": "token=92cf04673cb66ab57a0c45e085b5140398ab4b6c",
|
||||
"request_data": null,
|
||||
"response_data": {
|
||||
"dossiers": [
|
||||
{
|
||||
"id": 2,
|
||||
"nom_projet": "Demande de subvention dans le cadre d'accompagnement d'enfant à l'étranger",
|
||||
"updated_at": "2008-09-01T08:05:00.000Z"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"page": 1,
|
||||
"resultats_par_page": 12,
|
||||
"nombre_de_page": 1
|
||||
}
|
||||
},
|
||||
"code": "200",
|
||||
"show_in_doc": 1,
|
||||
"recorded": true
|
||||
}
|
||||
],
|
||||
"dossiers#show": [
|
||||
{
|
||||
"verb": "GET",
|
||||
"path": "/api/v1/procedures/1/dossiers/1",
|
||||
"versions": [
|
||||
"1.0"
|
||||
],
|
||||
"query": "token=7cba5df87cf134d07c3c467eb21b4f2a2b2605be",
|
||||
"request_data": null,
|
||||
"response_data": {
|
||||
"dossier": {
|
||||
"id": 1,
|
||||
"nom_projet": "Demande de subvention dans le cadre d'accompagnement d'enfant à l'étranger",
|
||||
"description": "Ma super description",
|
||||
"created_at": "2008-09-01T08:05:00.000Z",
|
||||
"updated_at": "2008-09-01T08:05:00.000Z",
|
||||
"archived": false,
|
||||
"mandataire_social": false,
|
||||
"entreprise": {
|
||||
"siren": "440117620",
|
||||
"capital_social": 537100000,
|
||||
"numero_tva_intracommunautaire": "FR27440117620",
|
||||
"forme_juridique": "SA à conseil d'administration (s.a.i.)",
|
||||
"forme_juridique_code": "5599",
|
||||
"nom_commercial": "GRTGAZ",
|
||||
"raison_sociale": "GRTGAZ",
|
||||
"siret_siege_social": "44011762001530",
|
||||
"code_effectif_entreprise": "51",
|
||||
"date_creation": "2016-01-28T10:16:29.000Z",
|
||||
"nom": null,
|
||||
"prenom": null
|
||||
},
|
||||
"etablissement": {
|
||||
"siret": "44011762001530",
|
||||
"siege_social": true,
|
||||
"naf": "4950Z",
|
||||
"libelle_naf": "Transports par conduites",
|
||||
"adresse": "GRTGAZ\r IMMEUBLE BORA\r 6 RUE RAOUL NORDLING\r 92270 BOIS COLOMBES\r",
|
||||
"numero_voie": "6",
|
||||
"type_voie": "RUE",
|
||||
"nom_voie": "RAOUL NORDLING",
|
||||
"complement_adresse": "IMMEUBLE BORA",
|
||||
"code_postal": "92270",
|
||||
"localite": "BOIS COLOMBES",
|
||||
"code_insee_localite": "92009"
|
||||
},
|
||||
"cerfa": null,
|
||||
"champs": [
|
||||
{
|
||||
"value": null,
|
||||
"type_de_champ": {
|
||||
"id": 1,
|
||||
"libelle": "Description",
|
||||
"type": "textarea",
|
||||
"order_place": 1,
|
||||
"description": "description de votre projet"
|
||||
}
|
||||
}
|
||||
],
|
||||
"pieces_justificatives": [
|
||||
{
|
||||
"url": null,
|
||||
"type_de_piece_justificative": {
|
||||
"id": 1,
|
||||
"libelle": "RIB",
|
||||
"description": "Releve identité bancaire"
|
||||
}
|
||||
},
|
||||
{
|
||||
"url": null,
|
||||
"type_de_piece_justificative": {
|
||||
"id": 2,
|
||||
"libelle": "Attestation MSA",
|
||||
"description": "recuperation automatique"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"code": "200",
|
||||
"show_in_doc": 1,
|
||||
"recorded": true
|
||||
}
|
||||
],
|
||||
"procedures#show": [
|
||||
{
|
||||
"verb": "GET",
|
||||
"path": "/api/v1/procedures/3",
|
||||
"versions": [
|
||||
"1.0"
|
||||
],
|
||||
"query": "token=cc00dc59ddc89f64c6310bb4e25c55eeb63ee89c",
|
||||
"request_data": null,
|
||||
"response_data": {
|
||||
"procedure": {
|
||||
"label": "Demande de subvention",
|
||||
"link": "http://localhost",
|
||||
"id": 3,
|
||||
"description": "Demande de subvention à l'intention des associations",
|
||||
"organisation": "Orga SGMAP",
|
||||
"direction": "direction SGMAP",
|
||||
"archived": false,
|
||||
"geographic_information": {
|
||||
"use_api_carto": false,
|
||||
"quartiers_prioritaires": false,
|
||||
"cadastre": false
|
||||
},
|
||||
"types_de_champ": [
|
||||
{
|
||||
"id": 3,
|
||||
"libelle": "Description",
|
||||
"type": "textarea",
|
||||
"order_place": 1,
|
||||
"description": "description de votre projet"
|
||||
}
|
||||
],
|
||||
"types_de_piece_justificative": [
|
||||
{
|
||||
"id": 5,
|
||||
"libelle": "RIB",
|
||||
"description": "Releve identité bancaire"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"libelle": "Attestation MSA",
|
||||
"description": "recuperation automatique"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"code": "200",
|
||||
"show_in_doc": 1,
|
||||
"recorded": true
|
||||
}
|
||||
]
|
||||
}
|
|
@ -8,9 +8,9 @@ describe API::V1::DossiersController do
|
|||
it { expect(described_class).to be < APIController }
|
||||
|
||||
describe 'GET index' do
|
||||
let(:response) { get :index, token: admin.api_token, procedure_id: procedure_id }
|
||||
let(:retour) { get :index, token: admin.api_token, procedure_id: procedure_id }
|
||||
|
||||
subject { response }
|
||||
subject { retour }
|
||||
|
||||
context 'when procedure is not found' do
|
||||
let(:procedure_id) { 99_999_999 }
|
||||
|
@ -26,10 +26,10 @@ describe API::V1::DossiersController do
|
|||
let(:procedure_id) { procedure.id }
|
||||
let(:date_creation) { Time.local(2008, 9, 1, 10, 5, 0) }
|
||||
let!(:dossier) { Timecop.freeze(date_creation) { create(:dossier, :with_entreprise, procedure: procedure, state: 'initiated') } }
|
||||
let(:body) { JSON.parse(response.body, symbolize_names: true) }
|
||||
let(:body) { JSON.parse(retour.body, symbolize_names: true) }
|
||||
|
||||
it 'return REST code 200', :show_in_doc do
|
||||
expect(response.code).to eq('200')
|
||||
expect(retour.code).to eq('200')
|
||||
end
|
||||
|
||||
it { expect(body).to have_key :pagination }
|
||||
|
@ -59,7 +59,7 @@ describe API::V1::DossiersController do
|
|||
end
|
||||
|
||||
context 'when there are multiple pages' do
|
||||
let(:response) { get :index, token: admin.api_token, procedure_id: procedure_id, page: 2 }
|
||||
let(:retour) { get :index, token: admin.api_token, procedure_id: procedure_id, page: 2 }
|
||||
|
||||
let!(:dossier1) { create(:dossier, :with_entreprise, procedure: procedure, state: 'initiated') }
|
||||
let!(:dossier2) { create(:dossier, :with_entreprise, procedure: procedure, state: 'initiated') }
|
||||
|
@ -80,8 +80,8 @@ describe API::V1::DossiersController do
|
|||
end
|
||||
|
||||
describe 'GET show' do
|
||||
let(:response) { get :show, token: admin.api_token, procedure_id: procedure_id, id: dossier_id }
|
||||
subject { response }
|
||||
let(:retour) { get :show, token: admin.api_token, procedure_id: procedure_id, id: dossier_id }
|
||||
subject { retour }
|
||||
|
||||
context 'when procedure is not found' do
|
||||
let(:procedure_id) { 99_999_999 }
|
||||
|
@ -115,12 +115,12 @@ describe API::V1::DossiersController do
|
|||
let(:date_creation) { Time.local(2008, 9, 1, 10, 5, 0) }
|
||||
let!(:dossier) { Timecop.freeze(date_creation) { create(:dossier, :with_entreprise, procedure: procedure) } }
|
||||
let(:dossier_id) { dossier.id }
|
||||
let(:body) { JSON.parse(response.body, symbolize_names: true) }
|
||||
let(:body) { JSON.parse(retour.body, symbolize_names: true) }
|
||||
let(:field_list) { [:id, :nom_projet, :created_at, :updated_at, :description, :archived, :mandataire_social, :entreprise, :etablissement, :cerfa, :pieces_justificatives, :champs] }
|
||||
subject { body[:dossier] }
|
||||
|
||||
it 'return REST code 200', :show_in_doc do
|
||||
expect(response.code).to eq('200')
|
||||
expect(retour.code).to eq('200')
|
||||
end
|
||||
it { expect(subject[:id]).to eq(dossier.id) }
|
||||
it { expect(subject[:nom_projet]).to eq(dossier.nom_projet) }
|
||||
|
|
|
@ -15,7 +15,7 @@ describe API::V1::ProceduresController do
|
|||
it { expect(subject.status).to eq(404) }
|
||||
end
|
||||
context 'when procedure exist' do
|
||||
let(:procedure) { create(:procedure, administrateur: admin) }
|
||||
let(:procedure) { create(:procedure, :with_two_type_de_piece_justificative, :with_type_de_champ, administrateur: admin) }
|
||||
subject { get :show, id: procedure, token: admin.api_token }
|
||||
|
||||
it 'return REST code 200', :show_in_doc do
|
||||
|
@ -32,7 +32,7 @@ describe API::V1::ProceduresController do
|
|||
it { expect(subject[:label]).to eq(procedure.libelle) }
|
||||
it { expect(subject[:description]).to eq(procedure.description) }
|
||||
it { expect(subject[:organisation]).to eq(procedure.organisation) }
|
||||
it { expect(subject[:direction]).to eq(procedure.direction) }
|
||||
it { expect(subject[:direction]).to eq(proced,ure.direction) }
|
||||
it { expect(subject[:link]).to eq(procedure.lien_demarche) }
|
||||
it { expect(subject[:archived]).to eq(procedure.archived) }
|
||||
it { is_expected.to have_key(:types_de_champ) }
|
||||
|
|
Loading…
Add table
Reference in a new issue