Sha256: 658cf7234405892d2b1149eb4c7053de80d03a5117ad9c23ca3cf91f20de5bd2

Contents?: true

Size: 1.94 KB

Versions: 13

Compression:

Stored size: 1.94 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])

      {
        '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

13 entries across 13 versions & 1 rubygems

Version Path
allscripts_unity_client-2.1.6 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.1.5 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.1.4 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.1.3 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.1.2 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.1.1 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.1.0 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.0.5 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.0.4 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.0.3 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.0.2 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.0.1 lib/allscripts_unity_client/unity_request.rb
allscripts_unity_client-2.0.0 lib/allscripts_unity_client/unity_request.rb