Class: Flapjack::Gateways::JSONAPI
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- Flapjack::Gateways::JSONAPI
show all
- Includes:
- Helpers::SwaggerDocs, Utility, Swagger::Blocks
- Defined in:
- lib/flapjack/gateways/jsonapi.rb,
lib/flapjack/gateways/jsonapi/helpers/headers.rb,
lib/flapjack/gateways/jsonapi/methods/metrics.rb,
lib/flapjack/gateways/jsonapi/helpers/resources.rb,
lib/flapjack/gateways/jsonapi/helpers/serialiser.rb,
lib/flapjack/gateways/jsonapi/data/join_descriptor.rb,
lib/flapjack/gateways/jsonapi/helpers/swagger_docs.rb,
lib/flapjack/gateways/jsonapi/methods/resource_get.rb,
lib/flapjack/gateways/jsonapi/helpers/miscellaneous.rb,
lib/flapjack/gateways/jsonapi/methods/resource_post.rb,
lib/flapjack/gateways/jsonapi/data/method_descriptor.rb,
lib/flapjack/gateways/jsonapi/methods/resource_patch.rb,
lib/flapjack/gateways/jsonapi/methods/association_get.rb,
lib/flapjack/gateways/jsonapi/methods/resource_delete.rb,
lib/flapjack/gateways/jsonapi/methods/association_post.rb,
lib/flapjack/gateways/jsonapi/methods/association_patch.rb,
lib/flapjack/gateways/jsonapi/methods/association_delete.rb,
lib/flapjack/gateways/jsonapi/middleware/array_param_fixer.rb,
lib/flapjack/gateways/jsonapi/middleware/request_timestamp.rb,
lib/flapjack/gateways/jsonapi/middleware/json_params_parser.rb
Defined Under Namespace
Modules: Data, Helpers, Methods, Middleware
Constant Summary
collapse
- JSONAPI_MEDIA_TYPE =
'application/vnd.api+json'
- JSONAPI_MEDIA_TYPE_BULK =
'application/vnd.api+json; ext=bulk'
- RESOURCE_CLASSES =
[
Flapjack::Data::Acknowledgement,
Flapjack::Data::Check,
Flapjack::Data::Contact,
Flapjack::Data::Medium,
Flapjack::Data::Rule,
Flapjack::Data::ScheduledMaintenance,
Flapjack::Data::State,
Flapjack::Data::Statistic,
Flapjack::Data::Tag,
Flapjack::Data::TestNotification,
Flapjack::Data::UnscheduledMaintenance
]
- SWAGGERED_CLASSES =
[self] + Flapjack::Gateways::JSONAPI::RESOURCE_CLASSES +
[Flapjack::Data::Metrics]
- @@lock =
Monitor.new
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Utility
#hashify, #load_template, #local_timezone, #relative_time_ago, #remove_utc_offset, #stringify, #symbolize, #time_period_in_words, #truncate
Class Method Details
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
# File 'lib/flapjack/gateways/jsonapi.rb', line 104
def media_type_produced(options = {})
unless options[:with_charset].is_a?(TrueClass)
return 'application/vnd.api+json; supported-ext=bulk'
end
media_type = nil
@@lock.synchronize do
encoding = Encoding.default_external
media_type = if encoding.nil?
'application/vnd.api+json; supported-ext=bulk'
else
"application/vnd.api+json; supported-ext=bulk; charset=#{encoding.name.downcase}"
end
end
media_type
end
|
.start ⇒ Object
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/flapjack/gateways/jsonapi.rb', line 90
def start
Flapjack.logger.info "starting jsonapi - class"
if access_log = (@config && @config['access_log'])
unless File.directory?(File.dirname(access_log))
raise "Parent directory for log file #{access_log} doesn't exist"
end
@access_log = ::Logger.new(@config['access_log'])
use Rack::CommonLogger, @access_log
end
end
|
Instance Method Details
#config ⇒ Object
122
123
124
|
# File 'lib/flapjack/gateways/jsonapi.rb', line 122
def config
self.class.instance_variable_get("@config")
end
|
126
127
128
|
# File 'lib/flapjack/gateways/jsonapi.rb', line 126
def media_type_produced(options = {})
self.class.media_type_produced(options)
end
|