import axios from 'axios';
import { RECOMMENDATION_ROUTE, SALARY_ROUTE } from './Constants';
/**
* @param {string} str
* @returns {string}
*/
export function capitalize(str) {
if (typeof str !== 'string' || str.length === 0) {
return '';
}
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
}
/**
*
* @param {string} jobTitle The job title
* @param {boolean} force Whether to fetch raw data
* @returns
*/
export const estimateSalary = async (jobTitle, force) => {
const payload = {
field: jobTitle,
force: force,
};
const response = await axios.post(SALARY_ROUTE, payload);
const data = response.data;
return data;
};
/**
*
* @param {number} salary1
* @param {number} salary2
* @param {string} user1
* @param {string} user2
*/
export const fetchRecommendation = async (salary1, salary2, user1, user2) => {
const payload = {
job1: salary1,
job2: salary2,
user1: user1,
user2: user2,
};
const response = await axios.post(RECOMMENDATION_ROUTE, payload);
const data = response.data;
return data;
};
export function calculateHourlyRate(
annualSalary,
hoursPerWeek = 40,
weeksPerYear = 52
) {
if (!annualSalary || annualSalary <= 0) return null;
const hourly = annualSalary / (hoursPerWeek * weeksPerYear);
return Number(hourly.toFixed(2));
}