landslider 0.5.7 → 0.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. data/{CHANGELOG.markdown → HISTORY.md} +4 -0
  2. data/README.md +108 -0
  3. data/VERSION.yml +1 -1
  4. data/bin/generate_api_key.rb +1 -1
  5. data/landslider.gemspec +41 -5
  6. data/lib/landslider/entities/ws_account.rb +32 -0
  7. data/lib/landslider/entities/ws_account_note.rb +13 -0
  8. data/lib/landslider/entities/ws_account_note_search.rb +23 -0
  9. data/lib/landslider/entities/ws_address.rb +17 -0
  10. data/lib/landslider/entities/ws_contact.rb +38 -0
  11. data/lib/landslider/entities/ws_contact_note.rb +13 -0
  12. data/lib/landslider/entities/ws_contact_note_search.rb +23 -0
  13. data/lib/landslider/entities/ws_contact_search.rb +28 -0
  14. data/lib/landslider/entities/ws_employee.rb +23 -0
  15. data/lib/landslider/entities/ws_entity.rb +15 -0
  16. data/lib/landslider/entities/ws_lead.rb +35 -0
  17. data/lib/landslider/entities/ws_lead_contact.rb +14 -0
  18. data/lib/landslider/entities/ws_lead_note.rb +14 -0
  19. data/lib/landslider/entities/ws_lead_note_search.rb +24 -0
  20. data/lib/landslider/entities/ws_lead_search.rb +31 -0
  21. data/lib/landslider/entities/ws_my_list.rb +20 -0
  22. data/lib/landslider/entities/ws_note.rb +21 -0
  23. data/lib/landslider/entities/ws_opportunity.rb +38 -0
  24. data/lib/landslider/entities/ws_opportunity_note.rb +13 -0
  25. data/lib/landslider/entities/ws_opportunity_note_search.rb +23 -0
  26. data/lib/landslider/entities/ws_opportunity_status.rb +17 -0
  27. data/lib/landslider/entities/ws_payment_term.rb +17 -0
  28. data/lib/landslider/entities/ws_pick_list_item.rb +14 -0
  29. data/lib/landslider/entities/ws_primary_entity.rb +11 -0
  30. data/lib/landslider/entities/ws_product.rb +35 -0
  31. data/lib/landslider/entities/ws_product_family.rb +17 -0
  32. data/lib/landslider/entities/ws_product_result.rb +12 -0
  33. data/lib/landslider/entities/ws_record_upsert_result.rb +13 -0
  34. data/lib/landslider/entities/ws_result.rb +16 -0
  35. data/lib/landslider/entities/ws_search.rb +55 -0
  36. data/lib/landslider/entities/ws_search_criterion.rb +121 -0
  37. data/lib/landslider/entities/ws_search_operator.rb +59 -0
  38. data/lib/landslider/entities/ws_selling_process.rb +17 -0
  39. data/lib/landslider/entities/ws_user.rb +10 -0
  40. data/lib/landslider/entities/ws_user_search.rb +20 -0
  41. data/lib/landslider/entities.rb +46 -0
  42. data/lib/landslider.rb +71 -116
  43. data/test/ws_search_test.rb +13 -0
  44. metadata +41 -5
  45. data/README.rdoc +0 -77
