kombo 1.2.8 → 1.2.9
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 +4 -4
- data/lib/kombo/ats.rb +322 -0
- data/lib/kombo/connect.rb +2 -1
- data/lib/kombo/general.rb +11 -1
- data/lib/kombo/hris.rb +322 -0
- data/lib/kombo/models/operations/getatsattachments_request.rb +74 -0
- data/lib/kombo/models/operations/getatsattachments_request.rbi +31 -0
- data/lib/kombo/models/operations/getatsattachments_response.rb +56 -0
- data/lib/kombo/models/operations/getatsattachments_response.rbi +19 -0
- data/lib/kombo/models/operations/getatsscorecards_request.rb +83 -0
- data/lib/kombo/models/operations/getatsscorecards_request.rbi +31 -0
- data/lib/kombo/models/operations/getatsscorecards_response.rb +56 -0
- data/lib/kombo/models/operations/getatsscorecards_response.rbi +19 -0
- data/lib/kombo/models/operations/gethrispayruns_request.rb +70 -0
- data/lib/kombo/models/operations/gethrispayruns_request.rbi +29 -0
- data/lib/kombo/models/operations/gethrispayruns_response.rb +56 -0
- data/lib/kombo/models/operations/gethrispayruns_response.rbi +19 -0
- data/lib/kombo/models/operations/gethrispayslips_request.rb +87 -0
- data/lib/kombo/models/operations/gethrispayslips_request.rbi +33 -0
- data/lib/kombo/models/operations/gethrispayslips_response.rb +56 -0
- data/lib/kombo/models/operations/gethrispayslips_response.rbi +19 -0
- data/lib/kombo/models/operations.rb +8 -0
- data/lib/kombo/models/shared/amount.rb +36 -0
- data/lib/kombo/models/shared/amount.rbi +15 -0
- data/lib/kombo/models/shared/change.rb +19 -0
- data/lib/kombo/models/shared/change.rbi +11 -0
- data/lib/kombo/models/shared/content_ref.rb +43 -0
- data/lib/kombo/models/shared/content_ref.rbi +17 -0
- data/lib/kombo/models/shared/employee.rb +57 -0
- data/lib/kombo/models/shared/employee.rbi +25 -0
- data/lib/kombo/models/shared/format_multiselect.rb +2 -2
- data/lib/kombo/models/shared/format_singleselect.rb +2 -2
- data/lib/kombo/models/shared/getatsattachmentspositiveresponse.rb +39 -0
- data/lib/kombo/models/shared/getatsattachmentspositiveresponse.rbi +15 -0
- data/lib/kombo/models/shared/getatsattachmentspositiveresponse_data.rb +36 -0
- data/lib/kombo/models/shared/getatsattachmentspositiveresponse_data.rbi +15 -0
- data/lib/kombo/models/shared/getatsattachmentspositiveresponse_result.rb +76 -0
- data/lib/kombo/models/shared/getatsattachmentspositiveresponse_result.rbi +33 -0
- data/lib/kombo/models/shared/getatsattachmentspositiveresponse_type.rb +20 -0
- data/lib/kombo/models/shared/getatsattachmentspositiveresponse_type.rbi +11 -0
- data/lib/kombo/models/shared/{option_1.rb → getatsjobspositiveresponse_option_1.rb} +1 -1
- data/lib/kombo/models/shared/{option_2.rbi → getatsjobspositiveresponse_option_1.rbi} +2 -2
- data/lib/kombo/models/shared/{option_2.rb → getatsjobspositiveresponse_option_2.rb} +1 -1
- data/lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rbi +17 -0
- data/lib/kombo/models/shared/{author.rb → getatsnotespositiveresponse_author.rb} +1 -1
- data/lib/kombo/models/shared/{author.rbi → getatsnotespositiveresponse_author.rbi} +2 -2
- data/lib/kombo/models/shared/getatsnotespositiveresponse_result.rb +2 -2
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse.rb +39 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse.rbi +15 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rb +36 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rbi +15 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rb +36 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rbi +15 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rb +48 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rbi +21 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rb +36 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rbi +15 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rb +36 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rbi +15 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rb +36 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rbi +15 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rb +80 -0
- data/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rbi +35 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse.rb +39 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rb +36 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rb +36 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rb +36 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rb +36 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rb +62 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rbi +27 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rb +40 -0
- data/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rbi +17 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse.rb +39 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rb +36 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rb +36 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rb +36 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rb +36 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rbi +15 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rb +62 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rbi +27 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rb +40 -0
- data/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rbi +17 -0
- data/lib/kombo/models/shared/integration.rb +44 -0
- data/lib/kombo/models/shared/integration.rbi +19 -0
- data/lib/kombo/models/shared/integration_tool.rb +4 -0
- data/lib/kombo/models/shared/issue.rb +56 -0
- data/lib/kombo/models/shared/issue.rbi +25 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rb +40 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rbi +17 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rb +21 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rbi +11 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rb +40 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rbi +17 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rb +40 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rbi +17 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rb +19 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rbi +11 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rb +18 -0
- data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rbi +11 -0
- data/lib/kombo/models/shared/line_item.rb +44 -0
- data/lib/kombo/models/shared/{option_1.rbi → line_item.rbi} +6 -4
- data/lib/kombo/models/shared/name.rb +6 -0
- data/lib/kombo/models/shared/pay_run.rb +48 -0
- data/lib/kombo/models/shared/pay_run.rbi +21 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_afas.rb +32 -0
- data/lib/kombo/models/shared/{afas.rbi → postatscandidatesrequestbody_afas.rbi} +2 -2
- data/lib/kombo/models/shared/postatscandidatesrequestbody_avature.rb +6 -2
- data/lib/kombo/models/shared/postatscandidatesrequestbody_avature.rbi +2 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_custom_field.rb +48 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_custom_field.rbi +21 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_recruitcrm.rb +32 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_recruitcrm.rbi +13 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rb +10 -2
- data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rbi +4 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_afas.rb +32 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_afas.rbi +13 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_avature.rb +6 -2
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_avature.rbi +2 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_custom_field.rb +48 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_custom_field.rbi +21 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_recruitcrm.rb +32 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_recruitcrm.rbi +13 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rb +10 -2
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rbi +4 -0
- data/lib/kombo/models/shared/postconnectcreatelinkpositiveresponse_data.rb +6 -2
- data/lib/kombo/models/shared/postconnectcreatelinkpositiveresponse_data.rbi +2 -0
- data/lib/kombo/models/shared/postconnectcreatelinkrequestbody.rb +6 -2
- data/lib/kombo/models/shared/postconnectcreatelinkrequestbody.rbi +2 -0
- data/lib/kombo/models/shared/{afas.rb → posthrisemployeesemployeeiddocumentsrequestbody_afas.rb} +1 -1
- data/lib/kombo/models/shared/posthrisemployeesemployeeiddocumentsrequestbody_afas.rbi +13 -0
- data/lib/kombo/models/shared/posthrisemployeesemployeeiddocumentsrequestbody_remote_fields.rb +2 -2
- data/lib/kombo/models/shared/response.rb +27 -0
- data/lib/kombo/models/shared/response.rbi +11 -0
- data/lib/kombo/models/shared/result_boolean.rb +55 -0
- data/lib/kombo/models/shared/result_boolean.rbi +23 -0
- data/lib/kombo/models/shared/result_date.rb +55 -0
- data/lib/kombo/models/shared/result_date.rbi +23 -0
- data/lib/kombo/models/shared/result_multiselect.rb +59 -0
- data/lib/kombo/models/shared/result_multiselect.rbi +25 -0
- data/lib/kombo/models/shared/result_number.rb +55 -0
- data/lib/kombo/models/shared/result_number.rbi +23 -0
- data/lib/kombo/models/shared/result_singleselect.rb +59 -0
- data/lib/kombo/models/shared/result_singleselect.rbi +25 -0
- data/lib/kombo/models/shared/result_text.rb +55 -0
- data/lib/kombo/models/shared/result_text.rbi +23 -0
- data/lib/kombo/models/shared.rb +57 -4
- data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rb +36 -0
- data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rbi +15 -0
- data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rb +40 -0
- data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rbi +17 -0
- data/lib/kombo/models/webhooks.rb +2 -0
- data/lib/kombo/sdkconfiguration.rb +5 -3
- data/lib/kombo/utils/utils.rb +6 -2
- metadata +136 -10
data/lib/kombo/hris.rb
CHANGED
|
@@ -2924,6 +2924,328 @@ module Kombo
|
|
|
2924
2924
|
end
|
|
2925
2925
|
|
|
2926
2926
|
|
|
2927
|
+
return response
|
|
2928
|
+
else
|
|
2929
|
+
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
2930
|
+
end
|
|
2931
|
+
else
|
|
2932
|
+
if Utils.match_content_type(content_type, 'application/json')
|
|
2933
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
2934
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
2935
|
+
hook_ctx: hook_ctx
|
|
2936
|
+
),
|
|
2937
|
+
response: http_response
|
|
2938
|
+
)
|
|
2939
|
+
response_data = http_response.env.response_body
|
|
2940
|
+
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboHrisError)
|
|
2941
|
+
obj.raw_response = http_response
|
|
2942
|
+
raise obj
|
|
2943
|
+
else
|
|
2944
|
+
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
2945
|
+
end
|
|
2946
|
+
end
|
|
2947
|
+
end
|
|
2948
|
+
|
|
2949
|
+
|
|
2950
|
+
sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), legal_entity_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetHrisPayRunsResponse) }
|
|
2951
|
+
def get_hris_pay_runs(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, legal_entity_ids: nil, timeout_ms: nil, http_headers: nil)
|
|
2952
|
+
# get_hris_pay_runs - Pay Runs
|
|
2953
|
+
# Retrieve all pay runs for all legal entities, across all time.
|
|
2954
|
+
#
|
|
2955
|
+
# A pay run represents one payroll cycle for a legal entity, covering a single pay period and grouping the payslips paid out through it. Use this endpoint to reconcile payroll periods and read the totals paid out across each run. Filter by `legal_entity_ids` to scope the results to specific legal entities.
|
|
2956
|
+
#
|
|
2957
|
+
# Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`
|
|
2958
|
+
request = Models::Operations::GetHrisPayRunsRequest.new(
|
|
2959
|
+
integration_id: integration_id,
|
|
2960
|
+
cursor: cursor,
|
|
2961
|
+
page_size: page_size,
|
|
2962
|
+
updated_after: updated_after,
|
|
2963
|
+
include_deleted: include_deleted,
|
|
2964
|
+
ignore_unsupported_filters: ignore_unsupported_filters,
|
|
2965
|
+
ids: ids,
|
|
2966
|
+
remote_ids: remote_ids,
|
|
2967
|
+
legal_entity_ids: legal_entity_ids
|
|
2968
|
+
)
|
|
2969
|
+
url, params = @sdk_configuration.get_server_details
|
|
2970
|
+
base_url = Utils.template_url(url, params)
|
|
2971
|
+
url = "#{base_url}/hris/pay-runs"
|
|
2972
|
+
headers = Utils.get_headers(request, @sdk_configuration.globals)
|
|
2973
|
+
headers = T.cast(headers, T::Hash[String, String])
|
|
2974
|
+
query_params = Utils.get_query_params(Models::Operations::GetHrisPayRunsRequest, request, nil, @sdk_configuration.globals)
|
|
2975
|
+
headers['Accept'] = 'application/json'
|
|
2976
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
|
2977
|
+
|
|
2978
|
+
security = @sdk_configuration.security_source&.call
|
|
2979
|
+
|
|
2980
|
+
timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
|
|
2981
|
+
timeout ||= @sdk_configuration.timeout
|
|
2982
|
+
|
|
2983
|
+
|
|
2984
|
+
connection = @sdk_configuration.client
|
|
2985
|
+
|
|
2986
|
+
hook_ctx = SDKHooks::HookContext.new(
|
|
2987
|
+
config: @sdk_configuration,
|
|
2988
|
+
base_url: base_url,
|
|
2989
|
+
oauth2_scopes: nil,
|
|
2990
|
+
operation_id: 'GetHrisPayRuns',
|
|
2991
|
+
security_source: @sdk_configuration.security_source
|
|
2992
|
+
)
|
|
2993
|
+
|
|
2994
|
+
error = T.let(nil, T.nilable(StandardError))
|
|
2995
|
+
http_response = T.let(nil, T.nilable(Faraday::Response))
|
|
2996
|
+
|
|
2997
|
+
|
|
2998
|
+
begin
|
|
2999
|
+
http_response = T.must(connection).get(url) do |req|
|
|
3000
|
+
req.headers.merge!(headers)
|
|
3001
|
+
req.options.timeout = timeout unless timeout.nil?
|
|
3002
|
+
req.params = query_params
|
|
3003
|
+
Utils.configure_request_security(req, security)
|
|
3004
|
+
http_headers&.each do |key, value|
|
|
3005
|
+
req.headers[key.to_s] = value
|
|
3006
|
+
end
|
|
3007
|
+
|
|
3008
|
+
@sdk_configuration.hooks.before_request(
|
|
3009
|
+
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
|
|
3010
|
+
hook_ctx: hook_ctx
|
|
3011
|
+
),
|
|
3012
|
+
request: req
|
|
3013
|
+
)
|
|
3014
|
+
end
|
|
3015
|
+
rescue StandardError => e
|
|
3016
|
+
error = e
|
|
3017
|
+
ensure
|
|
3018
|
+
if http_response.nil? || Utils.error_status?(http_response.status)
|
|
3019
|
+
http_response = @sdk_configuration.hooks.after_error(
|
|
3020
|
+
error: error,
|
|
3021
|
+
hook_ctx: SDKHooks::AfterErrorHookContext.new(
|
|
3022
|
+
hook_ctx: hook_ctx
|
|
3023
|
+
),
|
|
3024
|
+
response: http_response
|
|
3025
|
+
)
|
|
3026
|
+
else
|
|
3027
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
3028
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
3029
|
+
hook_ctx: hook_ctx
|
|
3030
|
+
),
|
|
3031
|
+
response: http_response
|
|
3032
|
+
)
|
|
3033
|
+
end
|
|
3034
|
+
|
|
3035
|
+
if http_response.nil?
|
|
3036
|
+
raise error if !error.nil?
|
|
3037
|
+
raise 'no response'
|
|
3038
|
+
end
|
|
3039
|
+
end
|
|
3040
|
+
|
|
3041
|
+
content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
|
|
3042
|
+
if Utils.match_status_code(http_response.status, ['200'])
|
|
3043
|
+
if Utils.match_content_type(content_type, 'application/json')
|
|
3044
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
3045
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
3046
|
+
hook_ctx: hook_ctx
|
|
3047
|
+
),
|
|
3048
|
+
response: http_response
|
|
3049
|
+
)
|
|
3050
|
+
response_data = http_response.env.response_body
|
|
3051
|
+
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetHrisPayRunsPositiveResponse)
|
|
3052
|
+
response = Models::Operations::GetHrisPayRunsResponse.new(
|
|
3053
|
+
status_code: http_response.status,
|
|
3054
|
+
content_type: content_type,
|
|
3055
|
+
raw_response: http_response,
|
|
3056
|
+
get_hris_pay_runs_positive_response: T.unsafe(obj)
|
|
3057
|
+
)
|
|
3058
|
+
sdk = self
|
|
3059
|
+
|
|
3060
|
+
response.next_page = proc do
|
|
3061
|
+
next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search
|
|
3062
|
+
if next_cursor.nil?
|
|
3063
|
+
next nil
|
|
3064
|
+
else
|
|
3065
|
+
next_cursor = next_cursor[0]
|
|
3066
|
+
if next_cursor.nil?
|
|
3067
|
+
next nil
|
|
3068
|
+
end
|
|
3069
|
+
end
|
|
3070
|
+
|
|
3071
|
+
sdk.get_hris_pay_runs(
|
|
3072
|
+
integration_id: request.integration_id,
|
|
3073
|
+
cursor: next_cursor,
|
|
3074
|
+
page_size: request.page_size,
|
|
3075
|
+
updated_after: request.updated_after,
|
|
3076
|
+
include_deleted: request.include_deleted,
|
|
3077
|
+
ignore_unsupported_filters: request.ignore_unsupported_filters,
|
|
3078
|
+
ids: request.ids,
|
|
3079
|
+
remote_ids: request.remote_ids,
|
|
3080
|
+
legal_entity_ids: request.legal_entity_ids,
|
|
3081
|
+
http_headers: http_headers
|
|
3082
|
+
)
|
|
3083
|
+
end
|
|
3084
|
+
|
|
3085
|
+
|
|
3086
|
+
return response
|
|
3087
|
+
else
|
|
3088
|
+
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
3089
|
+
end
|
|
3090
|
+
else
|
|
3091
|
+
if Utils.match_content_type(content_type, 'application/json')
|
|
3092
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
3093
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
3094
|
+
hook_ctx: hook_ctx
|
|
3095
|
+
),
|
|
3096
|
+
response: http_response
|
|
3097
|
+
)
|
|
3098
|
+
response_data = http_response.env.response_body
|
|
3099
|
+
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboHrisError)
|
|
3100
|
+
obj.raw_response = http_response
|
|
3101
|
+
raise obj
|
|
3102
|
+
else
|
|
3103
|
+
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
3104
|
+
end
|
|
3105
|
+
end
|
|
3106
|
+
end
|
|
3107
|
+
|
|
3108
|
+
|
|
3109
|
+
sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), legal_entity_ids: T.nilable(T::Array[::String]), employee_ids: T.nilable(T::Array[::String]), payrun_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetHrisPayslipsResponse) }
|
|
3110
|
+
def get_hris_payslips(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, legal_entity_ids: nil, employee_ids: nil, payrun_ids: nil, timeout_ms: nil, http_headers: nil)
|
|
3111
|
+
# get_hris_payslips - Payslips
|
|
3112
|
+
# Retrieve all payslips for all employees, across all time.
|
|
3113
|
+
#
|
|
3114
|
+
# A payslip is the individual pay statement an employee receives for one pay run, detailing what they were paid. Each payslip embeds the `employee` it belongs to and the `pay_run` it was paid out through, its `totals`, and the `line_items` that make it up (earnings, deductions, and contributions). Filter by `employee_ids`, `payrun_ids`, or `legal_entity_ids` to narrow the results.
|
|
3115
|
+
#
|
|
3116
|
+
# Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`
|
|
3117
|
+
request = Models::Operations::GetHrisPayslipsRequest.new(
|
|
3118
|
+
integration_id: integration_id,
|
|
3119
|
+
cursor: cursor,
|
|
3120
|
+
page_size: page_size,
|
|
3121
|
+
updated_after: updated_after,
|
|
3122
|
+
include_deleted: include_deleted,
|
|
3123
|
+
ignore_unsupported_filters: ignore_unsupported_filters,
|
|
3124
|
+
ids: ids,
|
|
3125
|
+
remote_ids: remote_ids,
|
|
3126
|
+
legal_entity_ids: legal_entity_ids,
|
|
3127
|
+
employee_ids: employee_ids,
|
|
3128
|
+
payrun_ids: payrun_ids
|
|
3129
|
+
)
|
|
3130
|
+
url, params = @sdk_configuration.get_server_details
|
|
3131
|
+
base_url = Utils.template_url(url, params)
|
|
3132
|
+
url = "#{base_url}/hris/payslips"
|
|
3133
|
+
headers = Utils.get_headers(request, @sdk_configuration.globals)
|
|
3134
|
+
headers = T.cast(headers, T::Hash[String, String])
|
|
3135
|
+
query_params = Utils.get_query_params(Models::Operations::GetHrisPayslipsRequest, request, nil, @sdk_configuration.globals)
|
|
3136
|
+
headers['Accept'] = 'application/json'
|
|
3137
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
|
3138
|
+
|
|
3139
|
+
security = @sdk_configuration.security_source&.call
|
|
3140
|
+
|
|
3141
|
+
timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
|
|
3142
|
+
timeout ||= @sdk_configuration.timeout
|
|
3143
|
+
|
|
3144
|
+
|
|
3145
|
+
connection = @sdk_configuration.client
|
|
3146
|
+
|
|
3147
|
+
hook_ctx = SDKHooks::HookContext.new(
|
|
3148
|
+
config: @sdk_configuration,
|
|
3149
|
+
base_url: base_url,
|
|
3150
|
+
oauth2_scopes: nil,
|
|
3151
|
+
operation_id: 'GetHrisPayslips',
|
|
3152
|
+
security_source: @sdk_configuration.security_source
|
|
3153
|
+
)
|
|
3154
|
+
|
|
3155
|
+
error = T.let(nil, T.nilable(StandardError))
|
|
3156
|
+
http_response = T.let(nil, T.nilable(Faraday::Response))
|
|
3157
|
+
|
|
3158
|
+
|
|
3159
|
+
begin
|
|
3160
|
+
http_response = T.must(connection).get(url) do |req|
|
|
3161
|
+
req.headers.merge!(headers)
|
|
3162
|
+
req.options.timeout = timeout unless timeout.nil?
|
|
3163
|
+
req.params = query_params
|
|
3164
|
+
Utils.configure_request_security(req, security)
|
|
3165
|
+
http_headers&.each do |key, value|
|
|
3166
|
+
req.headers[key.to_s] = value
|
|
3167
|
+
end
|
|
3168
|
+
|
|
3169
|
+
@sdk_configuration.hooks.before_request(
|
|
3170
|
+
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
|
|
3171
|
+
hook_ctx: hook_ctx
|
|
3172
|
+
),
|
|
3173
|
+
request: req
|
|
3174
|
+
)
|
|
3175
|
+
end
|
|
3176
|
+
rescue StandardError => e
|
|
3177
|
+
error = e
|
|
3178
|
+
ensure
|
|
3179
|
+
if http_response.nil? || Utils.error_status?(http_response.status)
|
|
3180
|
+
http_response = @sdk_configuration.hooks.after_error(
|
|
3181
|
+
error: error,
|
|
3182
|
+
hook_ctx: SDKHooks::AfterErrorHookContext.new(
|
|
3183
|
+
hook_ctx: hook_ctx
|
|
3184
|
+
),
|
|
3185
|
+
response: http_response
|
|
3186
|
+
)
|
|
3187
|
+
else
|
|
3188
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
3189
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
3190
|
+
hook_ctx: hook_ctx
|
|
3191
|
+
),
|
|
3192
|
+
response: http_response
|
|
3193
|
+
)
|
|
3194
|
+
end
|
|
3195
|
+
|
|
3196
|
+
if http_response.nil?
|
|
3197
|
+
raise error if !error.nil?
|
|
3198
|
+
raise 'no response'
|
|
3199
|
+
end
|
|
3200
|
+
end
|
|
3201
|
+
|
|
3202
|
+
content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
|
|
3203
|
+
if Utils.match_status_code(http_response.status, ['200'])
|
|
3204
|
+
if Utils.match_content_type(content_type, 'application/json')
|
|
3205
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
3206
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
3207
|
+
hook_ctx: hook_ctx
|
|
3208
|
+
),
|
|
3209
|
+
response: http_response
|
|
3210
|
+
)
|
|
3211
|
+
response_data = http_response.env.response_body
|
|
3212
|
+
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetHrisPayslipsPositiveResponse)
|
|
3213
|
+
response = Models::Operations::GetHrisPayslipsResponse.new(
|
|
3214
|
+
status_code: http_response.status,
|
|
3215
|
+
content_type: content_type,
|
|
3216
|
+
raw_response: http_response,
|
|
3217
|
+
get_hris_payslips_positive_response: T.unsafe(obj)
|
|
3218
|
+
)
|
|
3219
|
+
sdk = self
|
|
3220
|
+
|
|
3221
|
+
response.next_page = proc do
|
|
3222
|
+
next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search
|
|
3223
|
+
if next_cursor.nil?
|
|
3224
|
+
next nil
|
|
3225
|
+
else
|
|
3226
|
+
next_cursor = next_cursor[0]
|
|
3227
|
+
if next_cursor.nil?
|
|
3228
|
+
next nil
|
|
3229
|
+
end
|
|
3230
|
+
end
|
|
3231
|
+
|
|
3232
|
+
sdk.get_hris_payslips(
|
|
3233
|
+
integration_id: request.integration_id,
|
|
3234
|
+
cursor: next_cursor,
|
|
3235
|
+
page_size: request.page_size,
|
|
3236
|
+
updated_after: request.updated_after,
|
|
3237
|
+
include_deleted: request.include_deleted,
|
|
3238
|
+
ignore_unsupported_filters: request.ignore_unsupported_filters,
|
|
3239
|
+
ids: request.ids,
|
|
3240
|
+
remote_ids: request.remote_ids,
|
|
3241
|
+
legal_entity_ids: request.legal_entity_ids,
|
|
3242
|
+
employee_ids: request.employee_ids,
|
|
3243
|
+
payrun_ids: request.payrun_ids,
|
|
3244
|
+
http_headers: http_headers
|
|
3245
|
+
)
|
|
3246
|
+
end
|
|
3247
|
+
|
|
3248
|
+
|
|
2927
3249
|
return response
|
|
2928
3250
|
else
|
|
2929
3251
|
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
# typed: true
|
|
4
|
+
# frozen_string_literal: true
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Kombo
|
|
8
|
+
module Models
|
|
9
|
+
module Operations
|
|
10
|
+
|
|
11
|
+
class GetAtsAttachmentsRequest
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# ID of the integration you want to interact with.
|
|
16
|
+
field :integration_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Integration-Id', 'style': 'simple', 'explode': false } }
|
|
17
|
+
# An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.
|
|
18
|
+
field :cursor, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'cursor', 'style': 'form', 'explode': true } }
|
|
19
|
+
# Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.
|
|
20
|
+
#
|
|
21
|
+
# If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
|
|
22
|
+
#
|
|
23
|
+
# For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
|
|
24
|
+
#
|
|
25
|
+
# For this endpoint, only changes to the returned record itself are considered.
|
|
26
|
+
field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
|
|
27
|
+
# Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
|
|
28
|
+
field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
|
|
29
|
+
# Filter by a comma-separated list of remote IDs.
|
|
30
|
+
field :remote_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'remote_ids', 'style': 'form', 'explode': false } }
|
|
31
|
+
# Filter by a comma-separated list of candidate IDs. Prefer filtering by `candidate_ids` when you want every file a candidate has, across all their applications.
|
|
32
|
+
field :candidate_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'candidate_ids', 'style': 'form', 'explode': false } }
|
|
33
|
+
# Filter by a comma-separated list of application IDs. We will only return attachments that the ATS filed under _any_ of these applications, which excludes the files that hang off the candidate directly.
|
|
34
|
+
field :application_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'application_ids', 'style': 'form', 'explode': false } }
|
|
35
|
+
# The number of results to return per page. Maximum is 250.
|
|
36
|
+
field :page_size, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page_size', 'style': 'form', 'explode': true } }
|
|
37
|
+
# By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.
|
|
38
|
+
field :include_deleted, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'include_deleted', 'style': 'form', 'explode': true } }
|
|
39
|
+
# When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.
|
|
40
|
+
field :ignore_unsupported_filters, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'ignore_unsupported_filters', 'style': 'form', 'explode': true } }
|
|
41
|
+
|
|
42
|
+
sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), updated_after: T.nilable(::DateTime), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), candidate_ids: T.nilable(T::Array[::String]), application_ids: T.nilable(T::Array[::String]), page_size: T.nilable(::Integer), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean)).void }
|
|
43
|
+
def initialize(integration_id: nil, cursor: nil, updated_after: nil, ids: nil, remote_ids: nil, candidate_ids: nil, application_ids: nil, page_size: 100, include_deleted: false, ignore_unsupported_filters: false)
|
|
44
|
+
@integration_id = integration_id
|
|
45
|
+
@cursor = cursor
|
|
46
|
+
@updated_after = updated_after
|
|
47
|
+
@ids = ids
|
|
48
|
+
@remote_ids = remote_ids
|
|
49
|
+
@candidate_ids = candidate_ids
|
|
50
|
+
@application_ids = application_ids
|
|
51
|
+
@page_size = page_size
|
|
52
|
+
@include_deleted = include_deleted
|
|
53
|
+
@ignore_unsupported_filters = ignore_unsupported_filters
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
57
|
+
def ==(other)
|
|
58
|
+
return false unless other.is_a? self.class
|
|
59
|
+
return false unless @integration_id == other.integration_id
|
|
60
|
+
return false unless @cursor == other.cursor
|
|
61
|
+
return false unless @updated_after == other.updated_after
|
|
62
|
+
return false unless @ids == other.ids
|
|
63
|
+
return false unless @remote_ids == other.remote_ids
|
|
64
|
+
return false unless @candidate_ids == other.candidate_ids
|
|
65
|
+
return false unless @application_ids == other.application_ids
|
|
66
|
+
return false unless @page_size == other.page_size
|
|
67
|
+
return false unless @include_deleted == other.include_deleted
|
|
68
|
+
return false unless @ignore_unsupported_filters == other.ignore_unsupported_filters
|
|
69
|
+
true
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Kombo::Models::Operations::GetAtsAttachmentsRequest
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Kombo::Models::Operations::GetAtsAttachmentsRequest
|
|
11
|
+
def integration_id(); end
|
|
12
|
+
def integration_id=(str_); end
|
|
13
|
+
def cursor(); end
|
|
14
|
+
def cursor=(str_); end
|
|
15
|
+
def updated_after(); end
|
|
16
|
+
def updated_after=(str_); end
|
|
17
|
+
def ids(); end
|
|
18
|
+
def ids=(str_); end
|
|
19
|
+
def remote_ids(); end
|
|
20
|
+
def remote_ids=(str_); end
|
|
21
|
+
def candidate_ids(); end
|
|
22
|
+
def candidate_ids=(str_); end
|
|
23
|
+
def application_ids(); end
|
|
24
|
+
def application_ids=(str_); end
|
|
25
|
+
def page_size(); end
|
|
26
|
+
def page_size=(str_); end
|
|
27
|
+
def include_deleted(); end
|
|
28
|
+
def include_deleted=(str_); end
|
|
29
|
+
def ignore_unsupported_filters(); end
|
|
30
|
+
def ignore_unsupported_filters=(str_); end
|
|
31
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
# typed: true
|
|
4
|
+
# frozen_string_literal: true
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Kombo
|
|
8
|
+
module Models
|
|
9
|
+
module Operations
|
|
10
|
+
|
|
11
|
+
class GetAtsAttachmentsResponse
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
sig { returns(T.proc.returns(T.nilable(GetAtsAttachmentsResponse))) }
|
|
15
|
+
attr_accessor :next_page
|
|
16
|
+
|
|
17
|
+
# HTTP response content type for this operation
|
|
18
|
+
field :content_type, ::String
|
|
19
|
+
# HTTP response status code for this operation
|
|
20
|
+
field :status_code, ::Integer
|
|
21
|
+
# Raw HTTP response; suitable for custom response parsing
|
|
22
|
+
field :raw_response, ::Faraday::Response
|
|
23
|
+
# GET /ats/attachments Positive response
|
|
24
|
+
field :get_ats_attachments_positive_response, Crystalline::Nilable.new(Models::Shared::GetAtsAttachmentsPositiveResponse)
|
|
25
|
+
|
|
26
|
+
sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, get_ats_attachments_positive_response: T.nilable(Models::Shared::GetAtsAttachmentsPositiveResponse)).void }
|
|
27
|
+
def initialize(content_type:, status_code:, raw_response:, get_ats_attachments_positive_response: nil)
|
|
28
|
+
@content_type = content_type
|
|
29
|
+
@status_code = status_code
|
|
30
|
+
@raw_response = raw_response
|
|
31
|
+
@get_ats_attachments_positive_response = get_ats_attachments_positive_response
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
35
|
+
def ==(other)
|
|
36
|
+
return false unless other.is_a? self.class
|
|
37
|
+
return false unless @content_type == other.content_type
|
|
38
|
+
return false unless @status_code == other.status_code
|
|
39
|
+
return false unless @raw_response == other.raw_response
|
|
40
|
+
return false unless @get_ats_attachments_positive_response == other.get_ats_attachments_positive_response
|
|
41
|
+
true
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def each
|
|
45
|
+
page = self
|
|
46
|
+
loop do
|
|
47
|
+
yield page
|
|
48
|
+
next_page = page.next_page.call if page.next_page
|
|
49
|
+
break if next_page.nil?
|
|
50
|
+
page = T.must(next_page)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Kombo::Models::Operations::GetAtsAttachmentsResponse
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Kombo::Models::Operations::GetAtsAttachmentsResponse
|
|
11
|
+
def content_type(); end
|
|
12
|
+
def content_type=(str_); end
|
|
13
|
+
def status_code(); end
|
|
14
|
+
def status_code=(str_); end
|
|
15
|
+
def raw_response(); end
|
|
16
|
+
def raw_response=(str_); end
|
|
17
|
+
def get_ats_attachments_positive_response(); end
|
|
18
|
+
def get_ats_attachments_positive_response=(str_); end
|
|
19
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
# typed: true
|
|
4
|
+
# frozen_string_literal: true
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Kombo
|
|
8
|
+
module Models
|
|
9
|
+
module Operations
|
|
10
|
+
|
|
11
|
+
class GetAtsScorecardsRequest
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# ID of the integration you want to interact with.
|
|
16
|
+
field :integration_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Integration-Id', 'style': 'simple', 'explode': false } }
|
|
17
|
+
# An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.
|
|
18
|
+
field :cursor, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'cursor', 'style': 'form', 'explode': true } }
|
|
19
|
+
# Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.
|
|
20
|
+
#
|
|
21
|
+
# If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
|
|
22
|
+
#
|
|
23
|
+
# For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
|
|
24
|
+
#
|
|
25
|
+
# For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
|
|
26
|
+
#
|
|
27
|
+
# | Path | Added/Removed | Linked Record |
|
|
28
|
+
# | --- | --- | --- |
|
|
29
|
+
# | `author` | ✗ No | ✗ No |
|
|
30
|
+
# | `application` | ✗ No | ✗ No |
|
|
31
|
+
# | `candidate` | ✗ No | ✗ No |
|
|
32
|
+
# | `interview` | ✗ No | ✗ No |
|
|
33
|
+
#
|
|
34
|
+
# _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
|
|
35
|
+
field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
|
|
36
|
+
# Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
|
|
37
|
+
field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
|
|
38
|
+
# Filter by a comma-separated list of remote IDs.
|
|
39
|
+
field :remote_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'remote_ids', 'style': 'form', 'explode': false } }
|
|
40
|
+
# Filter by a comma-separated list of candidate IDs. Prefer filtering by `candidate_ids` when you want to download the full interview feedback available for a candidate, across all their applications.
|
|
41
|
+
field :candidate_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'candidate_ids', 'style': 'form', 'explode': false } }
|
|
42
|
+
# Filter by a comma-separated list of application IDs. We will only return scorecards that belong to _any_ of these applications.
|
|
43
|
+
field :application_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'application_ids', 'style': 'form', 'explode': false } }
|
|
44
|
+
# The number of results to return per page. Maximum is 250.
|
|
45
|
+
field :page_size, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page_size', 'style': 'form', 'explode': true } }
|
|
46
|
+
# By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.
|
|
47
|
+
field :include_deleted, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'include_deleted', 'style': 'form', 'explode': true } }
|
|
48
|
+
# When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.
|
|
49
|
+
field :ignore_unsupported_filters, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'ignore_unsupported_filters', 'style': 'form', 'explode': true } }
|
|
50
|
+
|
|
51
|
+
sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), updated_after: T.nilable(::DateTime), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), candidate_ids: T.nilable(T::Array[::String]), application_ids: T.nilable(T::Array[::String]), page_size: T.nilable(::Integer), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean)).void }
|
|
52
|
+
def initialize(integration_id: nil, cursor: nil, updated_after: nil, ids: nil, remote_ids: nil, candidate_ids: nil, application_ids: nil, page_size: 100, include_deleted: false, ignore_unsupported_filters: false)
|
|
53
|
+
@integration_id = integration_id
|
|
54
|
+
@cursor = cursor
|
|
55
|
+
@updated_after = updated_after
|
|
56
|
+
@ids = ids
|
|
57
|
+
@remote_ids = remote_ids
|
|
58
|
+
@candidate_ids = candidate_ids
|
|
59
|
+
@application_ids = application_ids
|
|
60
|
+
@page_size = page_size
|
|
61
|
+
@include_deleted = include_deleted
|
|
62
|
+
@ignore_unsupported_filters = ignore_unsupported_filters
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
66
|
+
def ==(other)
|
|
67
|
+
return false unless other.is_a? self.class
|
|
68
|
+
return false unless @integration_id == other.integration_id
|
|
69
|
+
return false unless @cursor == other.cursor
|
|
70
|
+
return false unless @updated_after == other.updated_after
|
|
71
|
+
return false unless @ids == other.ids
|
|
72
|
+
return false unless @remote_ids == other.remote_ids
|
|
73
|
+
return false unless @candidate_ids == other.candidate_ids
|
|
74
|
+
return false unless @application_ids == other.application_ids
|
|
75
|
+
return false unless @page_size == other.page_size
|
|
76
|
+
return false unless @include_deleted == other.include_deleted
|
|
77
|
+
return false unless @ignore_unsupported_filters == other.ignore_unsupported_filters
|
|
78
|
+
true
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Kombo::Models::Operations::GetAtsScorecardsRequest
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Kombo::Models::Operations::GetAtsScorecardsRequest
|
|
11
|
+
def integration_id(); end
|
|
12
|
+
def integration_id=(str_); end
|
|
13
|
+
def cursor(); end
|
|
14
|
+
def cursor=(str_); end
|
|
15
|
+
def updated_after(); end
|
|
16
|
+
def updated_after=(str_); end
|
|
17
|
+
def ids(); end
|
|
18
|
+
def ids=(str_); end
|
|
19
|
+
def remote_ids(); end
|
|
20
|
+
def remote_ids=(str_); end
|
|
21
|
+
def candidate_ids(); end
|
|
22
|
+
def candidate_ids=(str_); end
|
|
23
|
+
def application_ids(); end
|
|
24
|
+
def application_ids=(str_); end
|
|
25
|
+
def page_size(); end
|
|
26
|
+
def page_size=(str_); end
|
|
27
|
+
def include_deleted(); end
|
|
28
|
+
def include_deleted=(str_); end
|
|
29
|
+
def ignore_unsupported_filters(); end
|
|
30
|
+
def ignore_unsupported_filters=(str_); end
|
|
31
|
+
end
|