late-sdk 0.0.115 → 0.0.116

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d231226f0971b82bf81a610a30c19132fbe96dd25f2a2f573bc3ab38785f28b7
4
- data.tar.gz: 93d355c6c5ee273802b3a0552848314e245bcf6949e172608ec5b77d29cc8091
3
+ metadata.gz: de27a39b48fee776fce4622583a605bf899492b48f8d7278f4949b559811cc59
4
+ data.tar.gz: 63d4de87d3c4ae3bc3066cda13fd10c2696ecb4ae04925e2ce0c0c4f08d3e1ba
5
5
  SHA512:
6
- metadata.gz: cce1fadb9dc362c721bebe987b1e09e65d8f1d6248dad2e529bcae530246b87951cf35243b97ebc78115150cf7ccd1777a3d8b520240626011af5b306e6eb1f5
7
- data.tar.gz: 3159e70f56c237417a30d28fb5a0818182a4deb2c01dd51647689ef0edbf428c68957f8b4c2a52ca889776222a5c93de15284cbdab12880571c6e1ed6626c976
6
+ metadata.gz: 35798f205c8a7aa22d6822985b49228099332e08f3b1677c749057bc4cb144d49b19bbb617e8d11924acaaa2950e509d95d5a510e1412290ceacf52ca404e99e
7
+ data.tar.gz: ba1cfacf90a2924d1511e4a49a684fb2ad8770c053e4ce6c4aeebb03638a6ade9d8ddc41b6213cd3c7838b78151107b1255e1ec89715af6c84c01e60f8dfb22c
data/README.md CHANGED
@@ -877,7 +877,6 @@ Class | Method | HTTP request | Description
877
877
  - [Late::SelectGoogleBusinessLocation200Response](docs/SelectGoogleBusinessLocation200Response.md)
878
878
  - [Late::SelectGoogleBusinessLocation200ResponseAccount](docs/SelectGoogleBusinessLocation200ResponseAccount.md)
879
879
  - [Late::SelectGoogleBusinessLocationRequest](docs/SelectGoogleBusinessLocationRequest.md)
880
- - [Late::SelectGoogleBusinessLocationRequestUserProfile](docs/SelectGoogleBusinessLocationRequestUserProfile.md)
881
880
  - [Late::SelectLinkedInOrganization200Response](docs/SelectLinkedInOrganization200Response.md)
882
881
  - [Late::SelectLinkedInOrganization200ResponseAccount](docs/SelectLinkedInOrganization200ResponseAccount.md)
883
882
  - [Late::SelectLinkedInOrganization200ResponseBulkRefresh](docs/SelectLinkedInOrganization200ResponseBulkRefresh.md)
data/docs/ConnectApi.md CHANGED
@@ -1161,11 +1161,11 @@ end
1161
1161
 
1162
1162
  ## list_google_business_locations
1163
1163
 
1164
- > <ListGoogleBusinessLocations200Response> list_google_business_locations(profile_id, temp_token)
1164
+ > <ListGoogleBusinessLocations200Response> list_google_business_locations(opts)
1165
1165
 
1166
1166
  List GBP locations
1167
1167
 
1168
- For headless flows. Returns the list of GBP locations the user can manage. Use X-Connect-Token if connecting via API key.
1168
+ For headless flows. Returns the list of GBP locations the user can manage. Use pendingDataToken (from the OAuth callback redirect) to list locations without consuming the token, so it remains available for select-location. Use X-Connect-Token header if connecting via API key.
1169
1169
 
1170
1170
  ### Examples
1171
1171
 
@@ -1184,12 +1184,15 @@ Late.configure do |config|
1184
1184
  end
1185
1185
 
1186
1186
  api_instance = Late::ConnectApi.new
1187
- profile_id = 'profile_id_example' # String | Profile ID from your connection flow
1188
- temp_token = 'temp_token_example' # String | Temporary Google access token from the OAuth callback redirect
1187
+ opts = {
1188
+ profile_id: 'profile_id_example', # String | Profile ID from your connection flow. Required for auth validation when provided.
1189
+ pending_data_token: 'pending_data_token_example', # String | Token from the OAuth callback redirect. Preferred over tempToken because it preserves server-side token storage. One of pendingDataToken or tempToken is required.
1190
+ temp_token: 'temp_token_example' # String | Legacy. Direct Google access token. Use pendingDataToken instead when available.
1191
+ }
1189
1192
 
1190
1193
  begin
1191
1194
  # List GBP locations
1192
- result = api_instance.list_google_business_locations(profile_id, temp_token)
1195
+ result = api_instance.list_google_business_locations(opts)
1193
1196
  p result
1194
1197
  rescue Late::ApiError => e
1195
1198
  puts "Error when calling ConnectApi->list_google_business_locations: #{e}"
@@ -1200,12 +1203,12 @@ end
1200
1203
 
1201
1204
  This returns an Array which contains the response data, status code and headers.
1202
1205
 
1203
- > <Array(<ListGoogleBusinessLocations200Response>, Integer, Hash)> list_google_business_locations_with_http_info(profile_id, temp_token)
1206
+ > <Array(<ListGoogleBusinessLocations200Response>, Integer, Hash)> list_google_business_locations_with_http_info(opts)
1204
1207
 
1205
1208
  ```ruby
1206
1209
  begin
1207
1210
  # List GBP locations
1208
- data, status_code, headers = api_instance.list_google_business_locations_with_http_info(profile_id, temp_token)
1211
+ data, status_code, headers = api_instance.list_google_business_locations_with_http_info(opts)
1209
1212
  p status_code # => 2xx
1210
1213
  p headers # => { ... }
1211
1214
  p data # => <ListGoogleBusinessLocations200Response>
@@ -1218,8 +1221,9 @@ end
1218
1221
 
1219
1222
  | Name | Type | Description | Notes |
1220
1223
  | ---- | ---- | ----------- | ----- |
1221
- | **profile_id** | **String** | Profile ID from your connection flow | |
1222
- | **temp_token** | **String** | Temporary Google access token from the OAuth callback redirect | |
1224
+ | **profile_id** | **String** | Profile ID from your connection flow. Required for auth validation when provided. | [optional] |
1225
+ | **pending_data_token** | **String** | Token from the OAuth callback redirect. Preferred over tempToken because it preserves server-side token storage. One of pendingDataToken or tempToken is required. | [optional] |
1226
+ | **temp_token** | **String** | Legacy. Direct Google access token. Use pendingDataToken instead when available. | [optional] |
1223
1227
 
1224
1228
  ### Return type
1225
1229
 
@@ -1532,7 +1536,7 @@ end
1532
1536
 
1533
1537
  Select GBP location
1534
1538
 
1535
- Complete the headless flow by saving the user's selected GBP location. Include userProfile from the OAuth redirect (contains refresh token). Use X-Connect-Token if connecting via API key.
1539
+ Complete the headless GBP flow by saving the user's selected location. The pendingDataToken is returned in your redirect URL after OAuth completes (step=select_location). Tokens and profile data are stored server-side, so only the pendingDataToken is needed here. Use X-Connect-Token header if connecting via API key.
1536
1540
 
1537
1541
  ### Examples
1538
1542
 
@@ -1551,7 +1555,7 @@ Late.configure do |config|
1551
1555
  end
1552
1556
 
1553
1557
  api_instance = Late::ConnectApi.new
1554
- select_google_business_location_request = Late::SelectGoogleBusinessLocationRequest.new({profile_id: 'profile_id_example', location_id: 'location_id_example', temp_token: 'temp_token_example'}) # SelectGoogleBusinessLocationRequest |
1558
+ select_google_business_location_request = Late::SelectGoogleBusinessLocationRequest.new({profile_id: 'profile_id_example', location_id: 'location_id_example', pending_data_token: 'pending_data_token_example'}) # SelectGoogleBusinessLocationRequest |
1555
1559
 
1556
1560
  begin
1557
1561
  # Select GBP location
@@ -6,8 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **profile_id** | **String** | Profile ID from your connection flow | |
8
8
  | **location_id** | **String** | The Google Business location ID selected by the user | |
9
- | **temp_token** | **String** | Temporary Google access token from OAuth | |
10
- | **user_profile** | [**SelectGoogleBusinessLocationRequestUserProfile**](SelectGoogleBusinessLocationRequestUserProfile.md) | | [optional] |
9
+ | **pending_data_token** | **String** | Token from the OAuth callback redirect (pendingDataToken query param). Tokens and profile data are retrieved server-side from this token. | |
11
10
  | **redirect_url** | **String** | Optional custom redirect URL to return to after selection | [optional] |
12
11
 
13
12
  ## Example
@@ -18,8 +17,7 @@ require 'late-sdk'
18
17
  instance = Late::SelectGoogleBusinessLocationRequest.new(
19
18
  profile_id: null,
20
19
  location_id: null,
21
- temp_token: null,
22
- user_profile: null,
20
+ pending_data_token: null,
23
21
  redirect_url: null
24
22
  )
25
23
  ```
@@ -1090,41 +1090,36 @@ module Late
1090
1090
  end
1091
1091
 
1092
1092
  # List GBP locations
1093
- # For headless flows. Returns the list of GBP locations the user can manage. Use X-Connect-Token if connecting via API key.
1094
- # @param profile_id [String] Profile ID from your connection flow
1095
- # @param temp_token [String] Temporary Google access token from the OAuth callback redirect
1093
+ # For headless flows. Returns the list of GBP locations the user can manage. Use pendingDataToken (from the OAuth callback redirect) to list locations without consuming the token, so it remains available for select-location. Use X-Connect-Token header if connecting via API key.
1096
1094
  # @param [Hash] opts the optional parameters
1095
+ # @option opts [String] :profile_id Profile ID from your connection flow. Required for auth validation when provided.
1096
+ # @option opts [String] :pending_data_token Token from the OAuth callback redirect. Preferred over tempToken because it preserves server-side token storage. One of pendingDataToken or tempToken is required.
1097
+ # @option opts [String] :temp_token Legacy. Direct Google access token. Use pendingDataToken instead when available.
1097
1098
  # @return [ListGoogleBusinessLocations200Response]
1098
- def list_google_business_locations(profile_id, temp_token, opts = {})
1099
- data, _status_code, _headers = list_google_business_locations_with_http_info(profile_id, temp_token, opts)
1099
+ def list_google_business_locations(opts = {})
1100
+ data, _status_code, _headers = list_google_business_locations_with_http_info(opts)
1100
1101
  data
1101
1102
  end
1102
1103
 
1103
1104
  # List GBP locations
1104
- # For headless flows. Returns the list of GBP locations the user can manage. Use X-Connect-Token if connecting via API key.
1105
- # @param profile_id [String] Profile ID from your connection flow
1106
- # @param temp_token [String] Temporary Google access token from the OAuth callback redirect
1105
+ # For headless flows. Returns the list of GBP locations the user can manage. Use pendingDataToken (from the OAuth callback redirect) to list locations without consuming the token, so it remains available for select-location. Use X-Connect-Token header if connecting via API key.
1107
1106
  # @param [Hash] opts the optional parameters
1107
+ # @option opts [String] :profile_id Profile ID from your connection flow. Required for auth validation when provided.
1108
+ # @option opts [String] :pending_data_token Token from the OAuth callback redirect. Preferred over tempToken because it preserves server-side token storage. One of pendingDataToken or tempToken is required.
1109
+ # @option opts [String] :temp_token Legacy. Direct Google access token. Use pendingDataToken instead when available.
1108
1110
  # @return [Array<(ListGoogleBusinessLocations200Response, Integer, Hash)>] ListGoogleBusinessLocations200Response data, response status code and response headers
1109
- def list_google_business_locations_with_http_info(profile_id, temp_token, opts = {})
1111
+ def list_google_business_locations_with_http_info(opts = {})
1110
1112
  if @api_client.config.debugging
1111
1113
  @api_client.config.logger.debug 'Calling API: ConnectApi.list_google_business_locations ...'
1112
1114
  end
1113
- # verify the required parameter 'profile_id' is set
1114
- if @api_client.config.client_side_validation && profile_id.nil?
1115
- fail ArgumentError, "Missing the required parameter 'profile_id' when calling ConnectApi.list_google_business_locations"
1116
- end
1117
- # verify the required parameter 'temp_token' is set
1118
- if @api_client.config.client_side_validation && temp_token.nil?
1119
- fail ArgumentError, "Missing the required parameter 'temp_token' when calling ConnectApi.list_google_business_locations"
1120
- end
1121
1115
  # resource path
1122
1116
  local_var_path = '/v1/connect/googlebusiness/locations'
1123
1117
 
1124
1118
  # query parameters
1125
1119
  query_params = opts[:query_params] || {}
1126
- query_params[:'profileId'] = profile_id
1127
- query_params[:'tempToken'] = temp_token
1120
+ query_params[:'profileId'] = opts[:'profile_id'] if !opts[:'profile_id'].nil?
1121
+ query_params[:'pendingDataToken'] = opts[:'pending_data_token'] if !opts[:'pending_data_token'].nil?
1122
+ query_params[:'tempToken'] = opts[:'temp_token'] if !opts[:'temp_token'].nil?
1128
1123
 
1129
1124
  # header parameters
1130
1125
  header_params = opts[:header_params] || {}
@@ -1456,7 +1451,7 @@ module Late
1456
1451
  end
1457
1452
 
1458
1453
  # Select GBP location
1459
- # Complete the headless flow by saving the user's selected GBP location. Include userProfile from the OAuth redirect (contains refresh token). Use X-Connect-Token if connecting via API key.
1454
+ # Complete the headless GBP flow by saving the user's selected location. The pendingDataToken is returned in your redirect URL after OAuth completes (step=select_location). Tokens and profile data are stored server-side, so only the pendingDataToken is needed here. Use X-Connect-Token header if connecting via API key.
1460
1455
  # @param select_google_business_location_request [SelectGoogleBusinessLocationRequest]
1461
1456
  # @param [Hash] opts the optional parameters
1462
1457
  # @return [SelectGoogleBusinessLocation200Response]
@@ -1466,7 +1461,7 @@ module Late
1466
1461
  end
1467
1462
 
1468
1463
  # Select GBP location
1469
- # Complete the headless flow by saving the user&#39;s selected GBP location. Include userProfile from the OAuth redirect (contains refresh token). Use X-Connect-Token if connecting via API key.
1464
+ # Complete the headless GBP flow by saving the user&#39;s selected location. The pendingDataToken is returned in your redirect URL after OAuth completes (step&#x3D;select_location). Tokens and profile data are stored server-side, so only the pendingDataToken is needed here. Use X-Connect-Token header if connecting via API key.
1470
1465
  # @param select_google_business_location_request [SelectGoogleBusinessLocationRequest]
1471
1466
  # @param [Hash] opts the optional parameters
1472
1467
  # @return [Array<(SelectGoogleBusinessLocation200Response, Integer, Hash)>] SelectGoogleBusinessLocation200Response data, response status code and response headers
@@ -21,10 +21,8 @@ module Late
21
21
  # The Google Business location ID selected by the user
22
22
  attr_accessor :location_id
23
23
 
24
- # Temporary Google access token from OAuth
25
- attr_accessor :temp_token
26
-
27
- attr_accessor :user_profile
24
+ # Token from the OAuth callback redirect (pendingDataToken query param). Tokens and profile data are retrieved server-side from this token.
25
+ attr_accessor :pending_data_token
28
26
 
29
27
  # Optional custom redirect URL to return to after selection
30
28
  attr_accessor :redirect_url
@@ -34,8 +32,7 @@ module Late
34
32
  {
35
33
  :'profile_id' => :'profileId',
36
34
  :'location_id' => :'locationId',
37
- :'temp_token' => :'tempToken',
38
- :'user_profile' => :'userProfile',
35
+ :'pending_data_token' => :'pendingDataToken',
39
36
  :'redirect_url' => :'redirect_url'
40
37
  }
41
38
  end
@@ -55,8 +52,7 @@ module Late
55
52
  {
56
53
  :'profile_id' => :'String',
57
54
  :'location_id' => :'String',
58
- :'temp_token' => :'String',
59
- :'user_profile' => :'SelectGoogleBusinessLocationRequestUserProfile',
55
+ :'pending_data_token' => :'String',
60
56
  :'redirect_url' => :'String'
61
57
  }
62
58
  end
@@ -95,14 +91,10 @@ module Late
95
91
  self.location_id = nil
96
92
  end
97
93
 
98
- if attributes.key?(:'temp_token')
99
- self.temp_token = attributes[:'temp_token']
94
+ if attributes.key?(:'pending_data_token')
95
+ self.pending_data_token = attributes[:'pending_data_token']
100
96
  else
101
- self.temp_token = nil
102
- end
103
-
104
- if attributes.key?(:'user_profile')
105
- self.user_profile = attributes[:'user_profile']
97
+ self.pending_data_token = nil
106
98
  end
107
99
 
108
100
  if attributes.key?(:'redirect_url')
@@ -123,8 +115,8 @@ module Late
123
115
  invalid_properties.push('invalid value for "location_id", location_id cannot be nil.')
124
116
  end
125
117
 
126
- if @temp_token.nil?
127
- invalid_properties.push('invalid value for "temp_token", temp_token cannot be nil.')
118
+ if @pending_data_token.nil?
119
+ invalid_properties.push('invalid value for "pending_data_token", pending_data_token cannot be nil.')
128
120
  end
129
121
 
130
122
  invalid_properties
@@ -136,7 +128,7 @@ module Late
136
128
  warn '[DEPRECATED] the `valid?` method is obsolete'
137
129
  return false if @profile_id.nil?
138
130
  return false if @location_id.nil?
139
- return false if @temp_token.nil?
131
+ return false if @pending_data_token.nil?
140
132
  true
141
133
  end
142
134
 
@@ -161,13 +153,13 @@ module Late
161
153
  end
162
154
 
163
155
  # Custom attribute writer method with validation
164
- # @param [Object] temp_token Value to be assigned
165
- def temp_token=(temp_token)
166
- if temp_token.nil?
167
- fail ArgumentError, 'temp_token cannot be nil'
156
+ # @param [Object] pending_data_token Value to be assigned
157
+ def pending_data_token=(pending_data_token)
158
+ if pending_data_token.nil?
159
+ fail ArgumentError, 'pending_data_token cannot be nil'
168
160
  end
169
161
 
170
- @temp_token = temp_token
162
+ @pending_data_token = pending_data_token
171
163
  end
172
164
 
173
165
  # Checks equality by comparing each attribute.
@@ -177,8 +169,7 @@ module Late
177
169
  self.class == o.class &&
178
170
  profile_id == o.profile_id &&
179
171
  location_id == o.location_id &&
180
- temp_token == o.temp_token &&
181
- user_profile == o.user_profile &&
172
+ pending_data_token == o.pending_data_token &&
182
173
  redirect_url == o.redirect_url
183
174
  end
184
175
 
@@ -191,7 +182,7 @@ module Late
191
182
  # Calculates hash code according to all attributes.
192
183
  # @return [Integer] Hash code
193
184
  def hash
194
- [profile_id, location_id, temp_token, user_profile, redirect_url].hash
185
+ [profile_id, location_id, pending_data_token, redirect_url].hash
195
186
  end
196
187
 
197
188
  # Builds the object from hash
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Late
14
- VERSION = '0.0.115'
14
+ VERSION = '0.0.116'
15
15
  end
data/lib/late-sdk.rb CHANGED
@@ -558,7 +558,6 @@ require 'late-sdk/models/select_facebook_page_request_user_profile'
558
558
  require 'late-sdk/models/select_google_business_location200_response'
559
559
  require 'late-sdk/models/select_google_business_location200_response_account'
560
560
  require 'late-sdk/models/select_google_business_location_request'
561
- require 'late-sdk/models/select_google_business_location_request_user_profile'
562
561
  require 'late-sdk/models/select_linked_in_organization200_response'
563
562
  require 'late-sdk/models/select_linked_in_organization200_response_account'
564
563
  require 'late-sdk/models/select_linked_in_organization200_response_bulk_refresh'
data/openapi.yaml CHANGED
@@ -7209,18 +7209,27 @@ paths:
7209
7209
  operationId: listGoogleBusinessLocations
7210
7210
  tags: [Connect]
7211
7211
  summary: List GBP locations
7212
- description: For headless flows. Returns the list of GBP locations the user can manage. Use X-Connect-Token if connecting via API key.
7212
+ description: >
7213
+ For headless flows. Returns the list of GBP locations the user can manage.
7214
+ Use pendingDataToken (from the OAuth callback redirect) to list locations
7215
+ without consuming the token, so it remains available for select-location.
7216
+ Use X-Connect-Token header if connecting via API key.
7213
7217
  parameters:
7214
7218
  - name: profileId
7215
7219
  in: query
7216
- required: true
7220
+ required: false
7217
7221
  schema: { type: string }
7218
- description: Profile ID from your connection flow
7222
+ description: Profile ID from your connection flow. Required for auth validation when provided.
7223
+ - name: pendingDataToken
7224
+ in: query
7225
+ required: false
7226
+ schema: { type: string }
7227
+ description: Token from the OAuth callback redirect. Preferred over tempToken because it preserves server-side token storage. One of pendingDataToken or tempToken is required.
7219
7228
  - name: tempToken
7220
7229
  in: query
7221
- required: true
7230
+ required: false
7222
7231
  schema: { type: string }
7223
- description: Temporary Google access token from the OAuth callback redirect
7232
+ description: Legacy. Direct Google access token. Use pendingDataToken instead when available.
7224
7233
  security:
7225
7234
  - bearerAuth: []
7226
7235
  - connectToken: []
@@ -7267,47 +7276,37 @@ paths:
7267
7276
  operationId: selectGoogleBusinessLocation
7268
7277
  tags: [Connect]
7269
7278
  summary: Select GBP location
7270
- description: Complete the headless flow by saving the user's selected GBP location. Include userProfile from the OAuth redirect (contains refresh token). Use X-Connect-Token if connecting via API key.
7279
+ description: >
7280
+ Complete the headless GBP flow by saving the user's selected location.
7281
+ The pendingDataToken is returned in your redirect URL after OAuth completes
7282
+ (step=select_location). Tokens and profile data are stored server-side,
7283
+ so only the pendingDataToken is needed here. Use X-Connect-Token header
7284
+ if connecting via API key.
7271
7285
  requestBody:
7272
7286
  required: true
7273
7287
  content:
7274
7288
  application/json:
7275
7289
  schema:
7276
7290
  type: object
7277
- required: [profileId, locationId, tempToken]
7291
+ required: [profileId, locationId, pendingDataToken]
7278
7292
  properties:
7279
- profileId:
7293
+ profileId:
7280
7294
  type: string
7281
7295
  description: Profile ID from your connection flow
7282
- locationId:
7296
+ locationId:
7283
7297
  type: string
7284
7298
  description: The Google Business location ID selected by the user
7285
- tempToken:
7299
+ pendingDataToken:
7286
7300
  type: string
7287
- description: Temporary Google access token from OAuth
7288
- userProfile:
7289
- type: object
7290
- description: Decoded user profile from the OAuth callback. Contains the refresh token. Always include this field.
7291
- properties:
7292
- id: { type: string }
7293
- name: { type: string }
7294
- refreshToken: { type: string, description: Google refresh token for long-lived access }
7295
- tokenExpiresIn: { type: integer, description: Token expiration time in seconds }
7296
- scope: { type: string, description: Granted OAuth scopes }
7297
- redirect_url:
7301
+ description: Token from the OAuth callback redirect (pendingDataToken query param). Tokens and profile data are retrieved server-side from this token.
7302
+ redirect_url:
7298
7303
  type: string
7299
7304
  format: uri
7300
7305
  description: Optional custom redirect URL to return to after selection
7301
7306
  example:
7302
7307
  profileId: "507f1f77bcf86cd799439011"
7303
7308
  locationId: "9281089117903930794"
7304
- tempToken: "ya29.xxxxx..."
7305
- userProfile:
7306
- id: "113303573364907650416"
7307
- name: "John Doe"
7308
- refreshToken: "1//0gxxxxx..."
7309
- tokenExpiresIn: 3599
7310
- scope: "https://www.googleapis.com/auth/business.manage"
7309
+ pendingDataToken: "a1b2c3d4e5f6..."
7311
7310
  redirect_url: "https://yourdomain.com/integrations/callback"
7312
7311
  security:
7313
7312
  - bearerAuth: []
@@ -232,10 +232,11 @@ describe 'ConnectApi' do
232
232
 
233
233
  # unit tests for list_google_business_locations
234
234
  # List GBP locations
235
- # For headless flows. Returns the list of GBP locations the user can manage. Use X-Connect-Token if connecting via API key.
236
- # @param profile_id Profile ID from your connection flow
237
- # @param temp_token Temporary Google access token from the OAuth callback redirect
235
+ # For headless flows. Returns the list of GBP locations the user can manage. Use pendingDataToken (from the OAuth callback redirect) to list locations without consuming the token, so it remains available for select-location. Use X-Connect-Token header if connecting via API key.
238
236
  # @param [Hash] opts the optional parameters
237
+ # @option opts [String] :profile_id Profile ID from your connection flow. Required for auth validation when provided.
238
+ # @option opts [String] :pending_data_token Token from the OAuth callback redirect. Preferred over tempToken because it preserves server-side token storage. One of pendingDataToken or tempToken is required.
239
+ # @option opts [String] :temp_token Legacy. Direct Google access token. Use pendingDataToken instead when available.
239
240
  # @return [ListGoogleBusinessLocations200Response]
240
241
  describe 'list_google_business_locations test' do
241
242
  it 'should work' do
@@ -298,7 +299,7 @@ describe 'ConnectApi' do
298
299
 
299
300
  # unit tests for select_google_business_location
300
301
  # Select GBP location
301
- # Complete the headless flow by saving the user&#39;s selected GBP location. Include userProfile from the OAuth redirect (contains refresh token). Use X-Connect-Token if connecting via API key.
302
+ # Complete the headless GBP flow by saving the user&#39;s selected location. The pendingDataToken is returned in your redirect URL after OAuth completes (step&#x3D;select_location). Tokens and profile data are stored server-side, so only the pendingDataToken is needed here. Use X-Connect-Token header if connecting via API key.
302
303
  # @param select_google_business_location_request
303
304
  # @param [Hash] opts the optional parameters
304
305
  # @return [SelectGoogleBusinessLocation200Response]
@@ -39,13 +39,7 @@ describe Late::SelectGoogleBusinessLocationRequest do
39
39
  end
40
40
  end
41
41
 
42
- describe 'test attribute "temp_token"' do
43
- it 'should work' do
44
- # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
45
- end
46
- end
47
-
48
- describe 'test attribute "user_profile"' do
42
+ describe 'test attribute "pending_data_token"' do
49
43
  it 'should work' do
50
44
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
45
  end
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: late-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.115
4
+ version: 0.0.116
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-07 00:00:00.000000000 Z
11
+ date: 2026-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -633,7 +633,6 @@ files:
633
633
  - docs/SelectGoogleBusinessLocation200Response.md
634
634
  - docs/SelectGoogleBusinessLocation200ResponseAccount.md
635
635
  - docs/SelectGoogleBusinessLocationRequest.md
636
- - docs/SelectGoogleBusinessLocationRequestUserProfile.md
637
636
  - docs/SelectLinkedInOrganization200Response.md
638
637
  - docs/SelectLinkedInOrganization200ResponseAccount.md
639
638
  - docs/SelectLinkedInOrganization200ResponseBulkRefresh.md
@@ -1439,7 +1438,6 @@ files:
1439
1438
  - lib/late-sdk/models/select_google_business_location200_response.rb
1440
1439
  - lib/late-sdk/models/select_google_business_location200_response_account.rb
1441
1440
  - lib/late-sdk/models/select_google_business_location_request.rb
1442
- - lib/late-sdk/models/select_google_business_location_request_user_profile.rb
1443
1441
  - lib/late-sdk/models/select_linked_in_organization200_response.rb
1444
1442
  - lib/late-sdk/models/select_linked_in_organization200_response_account.rb
1445
1443
  - lib/late-sdk/models/select_linked_in_organization200_response_bulk_refresh.rb
@@ -2230,7 +2228,6 @@ files:
2230
2228
  - spec/models/select_google_business_location200_response_account_spec.rb
2231
2229
  - spec/models/select_google_business_location200_response_spec.rb
2232
2230
  - spec/models/select_google_business_location_request_spec.rb
2233
- - spec/models/select_google_business_location_request_user_profile_spec.rb
2234
2231
  - spec/models/select_linked_in_organization200_response_account_spec.rb
2235
2232
  - spec/models/select_linked_in_organization200_response_bulk_refresh_spec.rb
2236
2233
  - spec/models/select_linked_in_organization200_response_spec.rb
@@ -2439,7 +2436,7 @@ files:
2439
2436
  - spec/models/you_tube_scope_missing_response_scope_status_spec.rb
2440
2437
  - spec/models/you_tube_scope_missing_response_spec.rb
2441
2438
  - spec/spec_helper.rb
2442
- - zernio-sdk-0.0.115.gem
2439
+ - zernio-sdk-0.0.116.gem
2443
2440
  homepage: https://openapi-generator.tech
2444
2441
  licenses:
2445
2442
  - Unlicense
@@ -3072,7 +3069,6 @@ test_files:
3072
3069
  - spec/models/update_account_request_spec.rb
3073
3070
  - spec/models/get_inbox_post_comments200_response_comments_inner_spec.rb
3074
3071
  - spec/models/platform_target_account_id_spec.rb
3075
- - spec/models/select_google_business_location_request_user_profile_spec.rb
3076
3072
  - spec/models/select_snapchat_profile_request_selected_public_profile_spec.rb
3077
3073
  - spec/models/get_google_business_search_keywords200_response_keywords_inner_spec.rb
3078
3074
  - spec/models/profile_create_response_spec.rb
@@ -1,26 +0,0 @@
1
- # Late::SelectGoogleBusinessLocationRequestUserProfile
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **id** | **String** | | [optional] |
8
- | **name** | **String** | | [optional] |
9
- | **refresh_token** | **String** | Google refresh token for long-lived access | [optional] |
10
- | **token_expires_in** | **Integer** | Token expiration time in seconds | [optional] |
11
- | **scope** | **String** | Granted OAuth scopes | [optional] |
12
-
13
- ## Example
14
-
15
- ```ruby
16
- require 'late-sdk'
17
-
18
- instance = Late::SelectGoogleBusinessLocationRequestUserProfile.new(
19
- id: null,
20
- name: null,
21
- refresh_token: null,
22
- token_expires_in: null,
23
- scope: null
24
- )
25
- ```
26
-
@@ -1,187 +0,0 @@
1
- =begin
2
- #Zernio API
3
-
4
- #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
-
6
- The version of the OpenAPI document: 1.0.1
7
- Contact: support@zernio.com
8
- Generated by: https://openapi-generator.tech
9
- Generator version: 7.19.0
10
-
11
- =end
12
-
13
- require 'date'
14
- require 'time'
15
-
16
- module Late
17
- # Decoded user profile from the OAuth callback. Contains the refresh token. Always include this field.
18
- class SelectGoogleBusinessLocationRequestUserProfile < ApiModelBase
19
- attr_accessor :id
20
-
21
- attr_accessor :name
22
-
23
- # Google refresh token for long-lived access
24
- attr_accessor :refresh_token
25
-
26
- # Token expiration time in seconds
27
- attr_accessor :token_expires_in
28
-
29
- # Granted OAuth scopes
30
- attr_accessor :scope
31
-
32
- # Attribute mapping from ruby-style variable name to JSON key.
33
- def self.attribute_map
34
- {
35
- :'id' => :'id',
36
- :'name' => :'name',
37
- :'refresh_token' => :'refreshToken',
38
- :'token_expires_in' => :'tokenExpiresIn',
39
- :'scope' => :'scope'
40
- }
41
- end
42
-
43
- # Returns attribute mapping this model knows about
44
- def self.acceptable_attribute_map
45
- attribute_map
46
- end
47
-
48
- # Returns all the JSON keys this model knows about
49
- def self.acceptable_attributes
50
- acceptable_attribute_map.values
51
- end
52
-
53
- # Attribute type mapping.
54
- def self.openapi_types
55
- {
56
- :'id' => :'String',
57
- :'name' => :'String',
58
- :'refresh_token' => :'String',
59
- :'token_expires_in' => :'Integer',
60
- :'scope' => :'String'
61
- }
62
- end
63
-
64
- # List of attributes with nullable: true
65
- def self.openapi_nullable
66
- Set.new([
67
- ])
68
- end
69
-
70
- # Initializes the object
71
- # @param [Hash] attributes Model attributes in the form of hash
72
- def initialize(attributes = {})
73
- if (!attributes.is_a?(Hash))
74
- fail ArgumentError, "The input argument (attributes) must be a hash in `Late::SelectGoogleBusinessLocationRequestUserProfile` initialize method"
75
- end
76
-
77
- # check to see if the attribute exists and convert string to symbol for hash key
78
- acceptable_attribute_map = self.class.acceptable_attribute_map
79
- attributes = attributes.each_with_object({}) { |(k, v), h|
80
- if (!acceptable_attribute_map.key?(k.to_sym))
81
- fail ArgumentError, "`#{k}` is not a valid attribute in `Late::SelectGoogleBusinessLocationRequestUserProfile`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
82
- end
83
- h[k.to_sym] = v
84
- }
85
-
86
- if attributes.key?(:'id')
87
- self.id = attributes[:'id']
88
- end
89
-
90
- if attributes.key?(:'name')
91
- self.name = attributes[:'name']
92
- end
93
-
94
- if attributes.key?(:'refresh_token')
95
- self.refresh_token = attributes[:'refresh_token']
96
- end
97
-
98
- if attributes.key?(:'token_expires_in')
99
- self.token_expires_in = attributes[:'token_expires_in']
100
- end
101
-
102
- if attributes.key?(:'scope')
103
- self.scope = attributes[:'scope']
104
- end
105
- end
106
-
107
- # Show invalid properties with the reasons. Usually used together with valid?
108
- # @return Array for valid properties with the reasons
109
- def list_invalid_properties
110
- warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
111
- invalid_properties = Array.new
112
- invalid_properties
113
- end
114
-
115
- # Check to see if the all the properties in the model are valid
116
- # @return true if the model is valid
117
- def valid?
118
- warn '[DEPRECATED] the `valid?` method is obsolete'
119
- true
120
- end
121
-
122
- # Checks equality by comparing each attribute.
123
- # @param [Object] Object to be compared
124
- def ==(o)
125
- return true if self.equal?(o)
126
- self.class == o.class &&
127
- id == o.id &&
128
- name == o.name &&
129
- refresh_token == o.refresh_token &&
130
- token_expires_in == o.token_expires_in &&
131
- scope == o.scope
132
- end
133
-
134
- # @see the `==` method
135
- # @param [Object] Object to be compared
136
- def eql?(o)
137
- self == o
138
- end
139
-
140
- # Calculates hash code according to all attributes.
141
- # @return [Integer] Hash code
142
- def hash
143
- [id, name, refresh_token, token_expires_in, scope].hash
144
- end
145
-
146
- # Builds the object from hash
147
- # @param [Hash] attributes Model attributes in the form of hash
148
- # @return [Object] Returns the model itself
149
- def self.build_from_hash(attributes)
150
- return nil unless attributes.is_a?(Hash)
151
- attributes = attributes.transform_keys(&:to_sym)
152
- transformed_hash = {}
153
- openapi_types.each_pair do |key, type|
154
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
155
- transformed_hash["#{key}"] = nil
156
- elsif type =~ /\AArray<(.*)>/i
157
- # check to ensure the input is an array given that the attribute
158
- # is documented as an array but the input is not
159
- if attributes[attribute_map[key]].is_a?(Array)
160
- transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
161
- end
162
- elsif !attributes[attribute_map[key]].nil?
163
- transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
164
- end
165
- end
166
- new(transformed_hash)
167
- end
168
-
169
- # Returns the object in the form of hash
170
- # @return [Hash] Returns the object in the form of hash
171
- def to_hash
172
- hash = {}
173
- self.class.attribute_map.each_pair do |attr, param|
174
- value = self.send(attr)
175
- if value.nil?
176
- is_nullable = self.class.openapi_nullable.include?(attr)
177
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
178
- end
179
-
180
- hash[param] = _to_hash(value)
181
- end
182
- hash
183
- end
184
-
185
- end
186
-
187
- end
@@ -1,60 +0,0 @@
1
- =begin
2
- #Zernio API
3
-
4
- #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
-
6
- The version of the OpenAPI document: 1.0.1
7
- Contact: support@zernio.com
8
- Generated by: https://openapi-generator.tech
9
- Generator version: 7.19.0
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for Late::SelectGoogleBusinessLocationRequestUserProfile
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe Late::SelectGoogleBusinessLocationRequestUserProfile do
21
- #let(:instance) { Late::SelectGoogleBusinessLocationRequestUserProfile.new }
22
-
23
- describe 'test an instance of SelectGoogleBusinessLocationRequestUserProfile' do
24
- it 'should create an instance of SelectGoogleBusinessLocationRequestUserProfile' do
25
- # uncomment below to test the instance creation
26
- #expect(instance).to be_instance_of(Late::SelectGoogleBusinessLocationRequestUserProfile)
27
- end
28
- end
29
-
30
- describe 'test attribute "id"' do
31
- it 'should work' do
32
- # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
- end
34
- end
35
-
36
- describe 'test attribute "name"' do
37
- it 'should work' do
38
- # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
39
- end
40
- end
41
-
42
- describe 'test attribute "refresh_token"' do
43
- it 'should work' do
44
- # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
45
- end
46
- end
47
-
48
- describe 'test attribute "token_expires_in"' do
49
- it 'should work' do
50
- # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
- end
52
- end
53
-
54
- describe 'test attribute "scope"' do
55
- it 'should work' do
56
- # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
- end
58
- end
59
-
60
- end
Binary file