40 lines
995 B
TypeScript
40 lines
995 B
TypeScript
import type { RequirementStatus } from '@/types'
|
|
|
|
const API_BASE_URL = '/api'
|
|
|
|
class RequirementStatusService {
|
|
/**
|
|
* Get all requirement lifecycle statuses.
|
|
*/
|
|
async getStatuses(): Promise<RequirementStatus[]> {
|
|
try {
|
|
const response = await fetch(`${API_BASE_URL}/requirement-statuses`, {
|
|
method: 'GET',
|
|
credentials: 'include',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
})
|
|
|
|
if (!response.ok) {
|
|
throw new Error(`HTTP error! status: ${response.status}`)
|
|
}
|
|
|
|
const statuses: RequirementStatus[] = await response.json()
|
|
return statuses
|
|
} catch (error) {
|
|
console.error('Failed to fetch requirement statuses:', error)
|
|
throw error
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check if a requirement is in draft status.
|
|
*/
|
|
isDraft(status: RequirementStatus | null): boolean {
|
|
return status?.status_code === 'DRAFT'
|
|
}
|
|
}
|
|
|
|
export const requirementStatusService = new RequirementStatusService()
|