Class: Seam::Clients::Customers

Inherits:
Object
  • Object
show all
Defined in:
lib/seam/routes/customers.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:, defaults:) ⇒ Customers

Returns a new instance of Customers.



6
7
8
9
# File 'lib/seam/routes/customers.rb', line 6

def initialize(client:, defaults:)
  @client = client
  @defaults = defaults
end

Instance Method Details

#create_portal(customer_resources_filters: nil, customization_profile_id: nil, deep_link: nil, exclude_locale_picker: nil, features: nil, is_embedded: nil, landing_page: nil, locale: nil, navigation_mode: nil, read_only: nil, customer_data: nil) ⇒ Seam::Resources::CustomerPortal

Creates a new customer portal magic link with configurable features.

Parameters:

  • customer_resources_filters (defaults to: nil)

    Filter configuration for resources based on their custom_metadata. Each filter specifies a field, operation, and value to match against resource custom_metadata.

  • customization_profile_id (defaults to: nil)

    The ID of the customization profile to use for the portal.

  • deep_link (defaults to: nil)

    Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource.

  • exclude_locale_picker (defaults to: nil)

    Whether to exclude the option to select a locale within the portal UI.

  • features (defaults to: nil)
  • is_embedded (defaults to: nil)

    Whether the portal is embedded in another application.

  • landing_page (defaults to: nil)

    Configuration for the landing page when the portal loads.

  • locale (defaults to: nil)

    The locale to use for the portal.

  • navigation_mode (defaults to: nil)

    Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links.

  • read_only (defaults to: nil)

    Whether the portal is read-only. When true, the customer can browse the portal but cannot perform any mutating action; write requests made with the portal's client session are rejected.

  • customer_data (defaults to: nil)

Returns:



24
25
26
27
28
# File 'lib/seam/routes/customers.rb', line 24

def create_portal(customer_resources_filters: nil, customization_profile_id: nil, deep_link: nil, exclude_locale_picker: nil, features: nil, is_embedded: nil, landing_page: nil, locale: nil, navigation_mode: nil, read_only: nil, customer_data: nil)
  res = @client.post("/customers/create_portal", {customer_resources_filters: customer_resources_filters, customization_profile_id: customization_profile_id, deep_link: deep_link, exclude_locale_picker: exclude_locale_picker, features: features, is_embedded: is_embedded, landing_page: landing_page, locale: locale, navigation_mode: navigation_mode, read_only: read_only, customer_data: customer_data}.compact)

  Seam::Resources::CustomerPortal.load_from_response(res.body["customer_portal"])
end

#delete_data(access_grant_keys: nil, booking_keys: nil, building_keys: nil, common_area_keys: nil, customer_keys: nil, facility_keys: nil, guest_keys: nil, listing_keys: nil, property_keys: nil, property_listing_keys: nil, reservation_keys: nil, resident_keys: nil, room_keys: nil, space_keys: nil, staff_member_keys: nil, tenant_keys: nil, unit_keys: nil, user_identity_keys: nil, user_keys: nil) ⇒ nil

Deletes customer data including resources like spaces, properties, rooms, users, etc. This will delete the partner resources and any related Seam resources (user identities, access grants, spaces).

Parameters:

  • access_grant_keys (defaults to: nil)

    List of access grant keys to delete.

  • booking_keys (defaults to: nil)

    List of booking keys to delete.

  • building_keys (defaults to: nil)

    List of building keys to delete.

  • common_area_keys (defaults to: nil)

    List of common area keys to delete.

  • customer_keys (defaults to: nil)

    List of customer keys to delete all data for.

  • facility_keys (defaults to: nil)

    List of facility keys to delete.

  • guest_keys (defaults to: nil)

    List of guest keys to delete.

  • listing_keys (defaults to: nil)

    List of listing keys to delete.

  • property_keys (defaults to: nil)

    List of property keys to delete.

  • property_listing_keys (defaults to: nil)

    List of property listing keys to delete.

  • reservation_keys (defaults to: nil)

    List of reservation keys to delete.

  • resident_keys (defaults to: nil)

    List of resident keys to delete.

  • room_keys (defaults to: nil)

    List of room keys to delete.

  • space_keys (defaults to: nil)

    List of space keys to delete.

  • staff_member_keys (defaults to: nil)

    List of staff member keys to delete.

  • tenant_keys (defaults to: nil)

    List of tenant keys to delete.

  • unit_keys (defaults to: nil)

    List of unit keys to delete.

  • user_identity_keys (defaults to: nil)

    List of user identity keys to delete.

  • user_keys (defaults to: nil)

    List of user keys to delete.

