module Sequel::Simple::OAuth2::AccessGrant
AccessGrant
role mixin for Sequel
. Includes all the required API, associations, validations and callbacks.
Public Class Methods
by_token(token)
click to toggle source
Searches for AccessGrant
record with the specific `#token` value.
@param token [#to_s] token value (any object that responds to `#to_s`).
@return [Object, nil] AccessGrant
object or nil if there is no record with such `#token`.
# File lib/sequel_simple_oauth2/mixins/access_grant.rb, line 50 def self.by_token(token) first(token: token.to_s) end
create_for(client, resource_owner, redirect_uri, scopes = nil)
click to toggle source
Create a new AccessGrant
object.
@param client [Object] Client
instance. @param resource_owner [Object] ResourceOwner
instance. @param redirect_uri [String] Redirect URI callback. @param scopes [String] set of scopes.
@return [Object] AccessGrant
object.
# File lib/sequel_simple_oauth2/mixins/access_grant.rb, line 63 def self.create_for(client, resource_owner, redirect_uri, scopes = nil) create( client_id: client.id, resource_owner_id: resource_owner.id, redirect_uri: redirect_uri, scopes: scopes ) end
Public Instance Methods
before_validation()
click to toggle source
Calls superclass method
# File lib/sequel_simple_oauth2/mixins/access_grant.rb, line 25 def before_validation if new? # Generate token generate_token # Setup lifetime for `#code` value. setup_expiration end super end
generate_token()
click to toggle source
Generate token
@return token [String] string object.
# File lib/sequel_simple_oauth2/mixins/access_grant.rb, line 78 def generate_token self.token = ::Simple::OAuth2.config.token_generator.generate end
setup_expiration()
click to toggle source
Set lifetime for `#code` value during creating a new record.
@return clock [Time] time object.
# File lib/sequel_simple_oauth2/mixins/access_grant.rb, line 86 def setup_expiration self.expires_at = Time.now.utc + ::Simple::OAuth2.config.authorization_code_lifetime if expires_at.nil? end
validate()
click to toggle source
Required fields!
Calls superclass method
# File lib/sequel_simple_oauth2/mixins/access_grant.rb, line 38 def validate super validates_presence %i[token client_id redirect_uri] validates_unique %i[token] end