perka 1.0.pre
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.
- 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
|