Class: Merge::Hris::Employment
- Inherits:
-
Object
- Object
- Merge::Hris::Employment
- Defined in:
- lib/merge_ruby_client/hris/types/employment.rb
Overview
The Employment Object
Description
The Employment object is used to represent a job position at a company.
If an integration supports historical tracking of employments, it will be
reflected in the data. If not, a new Employment object will be created
whenever there is a change in job title or pay. The effective_date field
should be used to order Employment objects, with the most recent date
corresponding to the latest employment record for an employee.
Usage Example
Fetch from the LIST Employments endpoint and filter by ID to show all
employees.
Constant Summary collapse
- OMIT =
Object.new
Instance Attribute Summary collapse
-
#additional_properties ⇒ OpenStruct
readonly
Additional properties unmapped to the current class definition.
-
#created_at ⇒ DateTime
readonly
The datetime that this object was created by Merge.
-
#effective_date ⇒ DateTime
readonly
The position's effective date.
-
#employee ⇒ Merge::Hris::EmploymentEmployee
readonly
The employee holding this position.
-
#employment_type ⇒ Merge::Hris::EmploymentTypeEnum
readonly
The position's type of employment.
- #field_mappings ⇒ Hash{String => Object} readonly
-
#flsa_status ⇒ Merge::Hris::FlsaStatusEnum
readonly
The position's FLSA status.
- #id ⇒ String readonly
-
#job_title ⇒ String
readonly
The position's title.
-
#modified_at ⇒ DateTime
readonly
The datetime that this object was modified by Merge.
-
#pay_currency ⇒ Merge::Hris::PayCurrencyEnum
readonly
The position's currency code.
-
#pay_frequency ⇒ Merge::Hris::PayFrequencyEnum
readonly
The position's pay frequency.
-
#pay_group ⇒ Merge::Hris::EmploymentPayGroup
readonly
The employment's pay group.
-
#pay_period ⇒ Merge::Hris::PayPeriodEnum
readonly
The time period this pay rate encompasses.
-
#pay_rate ⇒ Float
readonly
The position's pay rate.
- #remote_data ⇒ Array<Merge::Hris::RemoteData> readonly
-
#remote_id ⇒ String
readonly
The third-party API ID of the matching object.
-
#remote_was_deleted ⇒ Boolean
readonly
Indicates whether or not this object has been deleted in the third party platform.
Class Method Summary collapse
-
.from_json(json_object:) ⇒ Merge::Hris::Employment
Deserialize a JSON object to an instance of Employment.
-
.validate_raw(obj:) ⇒ Void
Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
Instance Method Summary collapse
- #initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, employee: OMIT, job_title: OMIT, pay_rate: OMIT, pay_period: OMIT, pay_frequency: OMIT, pay_currency: OMIT, pay_group: OMIT, flsa_status: OMIT, effective_date: OMIT, employment_type: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) ⇒ Merge::Hris::Employment constructor
-
#to_json(*_args) ⇒ String
Serialize an instance of Employment to a JSON object.
Constructor Details
#initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, employee: OMIT, job_title: OMIT, pay_rate: OMIT, pay_period: OMIT, pay_frequency: OMIT, pay_currency: OMIT, pay_group: OMIT, flsa_status: OMIT, effective_date: OMIT, employment_type: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) ⇒ Merge::Hris::Employment
762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 762 def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, employee: OMIT, job_title: OMIT, pay_rate: OMIT, pay_period: OMIT, pay_frequency: OMIT, pay_currency: OMIT, pay_group: OMIT, flsa_status: OMIT, effective_date: OMIT, employment_type: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @modified_at = modified_at if modified_at != OMIT @employee = employee if employee != OMIT @job_title = job_title if job_title != OMIT @pay_rate = pay_rate if pay_rate != OMIT @pay_period = pay_period if pay_period != OMIT @pay_frequency = pay_frequency if pay_frequency != OMIT @pay_currency = pay_currency if pay_currency != OMIT @pay_group = pay_group if pay_group != OMIT @flsa_status = flsa_status if flsa_status != OMIT @effective_date = effective_date if effective_date != OMIT @employment_type = employment_type if employment_type != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT @additional_properties = additional_properties @_field_set = { "id": id, "remote_id": remote_id, "created_at": created_at, "modified_at": modified_at, "employee": employee, "job_title": job_title, "pay_rate": pay_rate, "pay_period": pay_period, "pay_frequency": pay_frequency, "pay_currency": pay_currency, "pay_group": pay_group, "flsa_status": flsa_status, "effective_date": effective_date, "employment_type": employment_type, "remote_was_deleted": remote_was_deleted, "field_mappings": field_mappings, "remote_data": remote_data }.reject do |_k, v| v == OMIT end end |
Instance Attribute Details
#additional_properties ⇒ OpenStruct (readonly)
400 401 402 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 400 def additional_properties @additional_properties end |
#created_at ⇒ DateTime (readonly)
34 35 36 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 34 def created_at @created_at end |
#effective_date ⇒ DateTime (readonly)
382 383 384 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 382 def effective_date @effective_date end |
#employee ⇒ Merge::Hris::EmploymentEmployee (readonly)
38 39 40 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 38 def employee @employee end |
#employment_type ⇒ Merge::Hris::EmploymentTypeEnum (readonly)
389 390 391 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 389 def employment_type @employment_type end |
#field_mappings ⇒ Hash{String => Object} (readonly)
396 397 398 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 396 def field_mappings @field_mappings end |
#flsa_status ⇒ Merge::Hris::FlsaStatusEnum (readonly)
380 381 382 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 380 def flsa_status @flsa_status end |
#id ⇒ String (readonly)
30 31 32 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 30 def id @id end |
#job_title ⇒ String (readonly)
40 41 42 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 40 def job_title @job_title end |
#modified_at ⇒ DateTime (readonly)
36 37 38 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 36 def modified_at @modified_at end |
#pay_currency ⇒ Merge::Hris::PayCurrencyEnum (readonly)
372 373 374 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 372 def pay_currency @pay_currency end |
#pay_frequency ⇒ Merge::Hris::PayFrequencyEnum (readonly)
64 65 66 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 64 def pay_frequency @pay_frequency end |
#pay_group ⇒ Merge::Hris::EmploymentPayGroup (readonly)
374 375 376 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 374 def pay_group @pay_group end |
#pay_period ⇒ Merge::Hris::PayPeriodEnum (readonly)
53 54 55 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 53 def pay_period @pay_period end |
#pay_rate ⇒ Float (readonly)
42 43 44 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 42 def pay_rate @pay_rate end |
#remote_data ⇒ Array<Merge::Hris::RemoteData> (readonly)
398 399 400 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 398 def remote_data @remote_data end |
#remote_id ⇒ String (readonly)
32 33 34 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 32 def remote_id @remote_id end |
#remote_was_deleted ⇒ Boolean (readonly)
394 395 396 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 394 def remote_was_deleted @remote_was_deleted end |
Class Method Details
.from_json(json_object:) ⇒ Merge::Hris::Employment
Deserialize a JSON object to an instance of Employment
809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 809 def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) id = parsed_json["id"] remote_id = parsed_json["remote_id"] created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) if parsed_json["employee"].nil? employee = nil else employee = parsed_json["employee"].to_json employee = Merge::Hris::EmploymentEmployee.from_json(json_object: employee) end job_title = parsed_json["job_title"] pay_rate = parsed_json["pay_rate"] pay_period = parsed_json["pay_period"] pay_frequency = parsed_json["pay_frequency"] pay_currency = parsed_json["pay_currency"] if parsed_json["pay_group"].nil? pay_group = nil else pay_group = parsed_json["pay_group"].to_json pay_group = Merge::Hris::EmploymentPayGroup.from_json(json_object: pay_group) end flsa_status = parsed_json["flsa_status"] effective_date = (DateTime.parse(parsed_json["effective_date"]) unless parsed_json["effective_date"].nil?) employment_type = parsed_json["employment_type"] remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] remote_data = parsed_json["remote_data"]&.map do |item| item = item.to_json Merge::Hris::RemoteData.from_json(json_object: item) end new( id: id, remote_id: remote_id, created_at: created_at, modified_at: modified_at, employee: employee, job_title: job_title, pay_rate: pay_rate, pay_period: pay_period, pay_frequency: pay_frequency, pay_currency: pay_currency, pay_group: pay_group, flsa_status: flsa_status, effective_date: effective_date, employment_type: employment_type, remote_was_deleted: remote_was_deleted, field_mappings: field_mappings, remote_data: remote_data, additional_properties: struct ) end |
.validate_raw(obj:) ⇒ Void
Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 877 def self.validate_raw(obj:) obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.employee.nil? || Merge::Hris::EmploymentEmployee.validate_raw(obj: obj.employee) obj.job_title&.is_a?(String) != false || raise("Passed value for field obj.job_title is not the expected type, validation failed.") obj.pay_rate&.is_a?(Float) != false || raise("Passed value for field obj.pay_rate is not the expected type, validation failed.") obj.pay_period&.is_a?(Merge::Hris::PayPeriodEnum) != false || raise("Passed value for field obj.pay_period is not the expected type, validation failed.") obj.pay_frequency&.is_a?(Merge::Hris::PayFrequencyEnum) != false || raise("Passed value for field obj.pay_frequency is not the expected type, validation failed.") obj.pay_currency&.is_a?(Merge::Hris::PayCurrencyEnum) != false || raise("Passed value for field obj.pay_currency is not the expected type, validation failed.") obj.pay_group.nil? || Merge::Hris::EmploymentPayGroup.validate_raw(obj: obj.pay_group) obj.flsa_status&.is_a?(Merge::Hris::FlsaStatusEnum) != false || raise("Passed value for field obj.flsa_status is not the expected type, validation failed.") obj.effective_date&.is_a?(DateTime) != false || raise("Passed value for field obj.effective_date is not the expected type, validation failed.") obj.employment_type&.is_a?(Merge::Hris::EmploymentTypeEnum) != false || raise("Passed value for field obj.employment_type is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") end |
Instance Method Details
#to_json(*_args) ⇒ String
Serialize an instance of Employment to a JSON object
867 868 869 |
# File 'lib/merge_ruby_client/hris/types/employment.rb', line 867 def to_json(*_args) @_field_set&.to_json end |