HR-ATS-Portal/frontend/src/api/users.js

56 lines
1.5 KiB
JavaScript

import { request } from '../lib/apiClient'
/** The ONLY endpoint that returns `permissions`. Login and refresh do not. */
export function me() {
return request('/users/me')
}
export function list({ record_id, search, top, skip, roleId } = {}) {
return request('/users/fetch', { params: { record_id, search, top, skip, role_id: roleId } })
}
export function listPendingApprovals() {
return request('/users/pending-approvals')
}
export function approve(recordId) {
return request('/users/approve', { method: 'PUT', params: { record_id: recordId } })
}
export function create(body) {
return request('/users/create', { method: 'POST', body })
}
export function update(recordId, body) {
return request('/users/update', { method: 'PUT', params: { record_id: recordId }, body })
}
export function assignRole(recordId, roleId) {
return request('/users/assign-role', {
method: 'PUT',
params: { record_id: recordId },
body: { role_id: roleId },
})
}
export function removeRole(recordId) {
return request('/users/remove-role', { method: 'PUT', params: { record_id: recordId } })
}
export function remove(recordId) {
return request('/users/delete', { method: 'DELETE', params: { record_id: recordId } })
}
export function toManagerView(row) {
return {
id: row.id,
name: row.name || row.email || 'Unknown',
email: row.email || '',
roleName: row.role_name || null,
openReqs: row.open_reqs ?? 0,
department: row.department ?? null,
title: row.title ?? null,
teamSize: row.team_size ?? null,
}
}