DONE: layout letter with letterhead and footer, notification for newly...
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import { api } from '@/core/services/api'
|
||||
import type {
|
||||
AddressApiResponse,
|
||||
AddressPayload,
|
||||
AddressesApiResponse,
|
||||
} from '../types/address.types'
|
||||
|
||||
export async function listAddresses(perPage = 100): Promise<AddressesApiResponse> {
|
||||
const { data } = await api.get<AddressesApiResponse>('/v1/addresses', {
|
||||
params: { per_page: perPage },
|
||||
})
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal memuatkan alamat.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function createAddress(payload: AddressPayload): Promise<AddressApiResponse> {
|
||||
const { data } = await api.post<AddressApiResponse>('/v1/addresses', payload)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal menambah alamat.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function updateAddress(
|
||||
id: string,
|
||||
payload: AddressPayload,
|
||||
): Promise<AddressApiResponse> {
|
||||
const { data } = await api.put<AddressApiResponse>(`/v1/addresses/${id}`, payload)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal mengemas kini alamat.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function deleteAddress(id: string): Promise<AddressApiResponse> {
|
||||
const { data } = await api.delete<AddressApiResponse>(`/v1/addresses/${id}`)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal memadam alamat.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { api } from '@/core/services/api'
|
||||
import type { BanksApiResponse } from '../types/bank.types'
|
||||
|
||||
export async function listActiveBanks(): Promise<BanksApiResponse> {
|
||||
const { data } = await api.get<BanksApiResponse>('/v1/banks/active')
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal memuatkan senarai bank.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import { api } from '@/core/services/api'
|
||||
import type {
|
||||
BankDetailApiResponse,
|
||||
BankDetailPayload,
|
||||
BankDetailsApiResponse,
|
||||
} from '../types/bankDetail.types'
|
||||
|
||||
export async function listBankDetails(perPage = 100): Promise<BankDetailsApiResponse> {
|
||||
const { data } = await api.get<BankDetailsApiResponse>('/v1/bank_details', {
|
||||
params: { per_page: perPage },
|
||||
})
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal memuatkan akaun bank.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function createBankDetail(payload: BankDetailPayload): Promise<BankDetailApiResponse> {
|
||||
const { data } = await api.post<BankDetailApiResponse>('/v1/bank_details', payload)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal menambah akaun bank.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function updateBankDetail(
|
||||
id: string,
|
||||
payload: BankDetailPayload,
|
||||
): Promise<BankDetailApiResponse> {
|
||||
const { data } = await api.put<BankDetailApiResponse>(`/v1/bank_details/${id}`, payload)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal mengemas kini akaun bank.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function deleteBankDetail(id: string): Promise<BankDetailApiResponse> {
|
||||
const { data } = await api.delete<BankDetailApiResponse>(`/v1/bank_details/${id}`)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal memadam akaun bank.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import { api } from '@/core/services/api'
|
||||
import type {
|
||||
EmploymentApiResponse,
|
||||
EmploymentPayload,
|
||||
EmploymentsApiResponse,
|
||||
} from '../types/employment.types'
|
||||
|
||||
export async function listEmployments(perPage = 100): Promise<EmploymentsApiResponse> {
|
||||
const { data } = await api.get<EmploymentsApiResponse>('/v1/employments', {
|
||||
params: { per_page: perPage },
|
||||
})
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal memuatkan pekerjaan.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function createEmployment(payload: EmploymentPayload): Promise<EmploymentApiResponse> {
|
||||
const { data } = await api.post<EmploymentApiResponse>('/v1/employments', payload)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal menambah pekerjaan.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function updateEmployment(
|
||||
id: string,
|
||||
payload: EmploymentPayload,
|
||||
): Promise<EmploymentApiResponse> {
|
||||
const { data } = await api.put<EmploymentApiResponse>(`/v1/employments/${id}`, payload)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal mengemas kini pekerjaan.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function deleteEmployment(id: string): Promise<EmploymentApiResponse> {
|
||||
const { data } = await api.delete<EmploymentApiResponse>(`/v1/employments/${id}`)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal memadam pekerjaan.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import { api } from '@/core/services/api'
|
||||
import type { HeirApiResponse, HeirPayload, HeirsApiResponse } from '../types/heir.types'
|
||||
|
||||
export async function listHeirs(perPage = 100): Promise<HeirsApiResponse> {
|
||||
const { data } = await api.get<HeirsApiResponse>('/v1/heirs', {
|
||||
params: { per_page: perPage },
|
||||
})
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal memuatkan pewaris.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function createHeir(payload: HeirPayload): Promise<HeirApiResponse> {
|
||||
const { data } = await api.post<HeirApiResponse>('/v1/heirs', payload)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal menambah pewaris.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function updateHeir(id: string, payload: HeirPayload): Promise<HeirApiResponse> {
|
||||
const { data } = await api.put<HeirApiResponse>(`/v1/heirs/${id}`, payload)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal mengemas kini pewaris.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
export async function deleteHeir(id: string): Promise<HeirApiResponse> {
|
||||
const { data } = await api.delete<HeirApiResponse>(`/v1/heirs/${id}`)
|
||||
|
||||
if (!data.success) {
|
||||
throw new Error(data.message ?? 'Gagal memadam pewaris.')
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
@@ -31,6 +31,10 @@ export async function updateProfile(payload: UpdateProfilePayload): Promise<Upda
|
||||
appendIfDefined(formData, 'ic_number', payload.ic_number)
|
||||
appendIfDefined(formData, 'position', payload.position)
|
||||
appendIfDefined(formData, 'phone_number', payload.phone_number)
|
||||
appendIfDefined(formData, 'gender', payload.gender)
|
||||
appendIfDefined(formData, 'marriage_status', payload.marriage_status)
|
||||
appendIfDefined(formData, 'birth_date', payload.birth_date)
|
||||
appendIfDefined(formData, 'birth_place', payload.birth_place)
|
||||
formData.append('image', payload.image!)
|
||||
|
||||
const { data } = await api.post<UpdateProfileResponse>('/v1/profile', formData, {
|
||||
@@ -46,6 +50,10 @@ export async function updateProfile(payload: UpdateProfilePayload): Promise<Upda
|
||||
if (payload.ic_number?.trim()) body.ic_number = payload.ic_number.trim()
|
||||
if (payload.position?.trim()) body.position = payload.position.trim()
|
||||
if (payload.phone_number?.trim()) body.phone_number = payload.phone_number.trim()
|
||||
if (payload.gender?.trim()) body.gender = payload.gender.trim()
|
||||
if (payload.marriage_status?.trim()) body.marriage_status = payload.marriage_status.trim()
|
||||
if (payload.birth_date?.trim()) body.birth_date = payload.birth_date.trim()
|
||||
if (payload.birth_place?.trim()) body.birth_place = payload.birth_place.trim()
|
||||
|
||||
const { data } = await api.post<UpdateProfileResponse>('/v1/profile', body)
|
||||
return data
|
||||
|
||||
Reference in New Issue
Block a user