* Feature // Created BambooHR Node, Init Simple Api Calls for Employees * BambooHR Added EmployeesFiles, CompanyFiles API Operations * BambooHR / Refactor the code * Bamboo HR Node // Refactor + Optimization of Employee Api Requests * Bamboo HR Node // Refactor + Optimization of EmployeeFiles Api Requests * Bamboo HR Node // Refactor + Optimization of CompanyFiles Api Requests * Bamboo HR Node // Add Reports - Get Reports by ID * Bamboo HR Node // Format BambooAPI Credential files * Bamboo HR Node // Added Account Information API operations * Bamboo HR Node //Add Https Reposnse Code for All API Operations, Implement new Http Helper * Bamboo HR Node // Added Tabular Data Api Operations * Bamboo HR Node // Added Time Off Api Operations * Bamboo HR Node //Fixed bugs for AccountInformation Operation, Uploading Employees File, TimeOff EstimationTime * Bamboo HR Node // Update AccountInformation - UpdateFields Api operation * Bamboo HR Node //Fixed Add and Update Table rows // Tabular Data API Operations * Update AccountInformation - Added TimeOff Operations - Get Requests, Create Request, Create History Item, Fixed Get Types * Bamboo HR Node // Fixed Adjust Time - TimeOff API Operation, Wrote comments, Finished TimeOff Api Operations * Bamboo HR Node // Add Multi choice Property for Employee Operations, Expand and Add new Optional Fields for Creating and Updating Employee, Write Comments, Fixed Employee API operations * Bamboo HR Node // Add Multi choice Property + Update Fields and Write Comments for Employee Files & Company Files & Reports Acc Info API Operation * N8N-2603 Move Company Name Prop to Credentials, Changed Execution Function * N8N-2603 Obtain Employee ID and bind to the response after create an employee, Refactor GetDirectoy to GetAll + update the output of the response * N8N-2603 Refactor, Added ID in responses, Added Pagination to some operations * N8N-2603 Refactor Employee Files to Employee File * N8N-2603 Refactor CompanyFiles to Company File, Refactor CompanyFile:Create -> CompanyFile:addCategory * N8N-2603 Refactor employeeFile:create -> employeeFile:addCategory, Get rid off Account Information resources * N8N-2603 EmployeeFile:Update -> Change ShareWithEmployee Parameter to be boolean * N8N-2603 CompanyFIle:update -> Change shareWithCompany prop to boolean * N8N-2603 Added Load Options for getTimeOffTypeId, Rename AdditionalFields to UpdateFields * N8N-2603 Updated Logo and Border * N8N-2603 Refactor Employees to Employee * N8N-2603 Linter Fixes * N8N-2603 Refactor EmployeeFile:get -> EmployeeFile:download, CompanyFile:get -> CompanyFile:download * N8N-2603 Linter fix * N8N-2603 Linter Fixes * N8N-2603 Hotfix * N8N-2603 Fixed EmployeeFile:Download * N8N-2603 Updated Assertion * N8N-2603 Remove unnecesary description, optimized code, created separate loadOptions file * N8N-2603 Added Download Function for CompanyFile operation * N8N-2603 Added DateTime Fields instead of string, Removed Color prop from Node * N8N-2603 Refactor Del to Delete * N8N-2603 Added Upload Employ File Operation * N8N-2603 Updated Possible Types of the Request * N8N-2603 Fixed Linter Errors * N8N-2603 Hotfix Upload Employee File Description * N8N-2603 Added options to download the report * ⚡ Improvements * ⚡ Improvements * ⚡ Simplify node * ⚡ Fix linting issue * ⚡ Improvements * ⚡ Fix returned mimeType Co-authored-by: ricardo <ricardoespinoza105@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
350 lines
5.7 KiB
TypeScript
350 lines
5.7 KiB
TypeScript
import {
|
|
INodeProperties,
|
|
} from 'n8n-workflow';
|
|
|
|
export const updateEmployeeSharedDescription = (sync = false): INodeProperties[] => {
|
|
let elements = [
|
|
{
|
|
displayName: 'Address',
|
|
name: 'addasasress',
|
|
placeholder: 'Address',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'value',
|
|
displayName: 'Address',
|
|
values: [
|
|
{
|
|
displayName: 'Line 1',
|
|
name: 'address1',
|
|
type: 'string',
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Line 2',
|
|
name: 'address2',
|
|
type: 'string',
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'City',
|
|
name: 'city',
|
|
type: 'string',
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'State',
|
|
name: 'state',
|
|
type: 'string',
|
|
default: '',
|
|
placeholder: 'Florida',
|
|
description: 'The full name of the state/province',
|
|
},
|
|
{
|
|
displayName: 'Country',
|
|
name: 'country',
|
|
type: 'string',
|
|
default: '',
|
|
placeholder: 'United States',
|
|
description: 'The name of the country. Must exist in the BambooHR country list',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
displayName: 'Date of Birth',
|
|
name: 'dateOfBirth',
|
|
type: 'dateTime',
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Department',
|
|
name: 'department',
|
|
type: 'options',
|
|
typeOptions: {
|
|
loadOptionsMethod: 'getDepartments',
|
|
},
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Division',
|
|
name: 'division',
|
|
type: 'options',
|
|
typeOptions: {
|
|
loadOptionsMethod: 'getDivisions',
|
|
},
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Employee Number',
|
|
name: 'employeeNumber',
|
|
type: 'string',
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'First Name',
|
|
name: 'firstName',
|
|
type: 'string',
|
|
displayOptions: {
|
|
show: {
|
|
'synced': [
|
|
false,
|
|
],
|
|
},
|
|
},
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Last Name',
|
|
name: 'lastName',
|
|
type: 'string',
|
|
displayOptions: {
|
|
show: {
|
|
'synced': [
|
|
false,
|
|
],
|
|
},
|
|
},
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'FLSA Overtime Status',
|
|
name: 'exempt',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Exempt',
|
|
value: 'exempt',
|
|
},
|
|
{
|
|
name: 'Non-exempt',
|
|
value: 'non-exempt',
|
|
},
|
|
],
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Gender',
|
|
name: 'gender',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Female',
|
|
value: 'female',
|
|
},
|
|
{
|
|
name: 'Male',
|
|
value: 'male',
|
|
},
|
|
],
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Hire Date',
|
|
name: 'hireDate',
|
|
type: 'dateTime',
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Location',
|
|
name: 'location',
|
|
type: 'options',
|
|
typeOptions: {
|
|
loadOptionsMethod: 'getEmployeeLocations',
|
|
},
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Marital Status',
|
|
name: 'maritalStatus',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Single',
|
|
value: 'single',
|
|
},
|
|
{
|
|
name: 'Married',
|
|
value: 'married',
|
|
},
|
|
{
|
|
name: 'Domestic Partnership',
|
|
value: 'domesticPartnership',
|
|
},
|
|
],
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Mobile Phone',
|
|
name: 'mobilePhone',
|
|
type: 'string',
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Pay Per',
|
|
name: 'paidPer',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Hour',
|
|
value: 'hour',
|
|
},
|
|
{
|
|
name: 'Day',
|
|
value: 'day',
|
|
},
|
|
{
|
|
name: 'Week',
|
|
value: 'week',
|
|
},
|
|
{
|
|
name: 'Month',
|
|
value: 'month',
|
|
},
|
|
{
|
|
name: 'Quater',
|
|
value: 'quater',
|
|
},
|
|
{
|
|
name: 'Year',
|
|
value: 'year',
|
|
},
|
|
],
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Pay Rate',
|
|
name: 'payRate',
|
|
placeholder: 'Add Pay Rate',
|
|
type: 'fixedCollection',
|
|
typeOptions: {
|
|
multipleValues: false,
|
|
},
|
|
default: {},
|
|
options: [
|
|
{
|
|
name: 'value',
|
|
displayName: 'Pay Rate',
|
|
values: [
|
|
{
|
|
displayName: 'Value',
|
|
name: 'value',
|
|
type: 'string',
|
|
default: '',
|
|
placeholder: '20.00',
|
|
},
|
|
{
|
|
displayName: 'Currency',
|
|
name: 'currency',
|
|
type: 'string',
|
|
default: '',
|
|
placeholder: 'USD',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
displayName: 'Pay Type',
|
|
name: 'payType',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Hourly',
|
|
value: 'hourly',
|
|
},
|
|
{
|
|
name: 'Salary',
|
|
value: 'salary',
|
|
},
|
|
{
|
|
name: 'Commission',
|
|
value: 'commission',
|
|
},
|
|
{
|
|
name: 'Exception Hourly',
|
|
value: 'exceptionHourly',
|
|
},
|
|
{
|
|
name: 'Monthly',
|
|
value: 'monthly',
|
|
},
|
|
{
|
|
name: 'Weekly',
|
|
value: 'weekly',
|
|
},
|
|
{
|
|
name: 'Piece Rate',
|
|
value: 'pieceRate',
|
|
},
|
|
{
|
|
name: 'Contract',
|
|
value: 'contract',
|
|
},
|
|
{
|
|
name: 'Daily',
|
|
value: 'daily',
|
|
},
|
|
{
|
|
name: 'Pro Rata',
|
|
value: 'proRata',
|
|
},
|
|
],
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Preferred Name',
|
|
name: 'preferredName',
|
|
type: 'string',
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Social Security Number',
|
|
name: 'ssn',
|
|
type: 'string',
|
|
default: '',
|
|
placeholder: '123-45-6789',
|
|
description: 'A standard United States Social Security number, with dashes',
|
|
},
|
|
] as INodeProperties[];
|
|
|
|
if (sync === true) {
|
|
elements = elements.map(element => {
|
|
return Object.assign(element, {
|
|
displayOptions: {
|
|
show: {
|
|
resource: [
|
|
'employee',
|
|
],
|
|
operation: [
|
|
'update',
|
|
],
|
|
synced: [
|
|
true,
|
|
],
|
|
},
|
|
},
|
|
required: true,
|
|
});
|
|
});
|
|
return elements;
|
|
} else {
|
|
elements = elements.map(element => {
|
|
return Object.assign(element, {
|
|
displayOptions: {
|
|
show: {
|
|
'/synced': [
|
|
false,
|
|
],
|
|
},
|
|
},
|
|
});
|
|
});
|
|
}
|
|
return elements;
|
|
}; |