Class: Webhookdb::Service
- Inherits:
-
Grape::API
- Object
- Grape::API
- Webhookdb::Service
- Extended by:
- MethodUtilities
- Includes:
- Appydays::Configurable, Appydays::Loggable
- Defined in:
- lib/webhookdb/service.rb
Overview
Service is the base class for all endpoint/resource classes.
Direct Known Subclasses
API::System, API::V1, AdminAPI::V1, Apps::API, Apps::AdminAPI
Defined Under Namespace
Modules: Entities, Helpers, Middleware, Types, Validators, ViewApi Classes: Auth, Collection
Constant Summary collapse
- SESSION_COOKIE =
Name of the session in the server response cookie. Note that it is always ‘rack.session’ in code though.
"webhookdb.session"
- AUTH_TOKEN_HEADER =
"Whdb-Auth-Token"
- AUTH_TOKEN_HTTP =
"HTTP_WHDB_AUTH_TOKEN"
- SHORT_SESSION_HEADER =
"Whdb-Short-Session"
- SHORT_SESSION_HTTP =
"HTTP_WHDB_SHORT_SESSION"
- DEFAULT_CORS_ORIGINS =
[/localhost:\d+/, /192\.168\.\d{1,3}\.\d{1,3}:\d{3,5}/].freeze
Class Method Summary collapse
-
.build_app ⇒ Object
Build the Rack app according to the configured environment.
-
.cookie_config ⇒ Object
Return the config for the Rack::Session::Cookie middleware.
- .decode_cookie(s) ⇒ Object
- .error_body(status, message, code: nil, more: {}) ⇒ Object
Methods included from MethodUtilities
attr_predicate, attr_predicate_accessor, singleton_attr_accessor, singleton_attr_reader, singleton_attr_writer, singleton_method_alias, singleton_predicate_accessor, singleton_predicate_reader
Class Method Details
.build_app ⇒ Object
Build the Rack app according to the configured environment.
83 84 85 86 87 88 89 90 |
# File 'lib/webhookdb/service.rb', line 83 def self.build_app inner_app = self builder = Rack::Builder.new do Webhookdb::Service::Middleware.add_middlewares(self) run inner_app end return builder.to_app end |
.cookie_config ⇒ Object
Return the config for the Rack::Session::Cookie middleware.
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/webhookdb/service.rb', line 65 def self. return { key: Webhookdb::Service::SESSION_COOKIE, domain: Webhookdb::Service., path: "/", expire_after: Webhookdb::Service.max_session_age, secret: Webhookdb::Service.session_secret, coder: Rack::Session::Cookie::Base64::ZipJSON.new, } end |
.decode_cookie(s) ⇒ Object
76 77 78 79 80 |
# File 'lib/webhookdb/service.rb', line 76 def self.(s) cfg = self. s = s.delete_prefix(cfg[:key] + "=") return cfg[:coder].decode(Rack::Utils.unescape(s)) end |
.error_body(status, message, code: nil, more: {}) ⇒ Object
92 93 94 95 96 97 98 99 |
# File 'lib/webhookdb/service.rb', line 92 def self.error_body(status, , code: nil, more: {}) error = more.merge( message:, status:, ) error[:code] = code unless code.nil? return {error:} end |