Passed
Push — feature/application-review-ui ( afbf92...be3688 )
by Chris
04:21
created

resources/assets/js/api/experience.ts   A

Complexity

Total Complexity 7
Complexity/F 0

Size

Lines of Code 53
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 7
eloc 39
mnd 7
bc 7
fnc 0
dl 0
loc 53
rs 10
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
1
/* eslint-disable camelcase */
2
/* eslint-disable @typescript-eslint/camelcase */
3
import { baseUrl, parseDate } from "./base";
4
import { Experience, ExperienceSkill } from "../models/types";
5
6
export interface ExperienceResponse {
7
  experience: Experience;
8
  experienceSkills: ExperienceSkill[];
9
}
10
11
export const parseSingleExperience = (data: any): ExperienceResponse => {
12
  const { experience_skills, ...experience } = data;
13
  if (data.start_date) {
14
    experience.start_date = parseDate(data.start_date);
15
  }
16
  if (data.end_date) {
17
    experience.end_date = parseDate(data.end_date);
18
  }
19
  if (data.awarded_date) {
20
    experience.awarded_date = parseDate(data.awarded_date);
21
  }
22
  return {
23
    experience,
24
    experienceSkills: experience_skills,
25
  };
26
};
27
28
export const parseExperience = (data: any): ExperienceResponse[] =>
29
  data.map(parseSingleExperience);
30
31
export const parseExperienceSkill = (data: any): ExperienceSkill => {
32
  return {
33
    ...data,
34
    created_at: parseDate(data.created_at),
35
    updated_at: parseDate(data.updated_at),
36
  };
37
};
38
39
export const getApplicantExperienceEndpoint = (applicantId: number): string =>
40
  `${baseUrl()}/applicants/${applicantId}/experience`; // FIXME: this url doesn't exist yet.
41
42
export const getApplicationExperienceEndpoint = (
43
  applicationId: number,
44
): string => `${baseUrl()}/applications/${applicationId}/experience`; // FIXME: this url doesn't exist yet.
45
46
export const getExperienceEndpoint = (
47
  id: number | null,
48
  type: Experience["type"],
49
): string => `${baseUrl()}/experience/${type}/${id ?? ""}`; // FIXME: this url doesn't exist yet.
50
51
export const getExperienceSkillEndpoint = (id: number | null = null): string =>
52
  `${baseUrl()}/experience-skills/${id ?? ""}`;
53