perka 1.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -0
- data/Gemfile +12 -0
- data/LICENSE.txt +201 -0
- data/README.md +17 -0
- data/Rakefile +70 -0
- data/lib/perka/client_api.rb +260 -0
- data/lib/perka/model/abstract_reward_confirmation.rb +15 -0
- data/lib/perka/model/abstract_user.rb +37 -0
- data/lib/perka/model/api_description.rb +22 -0
- data/lib/perka/model/base_entity_global.rb +27 -0
- data/lib/perka/model/bounce_back_target.rb +33 -0
- data/lib/perka/model/canned_email_outbound_message.rb +14 -0
- data/lib/perka/model/clerk.rb +41 -0
- data/lib/perka/model/composite_target.rb +22 -0
- data/lib/perka/model/console_message.rb +16 -0
- data/lib/perka/model/coupon.rb +52 -0
- data/lib/perka/model/coupon_campaign.rb +26 -0
- data/lib/perka/model/coupon_redemption.rb +26 -0
- data/lib/perka/model/coupon_target.rb +30 -0
- data/lib/perka/model/coupon_visibility.rb +29 -0
- data/lib/perka/model/customer.rb +41 -0
- data/lib/perka/model/customer_device.rb +23 -0
- data/lib/perka/model/endpoint_description.rb +49 -0
- data/lib/perka/model/entity_annotation.rb +33 -0
- data/lib/perka/model/entity_description.rb +31 -0
- data/lib/perka/model/everybody_target.rb +15 -0
- data/lib/perka/model/feedback_item.rb +28 -0
- data/lib/perka/model/first_visit_target.rb +16 -0
- data/lib/perka/model/idle_customer_target.rb +20 -0
- data/lib/perka/model/integrator_user.rb +16 -0
- data/lib/perka/model/internal_user.rb +15 -0
- data/lib/perka/model/like_to_unlock_target.rb +14 -0
- data/lib/perka/model/list_target.rb +17 -0
- data/lib/perka/model/merchant.rb +42 -0
- data/lib/perka/model/merchant_capability.rb +16 -0
- data/lib/perka/model/merchant_device.rb +29 -0
- data/lib/perka/model/merchant_location.rb +46 -0
- data/lib/perka/model/merchant_user.rb +29 -0
- data/lib/perka/model/nobody_target.rb +15 -0
- data/lib/perka/model/outbound_message.rb +14 -0
- data/lib/perka/model/parameter_description.rb +29 -0
- data/lib/perka/model/participation_target.rb +34 -0
- data/lib/perka/model/physical_redemption_target.rb +17 -0
- data/lib/perka/model/points_activity.rb +34 -0
- data/lib/perka/model/points_activity_confirmation.rb +24 -0
- data/lib/perka/model/points_catalog_item.rb +41 -0
- data/lib/perka/model/program.rb +35 -0
- data/lib/perka/model/program_tier.rb +30 -0
- data/lib/perka/model/program_type.rb +27 -0
- data/lib/perka/model/property.rb +65 -0
- data/lib/perka/model/punch_reward_confirmation.rb +43 -0
- data/lib/perka/model/push_message.rb +17 -0
- data/lib/perka/model/redemption_coupon_confirmation.rb +26 -0
- data/lib/perka/model/redemption_reward_confirmation.rb +26 -0
- data/lib/perka/model/reward.rb +38 -0
- data/lib/perka/model/reward_advancement.rb +30 -0
- data/lib/perka/model/reward_grant.rb +37 -0
- data/lib/perka/model/sms_message.rb +15 -0
- data/lib/perka/model/sms_outbound_message.rb +14 -0
- data/lib/perka/model/social_list_target.rb +14 -0
- data/lib/perka/model/social_service_subscription.rb +26 -0
- data/lib/perka/model/street_address.rb +27 -0
- data/lib/perka/model/tier_target.rb +24 -0
- data/lib/perka/model/tier_traversal.rb +30 -0
- data/lib/perka/model/tier_traversal_confirmation.rb +28 -0
- data/lib/perka/model/type.rb +33 -0
- data/lib/perka/model/user_credentials.rb +28 -0
- data/lib/perka/model/visit.rb +59 -0
- data/lib/perka/model/visit_confirmation.rb +47 -0
- data/lib/perka/model/weather_target.rb +27 -0
- data/lib/perka/model/yield_management_target.rb +23 -0
- data/lib/perka/perka_api.rb +89 -0
- data/lib/perka/version.rb +3 -0
- data/lib/perka.rb +6 -0
- data/lib/perka_fast.rb +68 -0
- data/perka.gemspec +20 -0
- data/spec/api_integrator_spec.rb +210 -0
- data/spec/model_spec.rb +24 -0
- metadata +178 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Describes a limitation placed upon a Merchant. This type associates a Merchant,
|
9
|
+
# a Type, and a integral count describing the actual limit.
|
10
|
+
class MerchantCapability < BaseEntityGlobal
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Represents a device running the Merchant Validator app.
|
9
|
+
class MerchantDevice < BaseEntityGlobal
|
10
|
+
|
11
|
+
PROPERTY_NAMES = [
|
12
|
+
:merchant_location,
|
13
|
+
:serial_number,
|
14
|
+
:make,
|
15
|
+
:os_version,
|
16
|
+
:platform,
|
17
|
+
:model,
|
18
|
+
:identifier
|
19
|
+
]
|
20
|
+
attr_accessor *PROPERTY_NAMES
|
21
|
+
|
22
|
+
require 'perka/model/merchant_location'
|
23
|
+
TYPE_MAP = {
|
24
|
+
:merchant_location => Perka::Model::MerchantLocation
|
25
|
+
}
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Represents a single physical location operated by a Merchant where Customers
|
9
|
+
# can participate in a Perka loyalty program.
|
10
|
+
class MerchantLocation < BaseEntityGlobal
|
11
|
+
|
12
|
+
PROPERTY_NAMES = [
|
13
|
+
:phone,
|
14
|
+
:merchant,
|
15
|
+
:timezone,
|
16
|
+
|
17
|
+
# The named Clerks which are allowed to operate on the MerchantLocation.
|
18
|
+
# This relationship is owned by the Clerk object.
|
19
|
+
:clerks,
|
20
|
+
|
21
|
+
# Used to implicitly concatenate the <code>address</code> and <code>address2</code>
|
22
|
+
# fields in a friendly format.
|
23
|
+
:combined_address,
|
24
|
+
:coupon_visibilities,
|
25
|
+
:distance_in_meters,
|
26
|
+
:latitude,
|
27
|
+
:longitude,
|
28
|
+
:merchant_devices,
|
29
|
+
:neighborhood_name,
|
30
|
+
:resolved_facebook_id,
|
31
|
+
:sms_id,
|
32
|
+
:street_address,
|
33
|
+
:geo_location
|
34
|
+
]
|
35
|
+
attr_accessor *PROPERTY_NAMES
|
36
|
+
|
37
|
+
require 'perka/model/street_address'
|
38
|
+
require 'perka/model/merchant'
|
39
|
+
TYPE_MAP = {
|
40
|
+
:street_address => Perka::Model::StreetAddress,
|
41
|
+
:merchant => Perka::Model::Merchant
|
42
|
+
}
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/abstract_user'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Represents a business owner or manager who is allowed to modify the associated
|
9
|
+
# <entityReference payloadName='merchant'> Merchant</entityReference> object.
|
10
|
+
class MerchantUser < AbstractUser
|
11
|
+
|
12
|
+
PROPERTY_NAMES = [
|
13
|
+
:email,
|
14
|
+
:unconfirmed_email,
|
15
|
+
:merchant,
|
16
|
+
:weekly_email_enabled,
|
17
|
+
:sms_messages,
|
18
|
+
:outbound_messages
|
19
|
+
]
|
20
|
+
attr_accessor *PROPERTY_NAMES
|
21
|
+
|
22
|
+
require 'perka/model/merchant'
|
23
|
+
TYPE_MAP = {
|
24
|
+
:merchant => Perka::Model::Merchant
|
25
|
+
}
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'flatpack_core'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Describes a path or query parameter in <entityReference payloadName='endpointDescription'>
|
9
|
+
# EndpointDescription</entityReference>.
|
10
|
+
class ParameterDescription < Flatpack::Core::BaseHasUuid
|
11
|
+
|
12
|
+
PROPERTY_NAMES = [
|
13
|
+
:doc_string,
|
14
|
+
:endpoint,
|
15
|
+
:name,
|
16
|
+
:type
|
17
|
+
]
|
18
|
+
attr_accessor *PROPERTY_NAMES
|
19
|
+
|
20
|
+
require 'perka/model/type'
|
21
|
+
require 'perka/model/endpoint_description'
|
22
|
+
TYPE_MAP = {
|
23
|
+
:type => Perka::Model::Type,
|
24
|
+
:endpoint => Perka::Model::EndpointDescription
|
25
|
+
}
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/list_target'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Classifies customers based on their performance within the <entityReference
|
9
|
+
# payloadName='program'> Program</entityReference> associated with a <entityReference
|
10
|
+
# payloadName='programType'> ProgramType</entityReference>.
|
11
|
+
class ParticipationTarget < ListTarget
|
12
|
+
|
13
|
+
PROPERTY_NAMES = [
|
14
|
+
|
15
|
+
# The program type for which punches should be found.
|
16
|
+
:program_type,
|
17
|
+
:metric,
|
18
|
+
|
19
|
+
# The comparison value.
|
20
|
+
:threshold,
|
21
|
+
|
22
|
+
# A moving window used to filter the statistics.
|
23
|
+
:window_days
|
24
|
+
]
|
25
|
+
attr_accessor *PROPERTY_NAMES
|
26
|
+
|
27
|
+
require 'perka/model/program_type'
|
28
|
+
TYPE_MAP = {
|
29
|
+
:program_type => Perka::Model::ProgramType
|
30
|
+
}
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/coupon_target'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# A CouponTarget that is always redeemable, but never visible to the customer.
|
9
|
+
# This target exists to allow a merchant to redeem a Perka Coupon if the customer
|
10
|
+
# has some kind of physical artifact (e.g. a mailer).
|
11
|
+
class PhysicalRedemptionTarget < CouponTarget
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Represents activity in a points-based loyalty program.
|
9
|
+
class PointsActivity < BaseEntityGlobal
|
10
|
+
|
11
|
+
PROPERTY_NAMES = [
|
12
|
+
:visit,
|
13
|
+
:credit,
|
14
|
+
:current_total,
|
15
|
+
|
16
|
+
# The number of points that were redeemed
|
17
|
+
:charge,
|
18
|
+
:next_activity,
|
19
|
+
:redeemed
|
20
|
+
]
|
21
|
+
attr_accessor *PROPERTY_NAMES
|
22
|
+
|
23
|
+
require 'perka/model/points_catalog_item'
|
24
|
+
require 'perka/model/points_activity'
|
25
|
+
require 'perka/model/visit'
|
26
|
+
TYPE_MAP = {
|
27
|
+
:redeemed => Perka::Model::PointsCatalogItem,
|
28
|
+
:next_activity => Perka::Model::PointsActivity,
|
29
|
+
:visit => Perka::Model::Visit
|
30
|
+
}
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/abstract_reward_confirmation'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Represents activity in a points-based loyalty program.
|
9
|
+
class PointsActivityConfirmation < AbstractRewardConfirmation
|
10
|
+
|
11
|
+
PROPERTY_NAMES = [
|
12
|
+
|
13
|
+
# Catalog items that are being redeemed.
|
14
|
+
:points_catalog_items,
|
15
|
+
|
16
|
+
# The total dollar amount spent during the transaction.
|
17
|
+
:money_spent
|
18
|
+
]
|
19
|
+
attr_accessor *PROPERTY_NAMES
|
20
|
+
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Defines a good or service offered by a merchant using a points-based loyalty
|
9
|
+
# program.
|
10
|
+
class PointsCatalogItem < BaseEntityGlobal
|
11
|
+
|
12
|
+
PROPERTY_NAMES = [
|
13
|
+
|
14
|
+
# The merchant that owns the item.
|
15
|
+
:merchant,
|
16
|
+
|
17
|
+
# A longer text description of the item, including any terms and conditions.
|
18
|
+
:terms,
|
19
|
+
|
20
|
+
# The time at which the catalog item will no longer be available for redemption.
|
21
|
+
:expires_at,
|
22
|
+
|
23
|
+
# The number of points required to redeem the item.
|
24
|
+
:points_required,
|
25
|
+
|
26
|
+
# A short label for describing the item.
|
27
|
+
:label,
|
28
|
+
|
29
|
+
# An optional icon name used when rendering the catalog item.
|
30
|
+
:icon
|
31
|
+
]
|
32
|
+
attr_accessor *PROPERTY_NAMES
|
33
|
+
|
34
|
+
require 'perka/model/merchant'
|
35
|
+
TYPE_MAP = {
|
36
|
+
:merchant => Perka::Model::Merchant
|
37
|
+
}
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Program is a basic buy n(punchesNeeded) of x(purchasedItem), and get a free
|
9
|
+
# y(freeItem) when a customer has reached a certain ProgramTier.
|
10
|
+
class Program < BaseEntityGlobal
|
11
|
+
|
12
|
+
PROPERTY_NAMES = [
|
13
|
+
:program_tier,
|
14
|
+
:program_type,
|
15
|
+
:free_item,
|
16
|
+
:punches_needed,
|
17
|
+
:image_name,
|
18
|
+
:perk_id,
|
19
|
+
:terms,
|
20
|
+
:punches_needed_prefix,
|
21
|
+
:punches_needed_suffix,
|
22
|
+
:purchased_item
|
23
|
+
]
|
24
|
+
attr_accessor *PROPERTY_NAMES
|
25
|
+
|
26
|
+
require 'perka/model/program_tier'
|
27
|
+
require 'perka/model/program_type'
|
28
|
+
TYPE_MAP = {
|
29
|
+
:program_tier => Perka::Model::ProgramTier,
|
30
|
+
:program_type => Perka::Model::ProgramType
|
31
|
+
}
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# A program tier defines additional benefits for customers with a certain minimum
|
9
|
+
# visit count.
|
10
|
+
class ProgramTier < BaseEntityGlobal
|
11
|
+
|
12
|
+
PROPERTY_NAMES = [
|
13
|
+
:merchant,
|
14
|
+
:programs,
|
15
|
+
:tier_traversals,
|
16
|
+
:additional_perks,
|
17
|
+
:points_multiplier,
|
18
|
+
:visits_needed,
|
19
|
+
:name
|
20
|
+
]
|
21
|
+
attr_accessor *PROPERTY_NAMES
|
22
|
+
|
23
|
+
require 'perka/model/merchant'
|
24
|
+
TYPE_MAP = {
|
25
|
+
:merchant => Perka::Model::Merchant
|
26
|
+
}
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# A ProgramType defines a single kind of offer made by the Merchant. For example,
|
9
|
+
# a Merchant may have two ProgramTypes, one for coffee sales and another for
|
10
|
+
# sandwich sales. Because Customers are offered increasingly better perks as
|
11
|
+
# they return over time, a single ProgramType is used to aggregate multiple
|
12
|
+
# <entityReference payloadName='program'> Program</entityReference> objects
|
13
|
+
# that have a fan-out based on <entityReference payloadName='programTier'> ProgramTier</entityReference>.
|
14
|
+
class ProgramType < BaseEntityGlobal
|
15
|
+
|
16
|
+
PROPERTY_NAMES = [
|
17
|
+
:expires_at,
|
18
|
+
:stamp_id,
|
19
|
+
:name,
|
20
|
+
:expires_in
|
21
|
+
]
|
22
|
+
attr_accessor *PROPERTY_NAMES
|
23
|
+
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'flatpack_core'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# An immutable view of a property that should be serialized.
|
9
|
+
class Property < Flatpack::Core::BaseHasUuid
|
10
|
+
|
11
|
+
PROPERTY_NAMES = [
|
12
|
+
:doc_string,
|
13
|
+
|
14
|
+
# The payload name of the type that defines the property.
|
15
|
+
:enclosing_type_name,
|
16
|
+
|
17
|
+
# Returns the role names that are allowed to get the property. A value containing
|
18
|
+
# a single asterisk means that all roles may access the property.
|
19
|
+
:getter_role_names,
|
20
|
+
|
21
|
+
# When a new value is assigned to the current property in some instance,
|
22
|
+
# the implied property of the new value should also be updated with the
|
23
|
+
# current instance.
|
24
|
+
:implied_property,
|
25
|
+
|
26
|
+
# Return the role names that are allowed to set this property. A value containing
|
27
|
+
# a single asterisk means that all roles may set the property.
|
28
|
+
:setter_role_names,
|
29
|
+
|
30
|
+
# Returns <code>true</code> if the Property should be included only during
|
31
|
+
# a deep traversal.
|
32
|
+
:deep_traversal_only,
|
33
|
+
|
34
|
+
# Returns <code>true</code> if the referred entity's owner should also be
|
35
|
+
# considered an owner of the entity that defines the Property.
|
36
|
+
:inherit_principal,
|
37
|
+
|
38
|
+
# If <code>true</code>, non-null properties that contain the property type's
|
39
|
+
# default value will not be serialized. For example, integer properties
|
40
|
+
# whose values are <code>0</code> will not be serialized.
|
41
|
+
:suppress_default_value,
|
42
|
+
|
43
|
+
# Returns the json payload name of the Property, which may differ from the
|
44
|
+
# bean name if a JsonProperty annotation has been applied to the getter.
|
45
|
+
:name,
|
46
|
+
|
47
|
+
# A simplified description of the property's type.
|
48
|
+
:type,
|
49
|
+
|
50
|
+
# Returns <code>true</code> if an entity Property's properties should be
|
51
|
+
# emitted into the owning entity's properties.
|
52
|
+
:embedded
|
53
|
+
]
|
54
|
+
attr_accessor *PROPERTY_NAMES
|
55
|
+
|
56
|
+
require 'perka/model/type'
|
57
|
+
require 'perka/model/property'
|
58
|
+
TYPE_MAP = {
|
59
|
+
:type => Perka::Model::Type,
|
60
|
+
:implied_property => Perka::Model::Property
|
61
|
+
}
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/abstract_reward_confirmation'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Represents an award of some number of punches on a punchcard.
|
9
|
+
class PunchRewardConfirmation < AbstractRewardConfirmation
|
10
|
+
|
11
|
+
PROPERTY_NAMES = [
|
12
|
+
|
13
|
+
# An instance of a <entityReference payloadName='program'> Program</entityReference>
|
14
|
+
# that the punches should be applied to.
|
15
|
+
:program,
|
16
|
+
:program_type,
|
17
|
+
|
18
|
+
# The number of punches to be applied to the punchcard.
|
19
|
+
:punches_earned,
|
20
|
+
|
21
|
+
# This property is only present when a <entityReference payloadName='punchRewardConfirmation'>
|
22
|
+
# PunchRewardConfirmation</entityReference> is returned by the server to
|
23
|
+
# represent past customer interactions. Normally, a <entityReference payloadName='punchRewardConfirmation'>
|
24
|
+
# PunchRewardConfirmation</entityReference> is a member of a <entityReference
|
25
|
+
# payloadName='rewardGrant'> RewardGrant</entityReference> or <entityReference
|
26
|
+
# payloadName='visitConfirmation'> VisitConfirmation</entityReference> which
|
27
|
+
# will provide a contextual <entityReference payloadName='visit'> Visit</entityReference>.
|
28
|
+
:visit
|
29
|
+
]
|
30
|
+
attr_accessor *PROPERTY_NAMES
|
31
|
+
|
32
|
+
require 'perka/model/program'
|
33
|
+
require 'perka/model/visit'
|
34
|
+
require 'perka/model/program_type'
|
35
|
+
TYPE_MAP = {
|
36
|
+
:program => Perka::Model::Program,
|
37
|
+
:visit => Perka::Model::Visit,
|
38
|
+
:program_type => Perka::Model::ProgramType
|
39
|
+
}
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/outbound_message'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# An implementation of outbound message corresponding to a message being sent
|
9
|
+
# over a platform push notification system (e.g. C2DM for Android or APS for
|
10
|
+
# iOS)
|
11
|
+
class PushMessage < OutboundMessage
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/abstract_reward_confirmation'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Represents the redemption of a <entityReference payloadName='coupon'> Coupon</entityReference>.
|
9
|
+
class RedemptionCouponConfirmation < AbstractRewardConfirmation
|
10
|
+
|
11
|
+
PROPERTY_NAMES = [
|
12
|
+
|
13
|
+
# The coupon that is being redeemed during the associated <entityReference
|
14
|
+
# payloadName='visit'> Visit</entityReference>.
|
15
|
+
:coupon
|
16
|
+
]
|
17
|
+
attr_accessor *PROPERTY_NAMES
|
18
|
+
|
19
|
+
require 'perka/model/coupon'
|
20
|
+
TYPE_MAP = {
|
21
|
+
:coupon => Perka::Model::Coupon
|
22
|
+
}
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/abstract_reward_confirmation'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Represents the redemption of a completed punchcard.
|
9
|
+
class RedemptionRewardConfirmation < AbstractRewardConfirmation
|
10
|
+
|
11
|
+
PROPERTY_NAMES = [
|
12
|
+
|
13
|
+
# The <entityReference payloadName='reward'> Reward</entityReference> that
|
14
|
+
# represents a specific instance of a completed punchcard.
|
15
|
+
:reward
|
16
|
+
]
|
17
|
+
attr_accessor *PROPERTY_NAMES
|
18
|
+
|
19
|
+
require 'perka/model/reward'
|
20
|
+
TYPE_MAP = {
|
21
|
+
:reward => Perka::Model::Reward
|
22
|
+
}
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# A punchcard that a customer has filled or is in the process of filling. These
|
9
|
+
# objects represent an aggregated view of the effects of applying <entityReference
|
10
|
+
# payloadName='punchRewardConfirmation'> PunchRewardConfirmation</entityReference>.
|
11
|
+
# A Reward may be redeemed once it has been activated.
|
12
|
+
class Reward < BaseEntityGlobal
|
13
|
+
|
14
|
+
PROPERTY_NAMES = [
|
15
|
+
:customer,
|
16
|
+
:merchant,
|
17
|
+
:program,
|
18
|
+
:punches_earned,
|
19
|
+
:reward_advancements,
|
20
|
+
:activated_at,
|
21
|
+
:redeemed_at,
|
22
|
+
:transferred_at,
|
23
|
+
:type
|
24
|
+
]
|
25
|
+
attr_accessor *PROPERTY_NAMES
|
26
|
+
|
27
|
+
require 'perka/model/merchant'
|
28
|
+
require 'perka/model/program'
|
29
|
+
require 'perka/model/customer'
|
30
|
+
TYPE_MAP = {
|
31
|
+
:merchant => Perka::Model::Merchant,
|
32
|
+
:program => Perka::Model::Program,
|
33
|
+
:customer => Perka::Model::Customer
|
34
|
+
}
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Generated File - DO NOT EDIT
|
2
|
+
|
3
|
+
require 'perka/model/base_entity_global'
|
4
|
+
|
5
|
+
module Perka
|
6
|
+
module Model
|
7
|
+
|
8
|
+
# Represents partial progress towards completing a Reward (i.e. some number
|
9
|
+
# of punches). These objects represent the aggregated effects of applying a
|
10
|
+
# <entityReference payloadName='punchRewardConfirmation'> PunchRewardConfirmation</entityReference>.
|
11
|
+
class RewardAdvancement < BaseEntityGlobal
|
12
|
+
|
13
|
+
PROPERTY_NAMES = [
|
14
|
+
:punches_earned,
|
15
|
+
:reward,
|
16
|
+
:visit,
|
17
|
+
:transfer
|
18
|
+
]
|
19
|
+
attr_accessor *PROPERTY_NAMES
|
20
|
+
|
21
|
+
require 'perka/model/reward'
|
22
|
+
require 'perka/model/visit'
|
23
|
+
TYPE_MAP = {
|
24
|
+
:reward => Perka::Model::Reward,
|
25
|
+
:visit => Perka::Model::Visit
|
26
|
+
}
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|