diff --git a/app/graphql/api/v2/context.rb b/app/graphql/api/v2/context.rb index e8496535a..4e14c3c2d 100644 --- a/app/graphql/api/v2/context.rb +++ b/app/graphql/api/v2/context.rb @@ -61,7 +61,8 @@ class API::V2::Context < GraphQL::Query::Context graphql_variables: query.provided_variables&.to_json, graphql_mutation: mutation?, graphql_null_error: errors.any? { _1.is_a? GraphQL::InvalidNullError }.presence, - graphql_timeout_error: errors.any? { _1.is_a? GraphQL::Schema::Timeout::TimeoutError }.presence + graphql_timeout_error: errors.any? { _1.is_a? GraphQL::Schema::Timeout::TimeoutError }.presence, + graphql_api_token_id: self[:api_token_id] }.compact end diff --git a/app/models/api_token.rb b/app/models/api_token.rb index bac2cb53a..397e6f47c 100644 --- a/app/models/api_token.rb +++ b/app/models/api_token.rb @@ -8,6 +8,7 @@ class APIToken < ApplicationRecord def context { administrateur_id:, + api_token_id: id, procedure_ids:, write_access: } diff --git a/spec/models/api_token_spec.rb b/spec/models/api_token_spec.rb index aaad7202d..368082b09 100644 --- a/spec/models/api_token_spec.rb +++ b/spec/models/api_token_spec.rb @@ -14,7 +14,7 @@ describe APIToken, type: :model do expect(api_token.version).to eq(3) expect(api_token.write_access?).to eq(true) expect(api_token.procedure_ids).to eq([]) - expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: true) + expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: true, api_token_id: api_token.id) expect(api_token.full_access?).to be_truthy end @@ -22,7 +22,7 @@ describe APIToken, type: :model do before { api_token.update(write_access: false) } it do - expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: false) + expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: false, api_token_id: api_token.id) end end @@ -38,7 +38,7 @@ describe APIToken, type: :model do expect(api_token.full_access?).to be_truthy expect(api_token.procedure_ids).to eq([procedure.id]) expect(api_token.procedures).to eq([procedure]) - expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [procedure.id], write_access: true) + expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [procedure.id], write_access: true, api_token_id: api_token.id) end context 'and another procedure, but access only to the first one' do @@ -54,7 +54,7 @@ describe APIToken, type: :model do expect(api_token.full_access?).to be_falsey expect(api_token.procedure_ids).to match_array([procedure.id]) expect(api_token.targetable_procedures).to eq([other_procedure]) - expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [procedure.id], write_access: true) + expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [procedure.id], write_access: true, api_token_id: api_token.id) end context 'and then gain full access' do @@ -83,7 +83,7 @@ describe APIToken, type: :model do expect(api_token.full_access?).to be_falsey expect(api_token.procedure_ids).to eq([]) expect(api_token.targetable_procedures).to eq([procedure]) - expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: true) + expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: true, api_token_id: api_token.id) end end @@ -100,7 +100,7 @@ describe APIToken, type: :model do expect(api_token.full_access?).to be_falsey expect(api_token.procedure_ids).to eq([]) expect(api_token.targetable_procedures).to eq([]) - expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: true) + expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: true, api_token_id: api_token.id) end end @@ -119,7 +119,7 @@ describe APIToken, type: :model do expect(api_token.full_access?).to be_falsey expect(api_token.procedure_ids).to eq([]) expect(api_token.targetable_procedures).to eq([other_procedure]) - expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: true) + expect(api_token.context).to eq(administrateur_id: administrateur.id, procedure_ids: [], write_access: true, api_token_id: api_token.id) end end end