demarches-normaliennes/app/graphql/mutations/dossier_changer_groupe_instructeur.rb
2023-07-18 16:54:00 +02:00

37 lines
1.3 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

module Mutations
class DossierChangerGroupeInstructeur < Mutations::BaseMutation
include DossierHelper
description "Changer le grope instructeur du dossier."
argument :dossier_id, ID, "Dossier ID", required: true, loads: Types::DossierType
argument :groupe_instructeur_id, ID, "Group instructeur a affecter", required: true, loads: Types::GroupeInstructeurType
field :dossier, Types::DossierType, null: true
field :errors, [Types::ValidationErrorType], null: true
def resolve(dossier:, groupe_instructeur:)
previous_groupe_instructeur = dossier.groupe_instructeur
dossier.assign_to_groupe_instructeur(groupe_instructeur)
dossier.create_assignment(
DossierAssignment.modes.fetch(:manual),
previous_groupe_instructeur,
dossier.groupe_instructeur
)
{ dossier: }
end
def authorized?(dossier:, groupe_instructeur:)
if dossier.groupe_instructeur == groupe_instructeur
return false, { errors: ["Le dossier est déjà avec le grope instructeur: '#{groupe_instructeur.label}'"] }
elsif dossier.procedure != groupe_instructeur.procedure
return false, { errors: ["Le groupe instructeur '#{groupe_instructeur.label}' nappartient pas à la même démarche que le dossier"] }
else
true
end
end
end
end