Add new GraphQL type for milestones

- added the milestone type to be displayed with investments
- the corresponding spec
This commit is contained in:
cyrillefr
2024-07-02 15:47:42 +02:00
committed by Javi Martín
parent 5ec6337d47
commit 18323a36c3
8 changed files with 38 additions and 0 deletions

View File

@@ -9,5 +9,6 @@ module Types
field :location, String, null: true
field :comments, Types::CommentType.connection_type, null: true
field :comments_count, Integer, null: true
field :milestones, Types::MilestoneType.connection_type, null: true
end
end

View File

@@ -0,0 +1,8 @@
module Types
class MilestoneType < Types::BaseObject
field :title, String, null: true
field :description, String, null: true
field :id, ID, null: false
field :publication_date, GraphQL::Types::ISO8601Date, null: true
end
end

View File

@@ -20,6 +20,7 @@ module Types
field :title, String, null: true
field :video_url, String, null: true
field :votes_for, Types::VoteType.connection_type, null: true
field :milestones, Types::MilestoneType.connection_type, null: true
def tags
object.tags.public_for_api

View File

@@ -20,6 +20,11 @@ module Types
argument :id, ID, required: true, default_value: false
end
field :milestones, Types::MilestoneType.connection_type, "Returns all milestones", null: false
field :milestone, Types::MilestoneType, "Returns milestone for ID", null: false do
argument :id, ID, required: true, default_value: false
end
field :proposals, Types::ProposalType.connection_type, "Returns all proposals", null: false
field :proposal, Types::ProposalType, "Returns proposal for ID", null: false do
argument :id, ID, required: true, default_value: false
@@ -84,6 +89,14 @@ module Types
Geozone.find(id)
end
def milestones
Milestone.public_for_api
end
def milestone(id:)
Milestone.find(id)
end
def proposals
Proposal.public_for_api
end