summaryrefslogtreecommitdiff
path: root/app/graphql/types/design_management/design_at_version_type.rb
blob: 0dc93072e4f0750bf647e456647f8e33bf08c68d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# frozen_string_literal: true

module Types
  module DesignManagement
    class DesignAtVersionType < BaseObject
      graphql_name 'DesignAtVersion'

      description 'A design pinned to a specific version. ' \
                  'The image field reflects the design as of the associated version'

      authorize :read_design

      delegate :design, :version, to: :object
      delegate :issue, :filename, :full_path, :diff_refs, to: :design

      implements ::Types::DesignManagement::DesignFields

      field :version,
            Types::DesignManagement::VersionType,
            null: false,
            description: 'Version this design-at-versions is pinned to.'

      field :design,
            Types::DesignManagement::DesignType,
            null: false,
            description: 'Underlying design.'

      def cached_stateful_version(_parent)
        version
      end

      def notes_count
        design.user_notes_count
      end
    end
  end
end