facebook-nodejs-business-sdk
Version:
SDK for the Facebook Marketing API in Javascript and Node.js
236 lines (226 loc) • 6.28 kB
JavaScript
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* This source code is licensed under the license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
import {AbstractCrudObject} from './../abstract-crud-object';
import Cursor from './../cursor';
import CatalogItemChannelsToIntegrityStatus from './catalog-item-channels-to-integrity-status';
import OverrideDetails from './override-details';
import DynamicVideoMetadata from './dynamic-video-metadata';
/**
* Vehicle
* @extends AbstractCrudObject
* @see {@link https://developers.facebook.com/docs/marketing-api/}
*/
export default class Vehicle extends AbstractCrudObject {
static get Fields (): Object {
return Object.freeze({
address: 'address',
applinks: 'applinks',
availability: 'availability',
body_style: 'body_style',
category_specific_fields: 'category_specific_fields',
condition: 'condition',
currency: 'currency',
custom_label_0: 'custom_label_0',
date_first_on_lot: 'date_first_on_lot',
dealer_communication_channel: 'dealer_communication_channel',
dealer_email: 'dealer_email',
dealer_id: 'dealer_id',
dealer_name: 'dealer_name',
dealer_phone: 'dealer_phone',
dealer_privacy_policy_url: 'dealer_privacy_policy_url',
description: 'description',
drivetrain: 'drivetrain',
exterior_color: 'exterior_color',
fb_page_id: 'fb_page_id',
features: 'features',
fuel_type: 'fuel_type',
id: 'id',
image_fetch_status: 'image_fetch_status',
images: 'images',
interior_color: 'interior_color',
legal_disclosure_impressum_url: 'legal_disclosure_impressum_url',
make: 'make',
mileage: 'mileage',
model: 'model',
previous_currency: 'previous_currency',
previous_price: 'previous_price',
price: 'price',
sale_currency: 'sale_currency',
sale_price: 'sale_price',
sanitized_images: 'sanitized_images',
state_of_vehicle: 'state_of_vehicle',
title: 'title',
transmission: 'transmission',
trim: 'trim',
unit_price: 'unit_price',
url: 'url',
vehicle_id: 'vehicle_id',
vehicle_registration_plate: 'vehicle_registration_plate',
vehicle_specifications: 'vehicle_specifications',
vehicle_type: 'vehicle_type',
vin: 'vin',
visibility: 'visibility',
year: 'year',
});
}
static get ImageFetchStatus (): Object {
return Object.freeze({
direct_upload: 'DIRECT_UPLOAD',
fetched: 'FETCHED',
fetch_failed: 'FETCH_FAILED',
no_status: 'NO_STATUS',
outdated: 'OUTDATED',
partial_fetch: 'PARTIAL_FETCH',
});
}
static get Visibility (): Object {
return Object.freeze({
published: 'PUBLISHED',
staging: 'STAGING',
});
}
static get Availability (): Object {
return Object.freeze({
available: 'AVAILABLE',
not_available: 'NOT_AVAILABLE',
pending: 'PENDING',
});
}
static get BodyStyle (): Object {
return Object.freeze({
convertible: 'CONVERTIBLE',
coupe: 'COUPE',
crossover: 'CROSSOVER',
estate: 'ESTATE',
grandtourer: 'GRANDTOURER',
hatchback: 'HATCHBACK',
minibus: 'MINIBUS',
minivan: 'MINIVAN',
mpv: 'MPV',
none: 'NONE',
other: 'OTHER',
pickup: 'PICKUP',
roadster: 'ROADSTER',
saloon: 'SALOON',
sedan: 'SEDAN',
small_car: 'SMALL_CAR',
sportscar: 'SPORTSCAR',
supercar: 'SUPERCAR',
supermini: 'SUPERMINI',
suv: 'SUV',
truck: 'TRUCK',
van: 'VAN',
wagon: 'WAGON',
});
}
static get Condition (): Object {
return Object.freeze({
excellent: 'EXCELLENT',
fair: 'FAIR',
good: 'GOOD',
none: 'NONE',
other: 'OTHER',
poor: 'POOR',
very_good: 'VERY_GOOD',
});
}
static get Drivetrain (): Object {
return Object.freeze({
awd: 'AWD',
four_wd: 'FOUR_WD',
fwd: 'FWD',
none: 'NONE',
other: 'OTHER',
rwd: 'RWD',
two_wd: 'TWO_WD',
});
}
static get FuelType (): Object {
return Object.freeze({
diesel: 'DIESEL',
electric: 'ELECTRIC',
flex: 'FLEX',
gasoline: 'GASOLINE',
hybrid: 'HYBRID',
none: 'NONE',
other: 'OTHER',
petrol: 'PETROL',
plugin_hybrid: 'PLUGIN_HYBRID',
});
}
static get StateOfVehicle (): Object {
return Object.freeze({
cpo: 'CPO',
new: 'NEW',
used: 'USED',
});
}
static get Transmission (): Object {
return Object.freeze({
automatic: 'AUTOMATIC',
manual: 'MANUAL',
none: 'NONE',
other: 'OTHER',
});
}
static get VehicleType (): Object {
return Object.freeze({
boat: 'BOAT',
car_truck: 'CAR_TRUCK',
commercial: 'COMMERCIAL',
motorcycle: 'MOTORCYCLE',
other: 'OTHER',
powersport: 'POWERSPORT',
rv_camper: 'RV_CAMPER',
trailer: 'TRAILER',
});
}
getChannelsToIntegrityStatus (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> {
return this.getEdge(
CatalogItemChannelsToIntegrityStatus,
fields,
params,
fetchFirstPage,
'/channels_to_integrity_status'
);
}
getOverrideDetails (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> {
return this.getEdge(
OverrideDetails,
fields,
params,
fetchFirstPage,
'/override_details'
);
}
getVideosMetadata (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> {
return this.getEdge(
DynamicVideoMetadata,
fields,
params,
fetchFirstPage,
'/videos_metadata'
);
}
get (fields: Array<string>, params: Object = {}): Vehicle {
// $FlowFixMe : Support Generic Types
return this.read(
fields,
params
);
}
// $FlowFixMe : Support Generic Types
update (fields: Array<string>, params: Object = {}): Vehicle {
// $FlowFixMe : Support Generic Types
return super.update(
params
);
}
}