33 lines
957 B
TypeScript
33 lines
957 B
TypeScript
|
|
// Decision API service for managing listing decisions (like/dislike)
|
||
|
|
|
||
|
|
import type { AuthUser } from '@/auth/types';
|
||
|
|
import type { ListingDecision } from '@/types';
|
||
|
|
import { apiRequest } from './apiClient';
|
||
|
|
|
||
|
|
export async function fetchDecisions(user: AuthUser): Promise<ListingDecision[]> {
|
||
|
|
return apiRequest<ListingDecision[]>(user, '/api/decisions');
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function setDecision(
|
||
|
|
user: AuthUser,
|
||
|
|
listingId: number,
|
||
|
|
decision: 'liked' | 'disliked',
|
||
|
|
listingType: 'RENT' | 'BUY' = 'RENT',
|
||
|
|
): Promise<ListingDecision> {
|
||
|
|
return apiRequest<ListingDecision>(user, `/api/decisions/${listingId}`, {
|
||
|
|
method: 'PUT',
|
||
|
|
body: { decision, listing_type: listingType },
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function clearDecision(
|
||
|
|
user: AuthUser,
|
||
|
|
listingId: number,
|
||
|
|
listingType: 'RENT' | 'BUY' = 'RENT',
|
||
|
|
): Promise<void> {
|
||
|
|
await apiRequest(user, `/api/decisions/${listingId}`, {
|
||
|
|
method: 'DELETE',
|
||
|
|
params: { listing_type: listingType },
|
||
|
|
});
|
||
|
|
}
|