Add object_by_id_field helper to BaseObject and replace argument definitions
- Created `object_by_id_field` method in `BaseObject` to simplify the declaration of fields with an `id` argument. - Replaced all instances of `field ... do` blocks with `object_by_id_field` where fields require an `id` argument across multiple types.
This commit is contained in:
@@ -24,5 +24,11 @@ module Types
|
|||||||
define_method(field_name) { object.send(field_name).public_for_api }
|
define_method(field_name) { object.send(field_name).public_for_api }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.object_by_id_field(field_name, type, description, null:)
|
||||||
|
field field_name, type, description, null: null do
|
||||||
|
argument :id, ID, required: true, default_value: false
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -4,9 +4,7 @@ module Types
|
|||||||
field :name, String, null: true
|
field :name, String, null: true
|
||||||
field :phase, String, null: true
|
field :phase, String, null: true
|
||||||
field :investments, Types::BudgetInvestmentType.connection_type, "Returns all investments", null: false
|
field :investments, Types::BudgetInvestmentType.connection_type, "Returns all investments", null: false
|
||||||
field :investment, Types::BudgetInvestmentType, null: false do
|
object_by_id_field :investment, Types::BudgetInvestmentType, "Returns investment for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
def investments
|
def investments
|
||||||
Budget::Investment.public_for_api
|
Budget::Investment.public_for_api
|
||||||
|
|||||||
@@ -1,61 +1,41 @@
|
|||||||
module Types
|
module Types
|
||||||
class QueryType < Types::BaseObject
|
class QueryType < Types::BaseObject
|
||||||
field :budgets, Types::BudgetType.connection_type, "Returns all budgets", null: false
|
field :budgets, Types::BudgetType.connection_type, "Returns all budgets", null: false
|
||||||
field :budget, Types::BudgetType, "Returns budget for ID", null: false do
|
object_by_id_field :budget, Types::BudgetType, "Returns budget for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
field :comments, Types::CommentType.connection_type, "Returns all comments", null: false
|
field :comments, Types::CommentType.connection_type, "Returns all comments", null: false
|
||||||
field :comment, Types::CommentType, "Returns comment for ID", null: false do
|
object_by_id_field :comment, Types::CommentType, "Returns comment for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
field :debates, Types::DebateType.connection_type, "Returns all debates", null: false
|
field :debates, Types::DebateType.connection_type, "Returns all debates", null: false
|
||||||
field :debate, Types::DebateType, "Returns debate for ID", null: false do
|
object_by_id_field :debate, Types::DebateType, "Returns debate for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
field :geozones, Types::GeozoneType.connection_type, "Returns all geozones", null: false
|
field :geozones, Types::GeozoneType.connection_type, "Returns all geozones", null: false
|
||||||
field :geozone, Types::GeozoneType, "Returns geozone for ID", null: false do
|
object_by_id_field :geozone, Types::GeozoneType, "Returns geozone for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
field :milestones, Types::MilestoneType.connection_type, "Returns all milestones", null: false
|
field :milestones, Types::MilestoneType.connection_type, "Returns all milestones", null: false
|
||||||
field :milestone, Types::MilestoneType, "Returns milestone for ID", null: false do
|
object_by_id_field :milestone, Types::MilestoneType, "Returns milestone for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
field :proposals, Types::ProposalType.connection_type, "Returns all proposals", null: false
|
field :proposals, Types::ProposalType.connection_type, "Returns all proposals", null: false
|
||||||
field :proposal, Types::ProposalType, "Returns proposal for ID", null: false do
|
object_by_id_field :proposal, Types::ProposalType, "Returns proposal for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
field :proposal_notifications,
|
field :proposal_notifications,
|
||||||
Types::ProposalNotificationType.connection_type,
|
Types::ProposalNotificationType.connection_type,
|
||||||
"Returns all proposal notifications",
|
"Returns all proposal notifications",
|
||||||
null: false
|
null: false
|
||||||
|
|
||||||
field :proposal_notification,
|
object_by_id_field :proposal_notification,
|
||||||
Types::ProposalNotificationType,
|
Types::ProposalNotificationType,
|
||||||
"Returns proposal notification for ID",
|
"Returns proposal notification for ID",
|
||||||
null: false do
|
null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
field :tags, Types::TagType.connection_type, "Returns all tags", null: false
|
field :tags, Types::TagType.connection_type, "Returns all tags", null: false
|
||||||
field :tag, Types::TagType, "Returns tag for ID", null: false do
|
object_by_id_field :tag, Types::TagType, "Returns tag for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
field :users, Types::UserType.connection_type, "Returns all users", null: false
|
field :users, Types::UserType.connection_type, "Returns all users", null: false
|
||||||
field :user, Types::UserType, "Returns user for ID", null: false do
|
object_by_id_field :user, Types::UserType, "Returns user for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
field :votes, Types::VoteType.connection_type, "Returns all votes", null: false
|
field :votes, Types::VoteType.connection_type, "Returns all votes", null: false
|
||||||
field :vote, Types::VoteType, "Returns vote for ID", null: false do
|
object_by_id_field :vote, Types::VoteType, "Returns vote for ID", null: false
|
||||||
argument :id, ID, required: true, default_value: false
|
|
||||||
end
|
|
||||||
|
|
||||||
def budgets
|
def budgets
|
||||||
Budget.public_for_api
|
Budget.public_for_api
|
||||||
|
|||||||
Reference in New Issue
Block a user