class QueueIt::ConnectorDiagnostics

Attributes

hasError[RW]
isEnabled[RW]
validationResult[RW]

Public Class Methods

new() click to toggle source
# File lib/queueit_knownuserv3/connector_diagnostics.rb, line 7
def initialize
    @isEnabled = false
    @hasError = false
    @validationResult = nil
end
verify(customerId, secretKey, queueitToken) click to toggle source
# File lib/queueit_knownuserv3/connector_diagnostics.rb, line 31
def self.verify(customerId, secretKey, queueitToken)
    diagnostics = ConnectorDiagnostics.new

    qParams = QueueUrlParams.extractQueueParams(queueitToken)

    if(qParams == nil)
        return diagnostics
    end

    if(qParams.redirectType == nil)
        return diagnostics
    end

    if(not qParams.redirectType.upcase.eql?("DEBUG"))
        return diagnostics
    end

    if(Utils.isNilOrEmpty(customerId) or Utils.isNilOrEmpty(secretKey))
        diagnostics.setStateWithSetupError()
        return diagnostics
    end

    calculatedHash = OpenSSL::HMAC.hexdigest('sha256', secretKey, qParams.queueITTokenWithoutHash)
    if(not qParams.hashCode.eql?(calculatedHash))
        diagnostics.setStateWithTokenError(customerId, "hash")
        return diagnostics
    end
        
    if(qParams.timeStamp < Time.now.getutc.tv_sec)
        diagnostics.setStateWithTokenError(customerId, "timestamp")
        return diagnostics
                end
    
    diagnostics.isEnabled = true

    return diagnostics
end

Public Instance Methods

setStateWithSetupError() click to toggle source
# File lib/queueit_knownuserv3/connector_diagnostics.rb, line 22
def setStateWithSetupError()
    @hasError = true
    @validationResult = RequestValidationResult.new(
        "ConnectorDiagnosticsRedirect",
        nil, nil, 
        "https://api2.queue-it.net/diagnostics/connector/error/?code=setup", 
        nil, nil)
end
setStateWithTokenError(customerId, errorCode) click to toggle source
# File lib/queueit_knownuserv3/connector_diagnostics.rb, line 13
def setStateWithTokenError(customerId, errorCode)
    @hasError = true
    @validationResult = RequestValidationResult.new(
        "ConnectorDiagnosticsRedirect",
        nil, nil, 
        "https://" + customerId + ".api2.queue-it.net/" + customerId + "/diagnostics/connector/error/?code=" + errorCode, 
        nil, nil)
end