Class: Agms::RecurringRequest

Inherits:
Request
  • Object
show all
Defined in:
lib/agms/request/recurring_request.rb

Instance Method Summary collapse

Methods inherited from Request

#get, #getField, #getValidationErrors, #getValidationMessages, #setField

Constructor Details

#initialize(op) ⇒ RecurringRequest

Returns a new instance of RecurringRequest.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/agms/request/recurring_request.rb', line 7

def initialize(op)
  super(op)
  @fields1 = {
      :RecurringID => {:setting => '', :value => ''},
      :MerchantID => {:setting => '', :value => ''},
      :PaymentType => {:setting => '', :value => 'creditcard'},
      :InitialAmount => {:setting => '', :value => ''},
      :RecurringAmount => {:setting => '', :value => ''},
      :CCNumber => {:setting => '', :value => ''},
      :CCExpDate => {:setting => '', :value => ''},
      :CVV => {:setting => '', :value => ''},
      :CheckName => {:setting => '', :value => ''},
      :CheckABA => {:setting => '', :value => ''},
      :CheckAccount => {:setting => '', :value => ''},
      :AccountHolderType => {:setting => '', :value => ''},
      :AccountType => {:setting => '', :value => ''},
      :SecCode => {:setting => '', :value => ''},
      :FirstName => {:setting => '', :value => ''},
      :LastName => {:setting => '', :value => ''},
      :Company => {:setting => '', :value => ''},
      :Address1 => {:setting => '', :value => ''},
      :Address2 => {:setting => '', :value => ''},
      :City => {:setting => '', :value => ''},
      :State => {:setting => '', :value => ''},
      :Zip => {:setting => '', :value => ''},
      :Country => {:setting => '', :value => ''},
      :Phone => {:setting => '', :value => ''},
      :Fax => {:setting => '', :value => ''},
      :EMail => {:setting => '', :value => ''},
      :Website => {:setting => '', :value => ''},
      :Custom_Field_1 => {:setting => '', :value => ''},
      :Custom_Field_2 => {:setting => '', :value => ''},
      :Custom_Field_3 => {:setting => '', :value => ''},
      :Custom_Field_4 => {:setting => '', :value => ''},
      :Custom_Field_5 => {:setting => '', :value => ''},
      :Custom_Field_6 => {:setting => '', :value => ''},
      :Custom_Field_7 => {:setting => '', :value => ''},
      :Custom_Field_8 => {:setting => '', :value => ''},
      :Custom_Field_9 => {:setting => '', :value => ''},
      :Custom_Field_10 => {:setting => '', :value => ''},
      :StartDate => {:setting => '', :value => ''},
      :Frequency => {:setting => '', :value => ''},
      :Quantity => {:setting => '', :value => ''},
      :NumberOfOccurrences => {:setting => '', :value => ''},
      :EndDate => {:setting => '', :value => ''},
      :NumberOfRetries => {:setting => '', :value => ''}
  }

  @numeric = %w(InitialAmount RecurringAmount Quantity NumberOfOccurrences NumberOfRetries CCNumber CCExpDate CheckABA CheckAccount)

  @enums = {
      :PaymentType => %w(creditcard check),
      :SecCode => %w(PPD WEB TEL CCD),
      :AccountHolderType => %w(business personal),
      :AccountType => %w(checking savings),
      :Frequency => %w(days weeks months)
  }

  @date = %w(StartDate EndDate)

  @digit_2 = %w(State)

  @amount = %w(Amount TipAmount Tax Shipping)

  if @op == 'RecurringAdd'
    @fields = @fields1
  else
    raise InvalidRequestError, "Invalid op #{@op} in Request."
  end

end

Instance Method Details

#getFieldsObject



107
108
109
# File 'lib/agms/request/recurring_request.rb', line 107

def getFields
  return getFieldArray
end

#getParams(request) ⇒ Object



111
112
113
# File 'lib/agms/request/recurring_request.rb', line 111

def getParams(request)
  return {:vRecurringParams => request}
end

#validateObject



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/agms/request/recurring_request.rb', line 79

def validate
  @required = Array.new

  if @fields[:Frequency][:value] == ''
    @required.push(:Frequency)
  end

  # If no transaction type, require a Safe Action
  if @fields[:NumberOfRetries][:value] == ''
    @required.push(:NumberOfRetries)
  end

  error_array = AgmsAutoValidate();

  errors = error_array['errors'];
  messages = error_array['messages'];

  @validate_errors = errors;
  @validate_messages = messages;

  if errors == 0
    return {'errors' => errors, 'messages' => messages}
  else
    raise RequestValidationError, "Request validation failed with #{messages.join(' ')}."
  end

end