UNPKG

autotrader-connect-api

Version:

Production-ready TypeScript wrapper for Auto Trader UK Connect APIs

140 lines 5.63 kB
"use strict"; /** * Advertiser management module for AutoTrader API * Handles dealer/advertiser account operations and information retrieval */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.listResources = exports.getResource = exports.getTopRatedAdvertisers = exports.getNearbyAdvertisers = exports.getAdvertiserVehicleCount = exports.getAdvertiserStats = exports.updateAdvertiser = exports.getAllAdvertisers = exports.searchAdvertisers = exports.getAdvertiser = exports.getCurrentAdvertiser = void 0; const client_1 = __importDefault(require("../client")); /** * Get current advertiser information (authenticated advertiser) * @returns Promise resolving to advertiser details */ async function getCurrentAdvertiser() { const response = await client_1.default.get('/advertisers/me'); return response.data; } exports.getCurrentAdvertiser = getCurrentAdvertiser; /** * Get advertiser by ID * @param advertiserId Advertiser ID * @returns Promise resolving to advertiser details */ async function getAdvertiser(advertiserId) { const response = await client_1.default.get(`/advertisers/${advertiserId}`); return response.data; } exports.getAdvertiser = getAdvertiser; /** * Search advertisers with filters * @param params Search parameters * @returns Promise resolving to paginated advertiser results */ async function searchAdvertisers(params = {}) { const response = await client_1.default.get('/advertisers/search', { params: { name: params.name, type: params.type, accountStatus: params.accountStatus, subscriptionType: params.subscriptionType, postcode: params.postcode, radius: params.radius, county: params.county, region: params.region, specializations: Array.isArray(params.specializations) ? params.specializations.join(',') : params.specializations, minRating: params.minRating, minVehicleCount: params.minVehicleCount, maxVehicleCount: params.maxVehicleCount, page: params.page || 1, pageSize: params.pageSize || 20, sortBy: params.sortBy || 'name', sortOrder: params.sortOrder || 'asc', }, }); return response; } exports.searchAdvertisers = searchAdvertisers; /** * Get all advertisers (admin function) * @param page Page number * @param pageSize Number of results per page * @returns Promise resolving to paginated advertiser list */ async function getAllAdvertisers(page = 1, pageSize = 50) { const response = await client_1.default.get('/advertisers', { params: { page, pageSize }, }); return response; } exports.getAllAdvertisers = getAllAdvertisers; /** * Update advertiser information * @param advertiserId Advertiser ID (optional, defaults to current advertiser) * @param updates Partial advertiser information to update * @returns Promise resolving to updated advertiser details */ async function updateAdvertiser(updates, advertiserId) { const endpoint = advertiserId ? `/advertisers/${advertiserId}` : '/advertisers/me'; const response = await client_1.default.put(endpoint, updates); return response.data; } exports.updateAdvertiser = updateAdvertiser; /** * Get advertiser statistics * @param advertiserId Advertiser ID (optional, defaults to current advertiser) * @param period Time period for statistics * @returns Promise resolving to advertiser statistics */ async function getAdvertiserStats(advertiserId, period = '30d') { const endpoint = advertiserId ? `/advertisers/${advertiserId}/stats` : '/advertisers/me/stats'; const response = await client_1.default.get(endpoint, { params: { period }, }); return response.data; } exports.getAdvertiserStats = getAdvertiserStats; /** * Get advertiser's vehicle count by status * @param advertiserId Advertiser ID (optional, defaults to current advertiser) * @returns Promise resolving to vehicle count breakdown */ async function getAdvertiserVehicleCount(advertiserId) { const endpoint = advertiserId ? `/advertisers/${advertiserId}/vehicles/count` : '/advertisers/me/vehicles/count'; const response = await client_1.default.get(endpoint); return response.data; } exports.getAdvertiserVehicleCount = getAdvertiserVehicleCount; /** * Get nearby advertisers * @param postcode Postcode to search around * @param radius Search radius in miles * @param limit Maximum number of results * @returns Promise resolving to nearby advertisers */ async function getNearbyAdvertisers(postcode, radius = 10, limit = 20) { const response = await client_1.default.get('/advertisers/nearby', { params: { postcode, radius, limit }, }); return response.data; } exports.getNearbyAdvertisers = getNearbyAdvertisers; /** * Get top-rated advertisers * @param limit Maximum number of results * @param minReviews Minimum number of reviews required * @returns Promise resolving to top-rated advertisers */ async function getTopRatedAdvertisers(limit = 10, minReviews = 5) { const response = await client_1.default.get('/advertisers/top-rated', { params: { limit, minReviews }, }); return response.data; } exports.getTopRatedAdvertisers = getTopRatedAdvertisers; // Legacy exports for backward compatibility exports.getResource = getCurrentAdvertiser; exports.listResources = getAllAdvertisers; //# sourceMappingURL=advertisers.js.map