Skip to content

Commit

Permalink
✨ Add BambooHR Node (#2471)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
3 people committed Jan 22, 2022
1 parent 49bf786 commit 8cefafa
Show file tree
Hide file tree
Showing 63 changed files with 3,452 additions and 118 deletions.
236 changes: 118 additions & 118 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions packages/nodes-base/credentials/BambooHRApi.credentials.ts
@@ -0,0 +1,24 @@
import {
ICredentialType,
INodeProperties,
} from 'n8n-workflow';

export class BambooHRApi implements ICredentialType {
name = 'bambooHRApi';
displayName = 'BambooHR API';
documentationUrl = 'bambooHR';
properties: INodeProperties[] = [
{
displayName: 'Subdomain',
name: 'subdomain',
type: 'string',
default: '',
},
{
displayName: 'API Key',
name: 'apiKey',
type: 'string',
default: '',
},
];
}
34 changes: 34 additions & 0 deletions packages/nodes-base/nodes/BambooHR/BambooHR.node.ts
@@ -0,0 +1,34 @@
import {
IExecuteFunctions,
} from 'n8n-core';

import {
INodeType,
INodeTypeBaseDescription,
INodeTypeDescription,
} from 'n8n-workflow';

import { router } from './v1/actions/router';
import { versionDescription } from './v1/actions/versionDescription';
import { loadOptions } from './v1/methods';
import { credentialTest } from './v1/methods';

export class BambooHR implements INodeType {
description: INodeTypeDescription;

constructor(baseDescription: INodeTypeBaseDescription) {
this.description = {
...baseDescription,
...versionDescription,
};
}

methods = {
loadOptions,
credentialTest,
};

async execute(this: IExecuteFunctions) {
return [await router.call(this)];
}
}
Binary file added packages/nodes-base/nodes/BambooHR/bambooHR.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions packages/nodes-base/nodes/BambooHR/v1/actions/Interfaces.ts
@@ -0,0 +1,33 @@
import {
AllEntities,
Entity,
PropertiesOf,
} from 'n8n-workflow';

type BambooHRMap = {
employee: 'create' | 'get' | 'getAll' | 'update';
employeeDocument: 'delete' | 'download' | 'get' | 'getAll' | 'update' | 'upload';
file: 'delete' | 'download' | 'getAll' | 'update';
companyReport: 'get';
};

export type BambooHR = AllEntities<BambooHRMap>;

export type BambooHRFile = Entity<BambooHRMap, 'file'>;
export type BambooHREmployee = Entity<BambooHRMap, 'employee'>;
export type BambooHREmployeeDocument = Entity<BambooHRMap, 'employeeDocument'>;
export type BambooHRCompanyReport = Entity<BambooHRMap, 'companyReport'>;

export type FileProperties = PropertiesOf<BambooHRFile>;
export type EmployeeProperties = PropertiesOf<BambooHREmployee>;
export type EmployeeDocumentProperties = PropertiesOf<BambooHREmployeeDocument>;
export type CompanyReportProperties = PropertiesOf<BambooHRCompanyReport>;

export interface IAttachment {
fields: {
item?: object[];
};
actions: {
item?: object[];
};
}

0 comments on commit 8cefafa

Please sign in to comment.