Compare commits

...

8 Commits

4 changed files with 909 additions and 502 deletions

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@ const getToken = () => {
} }
export const api = axios.create({ export const api = axios.create({
baseURL: 'http://127.0.0.1:4000/api/v1', baseURL: 'https://enaklo-pos-be.altru.id/api/v1',
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
}, },

View File

@ -0,0 +1,34 @@
import { useQuery } from '@tanstack/react-query'
import { VoucherRowsResponse } from '../../types/services/voucher'
import { api } from '../api'
export interface VouchersQueryParams {
rows?: number
winner_number?: number
}
export function useVoucherRows(params: VouchersQueryParams = {}, options: { enabled?: boolean } = {}) {
const { rows = 5, winner_number = 1 } = params
const { enabled = true } = options
return useQuery<VoucherRowsResponse>({
queryKey: ['voucher-rows', { rows, winner_number }],
queryFn: async () => {
const res = await api.get(`/vouchers/rows`, {
params: { rows, winner_number }
})
return res.data.data
},
enabled,
staleTime: 5 * 60 * 1000,
refetchOnWindowFocus: false
})
}
// Manual fetch function for cases where you need to fetch without using the hook
export async function fetchVoucherRows(rows: number = 5, winner_number: number = 1): Promise<VoucherRowsResponse> {
const res = await api.get(`/vouchers/rows`, {
params: { rows, winner_number }
})
return res.data.data
}

View File

@ -0,0 +1,23 @@
export interface Voucher {
voucher_code: string
name: string
phone_number: string
is_winner: boolean
}
export interface VoucherRow {
row_number: number
vouchers: Voucher[]
}
export interface VoucherRowsResponse {
rows: VoucherRow[]
total_rows: number
total_vouchers: number
}
export interface VoucherApiResponse {
success: boolean
data: VoucherRowsResponse
errors: any
}