actions/create-employee/create-employee.mjs
import breathe from "../../breathe.app.mjs"; export default { key: "breathe-create-employee", name: "Create Employee", description: "Creates a new employee in Breathe. [See the documentation](https://developer.breathehr.com/examples#!/employees/POST_version_employees_json)", version: "0.0.2", annotations: { destructiveHint: false, openWorldHint: true, readOnlyHint: false, }, type: "action", props: { breathe, firstName: { type: "string", label: "First Name", description: "First name of the employee", }, lastName: { type: "string", label: "Last Name", description: "Last name of the employee", }, email: { type: "string", label: "Email", description: "Email address of the employee", }, companyJoinDate: { type: "string", label: "Company Join Date", description: "The date that the employee joined the company. Example: `2023-12-25`", }, dob: { type: "string", label: "Date of Birth", description: "The date of birth of the employee", optional: true, }, jobTitle: { type: "string", label: "Job Title", description: "The job title of the employee", optional: true, }, departmentId: { propDefinition: [ breathe, "departmentId", ], }, divisionId: { propDefinition: [ breathe, "divisionId", ], }, locationId: { propDefinition: [ breathe, "locationId", ], }, workingPatternId: { propDefinition: [ breathe, "workingPatternId", ], }, holidayAllowanceId: { propDefinition: [ breathe, "holidayAllowanceId", ], }, workMobile: { type: "string", label: "Work Mobile", description: "The work moblie phone number of the employee", optional: true, }, personalMobile: { type: "string", label: "Personal Mobile", description: "The personal mobile phone number of the employee", optional: true, }, homeTelephone: { type: "string", label: "Home Telephone", description: "The home telephone number of the employee", optional: true, }, }, async run({ $ }) { const response = await this.breathe.createEmployee({ $, data: { employee: { person_type: "Employee", first_name: this.firstName, last_name: this.lastName, email: this.email, company_join_date: this.companyJoinDate, dob: this.dob, job_title: this.jobTitle, work_mobile: this.workMobile, personal_mobile: this.personalMobile, home_telephone: this.homeTelephone, department: this.departmentId, division: this.divisionId, location: this.locationId, working_pattern: this.workingPatternId, holiday_allowance: this.holidayAllowanceId, }, }, }); $.export("$summary", `Successfully created employee with ID: ${response.employees[0].id}`); return response; }, };