diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-21 02:50:22 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-21 02:50:22 +0300 |
commit | 9dc93a4519d9d5d7be48ff274127136236a3adb3 (patch) | |
tree | 70467ae3692a0e35e5ea56bcb803eb512a10bedb /app/graphql/types/packages/package_file_type.rb | |
parent | 4b0f34b6d759d6299322b3a54453e930c6121ff0 (diff) |
Add latest changes from gitlab-org/gitlab@13-11-stable-eev13.11.0-rc43
Diffstat (limited to 'app/graphql/types/packages/package_file_type.rb')
-rw-r--r-- | app/graphql/types/packages/package_file_type.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app/graphql/types/packages/package_file_type.rb b/app/graphql/types/packages/package_file_type.rb new file mode 100644 index 00000000000..e9e38559626 --- /dev/null +++ b/app/graphql/types/packages/package_file_type.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Types + module Packages + class PackageFileType < BaseObject + graphql_name 'PackageFile' + description 'Represents a package file' + authorize :read_package + + field :id, ::Types::GlobalIDType[::Packages::PackageFile], null: false, description: 'ID of the file.' + field :created_at, Types::TimeType, null: false, description: 'The created date.' + field :updated_at, Types::TimeType, null: false, description: 'The updated date.' + field :size, GraphQL::STRING_TYPE, null: false, description: 'Size of the package file.' + field :file_name, GraphQL::STRING_TYPE, null: false, description: 'Name of the package file.' + field :download_path, GraphQL::STRING_TYPE, null: false, description: 'Download path of the package file.' + field :file_md5, GraphQL::STRING_TYPE, null: true, description: 'Md5 of the package file.' + field :file_sha1, GraphQL::STRING_TYPE, null: true, description: 'Sha1 of the package file.' + field :file_sha256, GraphQL::STRING_TYPE, null: true, description: 'Sha256 of the package file.' + field :file_metadata, Types::Packages::FileMetadataType, null: true, + description: 'File metadata.' + + # NOTE: This method must be kept in sync with the union + # type: `Types::Packages::FileMetadataType`. + # + # `Types::Packages::FileMetadataType.resolve_type(metadata, ctx)` must never raise. + def file_metadata + case object.package.package_type + when 'conan' + object.conan_file_metadatum + else + nil + end + end + end + end +end |