Returns:

  • (nil)

    OK



52
53
54
55
56
# File 'lib/seam/routes/customers.rb', line 52

def delete_data(access_grant_keys: nil, booking_keys: nil, building_keys: nil, common_area_keys: nil, customer_keys: nil, facility_keys: nil, guest_keys: nil, listing_keys: nil, property_keys: nil, property_listing_keys: nil, reservation_keys: nil, resident_keys: nil, room_keys: nil, space_keys: nil, staff_member_keys: nil, tenant_keys: nil, unit_keys: nil, user_identity_keys: nil, user_keys: nil)
  @client.post("/customers/delete_data", {access_grant_keys: access_grant_keys, booking_keys: booking_keys, building_keys: building_keys, common_area_keys: common_area_keys, customer_keys: customer_keys, facility_keys: facility_keys, guest_keys: guest_keys, listing_keys: listing_keys, property_keys: property_keys, property_listing_keys: property_listing_keys, reservation_keys: reservation_keys, resident_keys: resident_keys, room_keys: room_keys, space_keys: space_keys, staff_member_keys: staff_member_keys, tenant_keys: tenant_keys, unit_keys: unit_keys, user_identity_keys: user_identity_keys, user_keys: user_keys}.compact)

  nil
end

#push_data(customer_key:, access_grants: nil, bookings: nil, buildings: nil, common_areas: nil, facilities: nil, guests: nil, listings: nil, properties: nil, property_listings: nil, reservations: nil, residents: nil, rooms: nil, sites: nil, spaces: nil, staff_members: nil, tenants: nil, units: nil, user_identities: nil, users: nil) ⇒ nil

Pushes customer data including resources like spaces, properties, rooms, users, etc.

Parameters:

  • customer_key

    Your unique identifier for the customer.

  • access_grants (defaults to: nil)

    List of access grants.

  • bookings (defaults to: nil)

    List of bookings.

  • buildings (defaults to: nil)

    List of buildings.

  • common_areas (defaults to: nil)

    List of shared common areas.

  • facilities (defaults to: nil)

    List of gym or fitness facilities.

  • guests (defaults to: nil)

    List of guests.

  • listings (defaults to: nil)

    List of property listings.

  • properties (defaults to: nil)

    List of short-term rental properties.

  • property_listings (defaults to: nil)

    List of property listings.

  • reservations (defaults to: nil)

    List of reservations.

  • residents (defaults to: nil)

    List of residents.

  • rooms (defaults to: nil)

    List of hotel or hospitality rooms.

  • sites (defaults to: nil)

    List of general sites or areas.

  • spaces (defaults to: nil)

    List of general spaces or areas.

  • staff_members (defaults to: nil)

    List of staff members.

  • tenants (defaults to: nil)

    List of tenants.

  • units (defaults to: nil)

    List of multi-family residential units.

  • user_identities (defaults to: nil)

    List of user identities.

  • users (defaults to: nil)

    List of users.

Returns:

  • (nil)

    OK



80
81
82
83
84
# File 'lib/seam/routes/customers.rb', line 80

def push_data(customer_key:, access_grants: nil, bookings: nil, buildings: nil, common_areas: nil, facilities: nil, guests: nil, listings: nil, properties: nil, property_listings: nil, reservations: nil, residents: nil, rooms: nil, sites: nil, spaces: nil, staff_members: nil, tenants: nil, units: nil, user_identities: nil, users: nil)
  @client.post("/customers/push_data", {customer_key: customer_key, access_grants: access_grants, bookings: bookings, buildings: buildings, common_areas: common_areas, facilities: facilities, guests: guests, listings: listings, properties: properties, property_listings: property_listings, reservations: reservations, residents: residents, rooms: rooms, sites: sites, spaces: spaces, staff_members: staff_members, tenants: tenants, units: units, user_identities: user_identities, users: users}.compact)

  nil
end