module Trailblazer::Endpoint::Builder::DSL
Public Instance Methods
build_options_for(builder:, **options)
click to toggle source
@return endpoint_options
# File lib/trailblazer/endpoint/builder.rb, line 29 def build_options_for(builder:, **options) signal, (ctx, _) = builder.([options]) ctx[:build_options] # ["web:submitted?", {protocol_block: ..., options_for_build: ...}] end
endpoint_for(id:, builder:, default_options:, **config)
click to toggle source
# File lib/trailblazer/endpoint/builder.rb, line 35 def endpoint_for(id:, builder:, default_options:, **config) options = build_options_for(builder: builder, **config) return id, Trailblazer::Endpoint.build(default_options.merge(options[:options_for_build]).merge(protocol_block: options[:protocol_block])) end
endpoints_for(dsl_options, **options)
click to toggle source
{dsl_options} being something like
"api:Start.default" => {policies: []}, "api:status?" => {policies: [:user_owns_diagram]}, "api:download?" => {policies: [:user_owns_diagram]}, "api:delete?" => {policies: [:user_owns_diagram]},
# File lib/trailblazer/endpoint/builder.rb, line 47 def endpoints_for(dsl_options, **options) endpoints = dsl_options.collect do |id, config| endpoint_for(id: id, **options, **config) # config is per endpoint, options are "global" end.to_h end