Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/missionmatch / frontend/src/tools/recruitmatch/requisitionsApi.ts |
| Date | Not specified in source |
| Repository | Janady13/missionmatch |
| Revision | 720d47fae476b0d38477ae4401697d372b1ea2bc |
| Branch | feature/opportunity-to-outcome |
| Path or archive member | frontend/src/tools/recruitmatch/requisitionsApi.ts |
| Original SHA-256 | c1010a08d03d715ed46932a7ad0eaee30c0cb26fa18ea076c1a59696df2fc529 |
| Git blob SHA | e04103add1534fcada21514549694d7c6f35770e |
| Reading-copy SHA-256 | c1010a08d03d715ed46932a7ad0eaee30c0cb26fa18ea076c1a59696df2fc529 |
Every recorded occurrence
These 2 records contain identical original source bytes. Their paths and revisions remain part of the archive.
| Original record | Branch or archive | Revision / identifier | Original location |
|---|---|---|---|
| Janady13/missionmatch / frontend/src/tools/recruitmatch/requisitionsApi.ts | feature/opportunity-to-outcome | 720d47fae476b0d38477ae4401697d372b1ea2bc | Open original |
| Janady13/missionmatch / frontend/src/tools/recruitmatch/requisitionsApi.ts | feature/aioe-upgrade | 2178e7298d0e5d9af83afa12402fd587f0ba6ed8 | Open original |
Recovered source transcript
Download complete source text ↓32 lines · 1.8 KB
import { request } from '../../lib/api'
import type { RRequisition, RRequisitionDetail, RRequisitionList } from '../../lib/types'
const NS = '/recruiting'
const body = (v: unknown) => ({ body: JSON.stringify(v) })
export const requisitionsApi = {
list: (p: { client_id?: string; status?: string; owner?: string; q?: string; limit?: number; offset?: number }) => {
const s = new URLSearchParams()
if (p.client_id) s.set('client_id', p.client_id)
if (p.status) s.set('status', p.status)
if (p.owner) s.set('owner', p.owner)
if (p.q) s.set('q', p.q)
if (p.limit) s.set('limit', String(p.limit))
if (p.offset) s.set('offset', String(p.offset))
const qs = s.toString()
return request<RRequisitionList>(`${NS}/requisitions${qs ? `?${qs}` : ''}`)
},
get: (id: string) => request<RRequisitionDetail>(`${NS}/requisitions/${encodeURIComponent(id)}`),
create: (v: Record<string, unknown>) => request<RRequisition>(`${NS}/requisitions`, { method: 'POST', ...body(v) }),
update: (id: string, v: Record<string, unknown>) =>
request<RRequisition>(`${NS}/requisitions/${encodeURIComponent(id)}`, { method: 'PATCH', ...body(v) }),
// Status is its own endpoint, not a PATCH field. It moves clocks and writes history, and the server
// decides from the transition graph whether the move is legal at all.
changeStatus: (id: string, v: { expected_updated_at: string; status: string; note?: string }) =>
request<RRequisition>(`${NS}/requisitions/${encodeURIComponent(id)}/status`, { method: 'POST', ...body(v) }),
claim: (id: string) => request<RRequisition>(`${NS}/requisitions/${encodeURIComponent(id)}/claim`, { method: 'POST' }),
release: (id: string) =>
request<RRequisition>(`${NS}/requisitions/${encodeURIComponent(id)}/release`, { method: 'POST' }),
}