[GraphQL] expose file information
This commit is contained in:
parent
1146447c14
commit
422b7f37ec
9 changed files with 59 additions and 19 deletions
|
@ -28,9 +28,9 @@ module Extensions
|
|||
# This method is called if the result of the `resolve`
|
||||
# is a lazy value (e.g., a Promise – like in our case)
|
||||
def after_resolve(value:, **_rest)
|
||||
return if value.nil?
|
||||
|
||||
Rails.application.routes.url_helpers.url_for(value)
|
||||
if value&.virus_scanner&.safe? || value&.virus_scanner&.pending?
|
||||
value
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@ type Association {
|
|||
}
|
||||
|
||||
type Avis {
|
||||
attachmentUrl: URL
|
||||
attachment: File
|
||||
dateQuestion: ISO8601DateTime!
|
||||
dateReponse: ISO8601DateTime
|
||||
expert: Profile
|
||||
|
@ -383,7 +383,7 @@ type Dossier {
|
|||
instructeurs: [Profile!]!
|
||||
messages: [Message!]!
|
||||
motivation: String
|
||||
motivationAttachmentUrl: URL
|
||||
motivationAttachment: File
|
||||
|
||||
"""
|
||||
Le numero du dossier.
|
||||
|
@ -663,6 +663,14 @@ type Entreprise {
|
|||
siretSiegeSocial: String!
|
||||
}
|
||||
|
||||
type File {
|
||||
byteSize: Int!
|
||||
checksum: String!
|
||||
contentType: String!
|
||||
filename: String!
|
||||
url: URL!
|
||||
}
|
||||
|
||||
interface GeoArea {
|
||||
geometry: GeoJSON!
|
||||
id: ID!
|
||||
|
@ -742,7 +750,7 @@ type LinkedDropDownListChamp implements Champ {
|
|||
}
|
||||
|
||||
type Message {
|
||||
attachmentUrl: URL
|
||||
attachment: File
|
||||
body: String!
|
||||
createdAt: ISO8601DateTime!
|
||||
email: String!
|
||||
|
@ -875,6 +883,7 @@ type PersonnePhysique implements Demandeur {
|
|||
}
|
||||
|
||||
type PieceJustificativeChamp implements Champ {
|
||||
file: File
|
||||
id: ID!
|
||||
|
||||
"""
|
||||
|
@ -886,7 +895,6 @@ type PieceJustificativeChamp implements Champ {
|
|||
La valeur du champ sous forme texte.
|
||||
"""
|
||||
stringValue: String
|
||||
url: URL
|
||||
}
|
||||
|
||||
type Profile {
|
||||
|
|
|
@ -7,7 +7,7 @@ module Types
|
|||
field :date_question, GraphQL::Types::ISO8601DateTime, null: false, method: :created_at
|
||||
field :date_reponse, GraphQL::Types::ISO8601DateTime, null: true, method: :updated_at
|
||||
|
||||
field :attachment_url, Types::URL, null: true, extensions: [
|
||||
field :attachment, Types::File, null: true, extensions: [
|
||||
{ Extensions::Attachment => { attachment: :piece_justificative_file } }
|
||||
]
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ module Types::Champs
|
|||
include Rails.application.routes.url_helpers
|
||||
implements Types::ChampType
|
||||
|
||||
field :url, Types::URL, null: true, extensions: [
|
||||
field :file, Types::File, null: true, extensions: [
|
||||
{ Extensions::Attachment => { attachment: :piece_justificative_file } }
|
||||
]
|
||||
end
|
||||
|
|
|
@ -20,7 +20,7 @@ module Types
|
|||
field :archived, Boolean, null: false
|
||||
|
||||
field :motivation, String, null: true
|
||||
field :motivation_attachment_url, Types::URL, null: true, extensions: [
|
||||
field :motivation_attachment, Types::File, null: true, extensions: [
|
||||
{ Extensions::Attachment => { attachment: :justificatif_motivation } }
|
||||
]
|
||||
|
||||
|
|
13
app/graphql/types/file.rb
Normal file
13
app/graphql/types/file.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
module Types
|
||||
class File < Types::BaseObject
|
||||
field :url, Types::URL, null: false
|
||||
field :filename, String, null: false
|
||||
field :byte_size, Int, null: false
|
||||
field :checksum, String, null: false
|
||||
field :content_type, String, null: false
|
||||
|
||||
def url
|
||||
Rails.application.routes.url_helpers.url_for(object)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -4,7 +4,7 @@ module Types
|
|||
field :email, String, null: false
|
||||
field :body, String, null: false
|
||||
field :created_at, GraphQL::Types::ISO8601DateTime, null: false
|
||||
field :attachment_url, Types::URL, null: true, extensions: [
|
||||
field :attachment, Types::File, null: true, extensions: [
|
||||
{ Extensions::Attachment => { attachment: :piece_jointe } }
|
||||
]
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue