Class: SquareLegacy::LaborApi

Inherits:
BaseApi
  • Object
show all
Defined in:
lib/square_legacy/api/labor_api.rb

Overview

LaborApi

Instance Attribute Summary

Attributes inherited from BaseApi

#config, #http_call_back

Instance Method Summary collapse

Methods inherited from BaseApi

#initialize, #new_api_call_builder, #new_parameter, #new_request_builder, #new_response_handler, user_agent, user_agent_parameters

Constructor Details

This class inherits a constructor from SquareLegacy::BaseApi

Instance Method Details

#bulk_publish_scheduled_shifts(body:) ⇒ ApiResponse

Publishes 1 - 100 scheduled shifts. This endpoint takes a map of individual publish requests and returns a map of responses. When a scheduled shift is published, Square keeps the draft_shift_details field as is and copies it to the published_shift_details field. The minimum start_at and maximum end_at timestamps of all shifts in a BulkPublishScheduledShifts request must fall within a two-week period. containing the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • body (BulkPublishScheduledShiftsRequest)

    Required parameter: An object

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
# File 'lib/square_legacy/api/labor_api.rb', line 615

def bulk_publish_scheduled_shifts(body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::POST,
                                 '/v2/labor/scheduled-shifts/bulk-publish',
                                 'default')
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#create_break_type(body:) ⇒ ApiResponse

Creates a new BreakType. A BreakType is a template for creating Break objects. You must provide the following values in your request to this endpoint:

  • location_id
  • break_name
  • expected_duration
  • is_paid You can only have three BreakType instances per location. If you attempt to add a fourth BreakType for a location, an INVALID_REQUEST_ERROR "Exceeded limit of 3 breaks per location." is returned. containing the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • body (CreateBreakTypeRequest)

    Required parameter: An object

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/square_legacy/api/labor_api.rb', line 50

def create_break_type(body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::POST,
                                 '/v2/labor/break-types',
                                 'default')
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#create_scheduled_shift(body:) ⇒ ApiResponse

Creates a scheduled shift by providing draft shift details such as job ID, team member assignment, and start and end times. The following draft_shift_details fields are required:

  • location_id
  • job_id
  • start_at
  • end_at containing the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • body (CreateScheduledShiftRequest)

    Required parameter: An object

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
# File 'lib/square_legacy/api/labor_api.rb', line 589

def create_scheduled_shift(body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::POST,
                                 '/v2/labor/scheduled-shifts',
                                 'default')
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#create_shift(body:) ⇒ ApiResponse

Deprecated.

This endpoint is deprecated at Square API version 2025-05-21. Use create_timecard instead.

Creates a new Shift. A Shift represents a complete workday for a single team member. You must provide the following values in your request to this endpoint:

  • location_id
  • team_member_id
  • start_at An attempt to create a new Shift can result in a BAD_REQUEST error when:
  • The status of the new Shift is OPEN and the team member has another shift with an OPEN status.
  • The start_at date is in the future.
  • The start_at or end_at date overlaps another shift for the same team member.
  • The Break instances are set in the request and a break start_at is before the Shift.start_at, a break end_at is after the Shift.end_at, or both. the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • body (CreateShiftRequest)

    Required parameter: An object containing

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
# File 'lib/square_legacy/api/labor_api.rb', line 208

def create_shift(body:)
  warn 'Endpoint create_shift in LaborApi is deprecated'
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::POST,
                                 '/v2/labor/shifts',
                                 'default')
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#create_timecard(body:) ⇒ ApiResponse

Creates a new Timecard. A Timecard represents a complete workday for a single team member. You must provide the following values in your request to this endpoint:

  • location_id
  • team_member_id
  • start_at An attempt to create a new Timecard can result in a BAD_REQUEST error when:
  • The status of the new Timecard is OPEN and the team member has another timecard with an OPEN status.
  • The start_at date is in the future.
  • The start_at or end_at date overlaps another timecard for the same team member.
  • The Break instances are set in the request and a break start_at is before the Timecard.start_at, a break end_at is after the Timecard.end_at, or both. the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • body (CreateTimecardRequest)

    Required parameter: An object containing

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
# File 'lib/square_legacy/api/labor_api.rb', line 458

def create_timecard(body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::POST,
                                 '/v2/labor/timecards',
                                 'default')
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#delete_break_type(id:) ⇒ ApiResponse

Deletes an existing BreakType. A BreakType can be deleted even if it is referenced from a Shift. deleted.

Parameters:

  • id (String)

    Required parameter: The UUID for the BreakType being

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/square_legacy/api/labor_api.rb', line 72

def delete_break_type(id:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::DELETE,
                                 '/v2/labor/break-types/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#delete_shift(id:) ⇒ ApiResponse

Deprecated.

This endpoint is deprecated at Square API version 2025-05-21. Use delete_timecard instead.

Deletes a Shift. deleted.

Parameters:

  • id (String)

    Required parameter: The UUID for the Shift being

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
# File 'lib/square_legacy/api/labor_api.rb', line 267

def delete_shift(id:)
  warn 'Endpoint delete_shift in LaborApi is deprecated'
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::DELETE,
                                 '/v2/labor/shifts/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#delete_timecard(id:) ⇒ ApiResponse

Deletes a Timecard. deleted.

Parameters:

  • id (String)

    Required parameter: The UUID for the Timecard being

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
# File 'lib/square_legacy/api/labor_api.rb', line 513

def delete_timecard(id:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::DELETE,
                                 '/v2/labor/timecards/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#get_break_type(id:) ⇒ ApiResponse

Returns a single BreakType specified by id. retrieved.

Parameters:

  • id (String)

    Required parameter: The UUID for the BreakType being

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/square_legacy/api/labor_api.rb', line 92

def get_break_type(id:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/break-types/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#get_employee_wage(id:) ⇒ ApiResponse

Returns a single EmployeeWage specified by id. being retrieved.

Parameters:

  • id (String)

    Required parameter: The UUID for the EmployeeWage

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/square_legacy/api/labor_api.rb', line 168

def get_employee_wage(id:)
  warn 'Endpoint get_employee_wage in LaborApi is deprecated'
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/employee-wages/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#get_shift(id:) ⇒ ApiResponse

Deprecated.

This endpoint is deprecated at Square API version 2025-05-21. Use retrieve_timecard instead.

Returns a single Shift specified by id. retrieved.

Parameters:

  • id (String)

    Required parameter: The UUID for the Shift being

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
# File 'lib/square_legacy/api/labor_api.rb', line 289

def get_shift(id:)
  warn 'Endpoint get_shift in LaborApi is deprecated'
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/shifts/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#get_team_member_wage(id:) ⇒ ApiResponse

Returns a single TeamMemberWage specified by id. being retrieved.

Parameters:

  • id (String)

    Required parameter: The UUID for the TeamMemberWage

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
# File 'lib/square_legacy/api/labor_api.rb', line 373

def get_team_member_wage(id:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/team-member-wages/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#list_break_types(location_id: nil, limit: nil, cursor: nil) ⇒ ApiResponse

Returns a paginated list of BreakType instances for a business. BreakType results to only those that are associated with the specified location. BreakType results to return per page. The number can range between 1 and 200. The default is 200. BreakType results to fetch.

Parameters:

  • location_id (String) (defaults to: nil)

    Optional parameter: Filter the returned

  • limit (Integer) (defaults to: nil)

    Optional parameter: The maximum number of

  • cursor (String) (defaults to: nil)

    Optional parameter: A pointer to the next page of

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/square_legacy/api/labor_api.rb', line 14

def list_break_types(location_id: nil,
                     limit: nil,
                     cursor: nil)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/break-types',
                                 'default')
               .query_param(new_parameter(location_id, key: 'location_id'))
               .query_param(new_parameter(limit, key: 'limit'))
               .query_param(new_parameter(cursor, key: 'cursor'))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#list_employee_wages(employee_id: nil, limit: nil, cursor: nil) ⇒ ApiResponse

Returns a paginated list of EmployeeWage instances for a business. to only those that are associated with the specified employee. EmployeeWage results to return per page. The number can range between 1 and 200. The default is 200. EmployeeWage results to fetch.

Parameters:

  • employee_id (String) (defaults to: nil)

    Optional parameter: Filter the returned wages

  • limit (Integer) (defaults to: nil)

    Optional parameter: The maximum number of

  • cursor (String) (defaults to: nil)

    Optional parameter: A pointer to the next page of

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/square_legacy/api/labor_api.rb', line 144

def list_employee_wages(employee_id: nil,
                        limit: nil,
                        cursor: nil)
  warn 'Endpoint list_employee_wages in LaborApi is deprecated'
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/employee-wages',
                                 'default')
               .query_param(new_parameter(employee_id, key: 'employee_id'))
               .query_param(new_parameter(limit, key: 'limit'))
               .query_param(new_parameter(cursor, key: 'cursor'))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#list_team_member_wages(team_member_id: nil, limit: nil, cursor: nil) ⇒ ApiResponse

Returns a paginated list of TeamMemberWage instances for a business. wages to only those that are associated with the specified team member. TeamMemberWage results to return per page. The number can range between 1 and 200. The default is 200. EmployeeWage results to fetch.

Parameters:

  • team_member_id (String) (defaults to: nil)

    Optional parameter: Filter the returned

  • limit (Integer) (defaults to: nil)

    Optional parameter: The maximum number of

  • cursor (String) (defaults to: nil)

    Optional parameter: A pointer to the next page of

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
# File 'lib/square_legacy/api/labor_api.rb', line 350

def list_team_member_wages(team_member_id: nil,
                           limit: nil,
                           cursor: nil)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/team-member-wages',
                                 'default')
               .query_param(new_parameter(team_member_id, key: 'team_member_id'))
               .query_param(new_parameter(limit, key: 'limit'))
               .query_param(new_parameter(cursor, key: 'cursor'))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#list_workweek_configs(limit: nil, cursor: nil) ⇒ ApiResponse

Returns a list of WorkweekConfig instances for a business. WorkweekConfigs results to return per page. WorkweekConfig results to fetch.

Parameters:

  • limit (Integer) (defaults to: nil)

    Optional parameter: The maximum number of

  • cursor (String) (defaults to: nil)

    Optional parameter: A pointer to the next page of

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
# File 'lib/square_legacy/api/labor_api.rb', line 395

def list_workweek_configs(limit: nil,
                          cursor: nil)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/workweek-configs',
                                 'default')
               .query_param(new_parameter(limit, key: 'limit'))
               .query_param(new_parameter(cursor, key: 'cursor'))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#publish_scheduled_shift(id:, body:) ⇒ ApiResponse

Publishes a scheduled shift. When a scheduled shift is published, Square keeps the draft_shift_details field as is and copies it to the published_shift_details field. the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • id (String)

    Required parameter: The ID of the scheduled shift to publish.

  • body (PublishScheduledShiftRequest)

    Required parameter: An object containing

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
# File 'lib/square_legacy/api/labor_api.rb', line 706

def publish_scheduled_shift(id:, body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::POST,
                                 '/v2/labor/scheduled-shifts/{id}/publish',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#retrieve_scheduled_shift(id:) ⇒ ApiResponse

Retrieves a scheduled shift by ID.

Parameters:

  • id (String)

    Required parameter: The ID of the scheduled shift to retrieve.

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
# File 'lib/square_legacy/api/labor_api.rb', line 658

def retrieve_scheduled_shift(id:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/scheduled-shifts/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#retrieve_timecard(id:) ⇒ ApiResponse

Returns a single Timecard specified by id. retrieved.

Parameters:

  • id (String)

    Required parameter: The UUID for the Timecard being

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
# File 'lib/square_legacy/api/labor_api.rb', line 533

def retrieve_timecard(id:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/v2/labor/timecards/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#search_scheduled_shifts(body:) ⇒ ApiResponse

Returns a paginated list of scheduled shifts, with optional filter and sort settings. By default, results are sorted by start_at in ascending order. containing the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • body (SearchScheduledShiftsRequest)

    Required parameter: An object

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
# File 'lib/square_legacy/api/labor_api.rb', line 638

def search_scheduled_shifts(body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::POST,
                                 '/v2/labor/scheduled-shifts/search',
                                 'default')
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#search_shifts(body:) ⇒ ApiResponse

Deprecated.

This endpoint is deprecated at Square API version 2025-05-21. Use search_timecards instead.

Returns a paginated list of Shift records for a business. The list to be returned can be filtered by:

  • Location IDs
  • Team member IDs
  • Shift status (OPEN or CLOSED)
  • Shift start
  • Shift end
  • Workday details The list can be sorted by:
  • START_AT
  • END_AT
  • CREATED_AT
  • UPDATED_AT the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • body (SearchShiftsRequest)

    Required parameter: An object containing

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
# File 'lib/square_legacy/api/labor_api.rb', line 244

def search_shifts(body:)
  warn 'Endpoint search_shifts in LaborApi is deprecated'
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::POST,
                                 '/v2/labor/shifts/search',
                                 'default')
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#search_timecards(body:) ⇒ ApiResponse

Returns a paginated list of Timecard records for a business. The list to be returned can be filtered by:

  • Location IDs
  • Team member IDs
  • Timecard status (OPEN or CLOSED)
  • Timecard start
  • Timecard end
  • Workday details The list can be sorted by:
  • START_AT
  • END_AT
  • CREATED_AT
  • UPDATED_AT containing the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • body (SearchTimecardsRequest)

    Required parameter: An object

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
# File 'lib/square_legacy/api/labor_api.rb', line 492

def search_timecards(body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::POST,
                                 '/v2/labor/timecards/search',
                                 'default')
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#update_break_type(id:, body:) ⇒ ApiResponse

Updates an existing BreakType. updated. containing the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • id (String)

    Required parameter: The UUID for the BreakType being

  • body (UpdateBreakTypeRequest)

    Required parameter: An object

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/square_legacy/api/labor_api.rb', line 115

def update_break_type(id:,
                      body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/v2/labor/break-types/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#update_scheduled_shift(id:, body:) ⇒ ApiResponse

Updates the draft shift details for a scheduled shift. This endpoint supports sparse updates, so only new, changed, or removed fields are required in the request. You must publish the shift to make updates public. the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • id (String)

    Required parameter: The ID of the scheduled shift to update.

  • body (UpdateScheduledShiftRequest)

    Required parameter: An object containing

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
# File 'lib/square_legacy/api/labor_api.rb', line 681

def update_scheduled_shift(id:, body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/v2/labor/scheduled-shifts/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#update_shift(id:, body:) ⇒ ApiResponse

Deprecated.

This endpoint is deprecated at Square API version 2025-05-21. Use update_timecard instead.

Updates an existing Shift. When adding a Break to a Shift, any earlier Break instances in the Shift have the end_at property set to a valid RFC-3339 datetime string. When closing a Shift, all Break instances in the Shift must be complete with end_at set on each Break. updated. the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • id (String)

    Required parameter: The ID of the object being

  • body (UpdateShiftRequest)

    Required parameter: An object containing

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
# File 'lib/square_legacy/api/labor_api.rb', line 320

def update_shift(id:,
                 body:)
  warn 'Endpoint update_shift in LaborApi is deprecated'
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/v2/labor/shifts/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#update_timecard(id:, body:) ⇒ ApiResponse

Updates an existing Timecard. When adding a Break to a Timecard, any earlier Break instances in the Timecard have the end_at property set to a valid RFC-3339 datetime string. When closing a Timecard, all Break instances in the Timecard must be complete with end_at set on each Break. the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • id (String)

    Required parameter: The ID of the Timecard to update.

  • body (UpdateTimecardRequest)

    Required parameter: An object containing

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
# File 'lib/square_legacy/api/labor_api.rb', line 559

def update_timecard(id:, body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/v2/labor/timecards/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end

#update_workweek_config(id:, body:) ⇒ ApiResponse

Updates a WorkweekConfig. object being updated. containing the fields to POST for the request. See the corresponding object definition for field details.

Parameters:

  • id (String)

    Required parameter: The UUID for the WorkweekConfig

  • body (UpdateWorkweekConfigRequest)

    Required parameter: An object

Returns:

  • (ApiResponse)

    the complete http response with raw body and status code.



419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
# File 'lib/square_legacy/api/labor_api.rb', line 419

def update_workweek_config(id:,
                           body:)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/v2/labor/workweek-configs/{id}',
                                 'default')
               .template_param(new_parameter(id, key: 'id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(Single.new('global')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:json_deserialize))
                .is_api_response(true)
                .convertor(ApiResponse.method(:create)))
    .execute
end