@@ -0,0 +1,17 @@
1
+
2
+ class Landslider
3
+
4
+ class WsOpportunityStatus < WsEntity
5
+
6
+ # @return [Integer]
7
+ attr_reader :opportunity_status_id
8
+
9
+ # @return [String]
10
+ attr_reader :opportunity_status
11
+
12
+ # @return [WsOpportunityStatus]
13
+ attr_reader :parent_opportunity_status
14
+
15
+ end
16
+
17
+ end
@@ -0,0 +1,17 @@
1
+
2
+ class Landslider
3
+
4
+ class WsPaymentTerm < WsEntity
5
+
6
+ # @return [Integer]
7
+ attr_reader :payment_term_id
8
+
9
+ # @return [String]
10
+ attr_reader :description
11
+
12
+ # @return [Boolean]
13
+ attr_reader :default_value
14
+
15
+ end
16
+
17
+ end
@@ -0,0 +1,14 @@
1
+
2
+ class Landslider
3
+
4
+ class WsPickListItem < Object
5
+
6
+ # @return [Integer]
7
+ attr_reader :id, :list_type_id
8
+
9
+ # @return [String]
10
+ attr_reader :display_string
11
+
12
+ end
13
+
14
+ end
@@ -0,0 +1,11 @@
1
+
2
+ class Landslider
3
+
4
+ class WsPrimaryEntity < WsEntity
5
+
6
+ # @return [Boolean]
7
+ attr_reader :suppress_id_validation
8
+
9
+ end
10
+
11
+ end
@@ -0,0 +1,35 @@
1
+ class Landslider
2
+
3
+ class WsProduct < WsEntity
4
+
5
+ # @return [Integer]
6
+ attr_reader :product_id
7
+
8
+ # @return [String]
9
+ attr_reader :product_name, :source_id, :description_text, :product_code
10
+
11
+ # @return [Integer]
12
+ attr_reader :create_by, :update_by
13
+
14
+ # @return [Date]
15
+ attr_reader :created_on, :updated_on
16
+
17
+ # @return [WsDurationType]
18
+ attr_reader :duration_type
19
+
20
+ # @return [WsProduct]
21
+ attr_reader :parent_product
22
+
23
+ # @return [WsProductFamily]
24
+ attr_reader :product_family
25
+
26
+ # @param [Handsoap::XmlMason::Node] msg
27
+ # @return [Handsoap::XmlMason::Node]
28
+ def soapify_for(msg)
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+
35
+
@@ -0,0 +1,17 @@
1
+
2
+ class Landslider
3
+
4
+ class WsProductFamily < WsEntity
5
+
6
+ # @return [Integer]
7
+ attr_reader :product_family_id, :parent_product_family_id
8
+
9
+ # @return [String]
10
+ attr_reader :product_family, :description, :parent_product_family
11
+
12
+ # @return [Date]
13
+ attr_reader :archived_on
14
+
15
+ end
16
+
17
+ end
@@ -0,0 +1,12 @@
1
+ class Landslider
2
+
3
+ class WsProductResult < WsResult
4
+
5
+ # @return [WsProduct]
6
+ attr_reader :product
7
+
8
+ # @return [Boolean]
9
+ attr_reader :is_created
10
+ end
11
+
12
+ end
@@ -0,0 +1,13 @@
1
+
2
+ class Landslider
3
+
4
+ class WsRecordUpsertResult < WsEntity
5
+
6
+ # @return [Integer]
7
+ attr_reader :id
8
+
9
+ # @return [Boolean]
10
+ attr_reader :is_created
11
+ end
12
+
13
+ end
@@ -0,0 +1,16 @@
1
+ class Landslider
2
+
3
+ class WsResult
4
+
5
+ # @return [Boolean]
6
+ attr_reader :error
7
+
8
+ # @return [Integer]
9
+ attr_reader :error_code_id
10
+
11
+ # @return [String]
12
+ attr_reader :result_msg
13
+
14
+ end
15
+
16
+ end
@@ -0,0 +1,55 @@
1
+
2
+ class Landslider
3
+
4
+ class WsSearch
5
+
6
+ # @param [Hash] params
7
+ # An optional Hash to specify first_result_position and total_results_requested
8
+ def initialize(params={})
9
+ @first_result_position = params.fetch(:first_result_position) if params.key?(:first_result_position)
10
+ @total_results_requested = params.fetch(:total_results_requested) if params.key?(:total_results_requested)
11
+ end
12
+
13
+ # @param [Integer] value num
14
+ # Sets the starting index of records you want to retrieve. defaults to 1
15
+ attr_writer :first_result_position
16
+
17
+ # @param [Integer] value num
18
+ # Sets the maximum number of records to retrieve. defaults to 25
19
+ attr_writer :total_results_requested
20
+
21
+ # @param [String] value date
22
+ # Sets a Date to search records updated on or after
23
+ attr_writer :updated_on
24
+
25
+ # @param [String] value
26
+ # system source id search?
27
+ attr_writer :source_id
28
+
29
+ # @param [Boolean] value
30
+ attr_writer :return_deleted_records, :allow_duplicate_criterion
31
+
32
+ # @param [WsSearchCriterion] value
33
+ # WsSearchCriterion is only documented to work with these APIs
34
+ # * getAccounts
35
+ # * getOpportunities
36
+ # * getProductFamilies
37
+ # * GetDurationTypes
38
+ attr_writer :search_criteria
39
+
40
+ # Adds the search xml
41
+ # @param [Handsoap::XmlMason::Node] msg
42
+ # @return [Handsoap::XmlMason::Node]
43
+ def soapify_for(msg)
44
+ msg.add 'firstResultPosition', @first_result_position || DEFAULT_FIRST_RESULT_POSITION
45
+ msg.add 'totalResultsRequested', @total_results_requested || DEFAULT_TOTAL_RESULTS_REQUESTED
46
+ msg.add 'updatedOn', @updated_on unless @updated_on.nil?
47
+ unless @search_criteria.nil?
48
+ @search_criteria.soapify_for(msg)
49
+ end
50
+
51
+ end
52
+
53
+ end
54
+
55
+ end
@@ -0,0 +1,121 @@
1
+ class Landslider
2
+
3
+ class WsSearchCriterion
4
+
5
+ # @return [String]
6
+ attr_reader :field_id, :operator
7
+
8
+ # @return [String]
9
+ attr_reader :query_value
10
+
11
+ # @param [String] field_id
12
+ #
13
+ # Currently Searchable Account Fields:
14
+ # * AccountId
15
+ # * AccountName
16
+ # * AccountNumber
17
+ # * AccountShortName
18
+ # * AccountType
19
+ # * AccountTypeId
20
+ # * ArchivedOn
21
+ # * BillingAddressCity
22
+ # * BillingAddressCountry
23
+ # * BillingAddressState
24
+ # * BillingAddressStreet
25
+ # * BillingAddressZip
26
+ # * CreatedById
27
+ # * CreatedDate
28
+ # * Division
29
+ # * Fax
30
+ # * LastUpdatedById
31
+ # * LastUpdatedDate
32
+ # * MainAddressCity
33
+ # * MainAddressCountry
34
+ # * MainAddressState
35
+ # * MainAddressStreet
36
+ # * MainAddressZip
37
+ # * NewsKeywords
38
+ # * OwnerId
39
+ # * ParentAccount
40
+ # * ParentAccountId
41
+ # * Phone
42
+ # * PrimaryContactId,
43
+ # * QuickbooksLastSynced
44
+ # * ShippingAddressCity
45
+ # * ShippingAddressCountry
46
+ # * ShippingAddressState
47
+ # * ShippingAddressStreet
48
+ # * ShippingAddressZip
49
+ # * SourceSystemId
50
+ # * SyncWithQuickBooks
51
+ # * Ticker
52
+ # * Url
53
+ #
54
+ # Currently Searchable Opportunity Fields:
55
+ # * AccountId
56
+ # * AccountName
57
+ # * ArchivedOn, ClosedDate
58
+ # * ComputedConfidence
59
+ # * ComputedForecastDate
60
+ # * CreatedById
61
+ # * CreatedDate
62
+ # * CurrentPhaseId
63
+ # * CurrentPhaseName
64
+ # * DealValue
65
+ # * Description
66
+ # * IsHot
67
+ # * LastUpdatedById,
68
+ # * LastUpdatedDate
69
+ # * LeadSource
70
+ # * LeadSourceId
71
+ # * Name, OpportunityId
72
+ # * OverriddenConfidence
73
+ # * OverriddenForecastDate
74
+ # * OverrideComments
75
+ # * OwnerId
76
+ # * PaymentTerms
77
+ # * PaymentTermsId
78
+ # * QuickbooksLastSyncedQuickbooksTransactionType
79
+ # * SellingProcess
80
+ # * SellingProcessId
81
+ # * SourceSystemId
82
+ # * StartDate
83
+ # * Status
84
+ # * StatusId
85
+ # * StatusReason
86
+ # * StatusReasonId
87
+ # * SuspendedDate
88
+ #
89
+ # Currently Searchable Duration Type Fields:
90
+ # * DurationType
91
+ # * DurationTypeId
92
+ #
93
+ # Currently Searchable Product Family Fields:
94
+ # * Description
95
+ # * ParentProductFamily
96
+ # * ParentProductFamilyId
97
+ # * ProductFamily
98
+ # * ProductFamilyId
99
+ # @param [String, WsSearchOperator] operator Contains,SoundsLike,Equals,NotEquals
100
+ # LessThan,LessThanOrEqual,GreaterThan,GreaterThanOrEqual
101
+ # Empty,NotEmpty,True,False,In,NotIn
102
+ # @param [String, WsSearchOperator] query_value string to search for
103
+ def initialize(field_id, operator, query_value)
104
+ @field_id = field_id
105
+ @operator = operator
106
+ @query_value = query_value
107
+ end
108
+
109
+ # Adds the search criteria xml
110
+ # @param [Handsoap::XmlMason::Node] msg xml node
111
+ # @return [Handsoap::XmlMason::Node]
112
+ def soapify_for(msg)
113
+ msg.add('searchCriteria') { |crit|
114
+ crit.add 'fieldId', @field_id
115
+ crit.add 'operator', @operator
116
+ crit.add 'queryValue', @query_value unless @query_value.nil?
117
+ }
118
+ end
119
+ end
120
+
121
+ end
@@ -0,0 +1,59 @@
1
+
2
+ class Landslider
3
+
4
+ # A list of operators that can be used with WsSearchCriterion
5
+ class WsSearchOperator
6
+
7
+ # returns values that contain the given search string
8
+ CONTAINS='Contains'
9
+
10
+ # returns values that "sound like" the given search string (smythe = smith)
11
+ SOUNDS_LIKE='SoundsLike'
12
+
13
+ # returns values that start with the given search string
14
+ STARTS_WITH='StartsWith'
15
+
16
+ # returns values that end with the given search string
17
+ ENDS_WITH='EndsWith'
18
+
19
+ # returns values that do not contain the given search string
20
+ DOES_NOT_CONTAIN='DoesNotContain'
21
+
22
+ # returns values that are identically equal (case-insensitive) the given search value
23
+ EQUALS='Equals'
24
+
25
+ # returns values that are not equal (case-insensitive) the given search value
26
+ NOT_EQUALS='NotEquals'
27
+
28
+ # returns values that are less than the given search value
29
+ LESS_THAN='LessThan'
30
+
31
+ # returns values that are less than or equal to the given search value
32
+ LESS_THAN_OR_EQUAL='LessThanOrEqual'
33
+
34
+ # returns values that are greater than the given search value
35
+ GREATER_THAN='GreaterThan'
36
+
37
+ # returns values that are greater than or equal to the given search value
38
+ GREATER_THAN_OR_EQUAL='GreaterThanOrEqual'
39
+
40
+ # returns values that are empty (null)
41
+ EMPTY='Empty'
42
+
43
+ # returns values that are not empty (not null)
44
+ NOT_EMPTY='NotEmpty'
45
+
46
+ # returns values that are logically True
47
+ TRUE='True'
48
+
49
+ # returns values that are logically False
50
+ FALSE='False'
51
+
52
+ # returns values that are in the specified list
53
+ IN='In'
54
+
55
+ # returns values that are not in the specified list
56
+ NOT_IN='NotIn'
57
+ end
58
+
59
+ end
@@ -0,0 +1,17 @@
1
+
2
+ class Landslider
3
+
4
+ class WsSellingProcess < Object
5
+
6
+ # @return [Integer]
7
+ attr_writer :process_id
8
+
9
+ # @return [String]
10
+ attr_writer :process_name
11
+
12
+ # @return [WsEntityType]
13
+ attr_writer :entity_type
14
+
15
+ end
16
+
17
+ end
@@ -0,0 +1,10 @@
1
+
2
+ class Landslider
3
+
4
+ class WsUser < WsEntity
5
+
6
+ # @return [String]
7
+ attr_reader :username, :password, :api_key
8
+ end
9
+
10
+ end
@@ -0,0 +1,20 @@
1
+ class Landslider
2
+
3
+ class WsUserSearch < WsSearch
4
+
5
+ # @return [String]
6
+ attr_reader :user_name
7
+
8
+ # @param [String] user_name a user name
9
+ def initialize(user_name)
10
+ @user_name = user_name
11
+ end
12
+
13
+ # @param [Handsoap::XmlMason::Node] msg
14
+ # @return [Handsoap::XmlMason::Node]
15
+ def soapify_for(msg)
16
+ raise 'not implemented'
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,46 @@
1
+ require 'landslider/entities/ws_entity'
2
+ require 'landslider/entities/ws_result'
3
+ require 'landslider/entities/ws_primary_entity'
4
+
5
+ require 'landslider/entities/ws_search'
6
+ require 'landslider/entities/ws_search_criterion'
7
+ require 'landslider/entities/ws_search_operator'
8
+
9
+ require 'landslider/entities/ws_account'
10
+ require 'landslider/entities/ws_account_note'
11
+ require 'landslider/entities/ws_account_note_search'
12
+ require 'landslider/entities/ws_address'
13
+
14
+ require 'landslider/entities/ws_contact'
15
+ require 'landslider/entities/ws_contact_note'
16
+ require 'landslider/entities/ws_contact_note_search'
17
+ require 'landslider/entities/ws_contact_search'
18
+ require 'landslider/entities/ws_employee'
19
+
20
+ require 'landslider/entities/ws_lead'
21
+ require 'landslider/entities/ws_lead_contact'
22
+ require 'landslider/entities/ws_lead_note'
23
+ require 'landslider/entities/ws_lead_note_search'
24
+ require 'landslider/entities/ws_lead_search'
25
+
26
+ require 'landslider/entities/ws_my_list'
27
+ require 'landslider/entities/ws_note'
28
+ require 'landslider/entities/ws_opportunity'
29
+ require 'landslider/entities/ws_opportunity_note'
30
+ require 'landslider/entities/ws_opportunity_note_search'
31
+ require 'landslider/entities/ws_opportunity_status'
32
+
33
+ require 'landslider/entities/ws_payment_term'
34
+
35
+ require 'landslider/entities/ws_pick_list_item'
36
+ require 'landslider/entities/ws_product'
37
+ require 'landslider/entities/ws_product_family'
38
+ require 'landslider/entities/ws_product_result'
39
+
40
+
41
+ require 'landslider/entities/ws_search'
42
+ require 'landslider/entities/ws_selling_process'
43
+ require 'landslider/entities/ws_user'
44
+
45
+
46
+