Sha256: 230e4c89a99cfdc615d99c6005fb97570abd2caf982e4958668e68a3757facfb

Contents?: true

Size: 1.95 KB

Versions: 17

Compression:

Stored size: 1.95 KB

Contents

module AllscriptsUnityClient
  class UnityRequest
    attr_accessor :parameters, :appname, :security_token, :timezone

    def initialize(parameters, timezone, appname, security_token)
      raise ArgumentError, "parameters can not be nil" if parameters.nil?
      raise ArgumentError, "timezone can not be nil" if timezone.nil?
      raise ArgumentError, "appname can not be nil" if appname.nil?
      raise ArgumentError, "security_token can not be nil" if security_token.nil?

      @appname = appname
      @security_token = security_token
      @parameters = parameters
      @timezone = timezone
    end

    def to_hash
      action = @parameters[:action]
      userid = @parameters[:userid]
      appname = @parameters[:appname] || @appname
      patientid = @parameters[:patientid]
      token = @parameters[:token] || @security_token
      parameter1 = process_date(@parameters[:parameter1])
      parameter2 = process_date(@parameters[:parameter2])
      parameter3 = process_date(@parameters[:parameter3])
      parameter4 = process_date(@parameters[:parameter4])
      parameter5 = process_date(@parameters[:parameter5])
      parameter6 = process_date(@parameters[:parameter6])
      data = Utilities::encode_data(@parameters[:data])

      return {
        "Action" => action,
        "UserID" => userid,
        "Appname" => appname,
        "PatientID" => patientid,
        "Token" => token,
        "Parameter1" => parameter1,
        "Parameter2" => parameter2,
        "Parameter3" => parameter3,
        "Parameter4" => parameter4,
        "Parameter5" => parameter5,
        "Parameter6" => parameter6,
        "data" => data
      }
    end

    protected

    def process_date(value)
      if value.nil?
        return nil
      end

      result = Utilities::try_to_encode_as_date(value)

      if result.instance_of?(Time) || result.instance_of?(Date) || result.instance_of?(DateTime)
        return @timezone.utc_to_local(result)
      end

      value
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
allscripts_unity_client-1.3.4 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.3.3 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.3.2 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.3.1 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.3.0 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.2.7 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.2.6 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.2.5 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.2.4 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.2.3 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.2.2 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.2.1 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.2.0 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.1.1 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.1.0 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.0.4 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-1.0.3 lib/allscripts_unity_client/unity_request.rb