diff --git a/docs/js/docma-web.js b/docs/js/docma-web.js index bf694e6d..717bfad6 100644 --- a/docs/js/docma-web.js +++ b/docs/js/docma-web.js @@ -44,6 +44,6 @@ dust.filters=dust.filters||{},dust.filters.$pt=function(e){return DocmaWeb.Utils DocmaWeb.version = "3.2.2"; return DocmaWeb; })(); -var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * API Class\n *\n * @class API\n * @property {Object} [VEHICLE_VIEWS] - Views available for vehicle images\n * @property {String} [VEHICLE_VIEWS.FRONTSIDE] -\n * @property {String} [VEHICLE_VIEWS.FRONT] -\n * @property {String} [VEHICLE_VIEWS.REARSIDE] -\n * @property {String} [VEHICLE_VIEWS.REAR] -\n * @property {String} [VEHICLE_VIEWS.SIDE] -\n * @property {String} [VEHICLE_VIEWS.DASHBOARD] -\n * @property {String} [VEHICLE_VIEWS.DRIVERDOOR] -\n * @property {String} [VEHICLE_VIEWS.REARBIRDSEYE] -\n */","meta":{"filename":"index.js","lineno":15,"columnno":0,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/api","code":{}},"description":"API Class","kind":"class","name":"API","properties":[{"type":{"names":["Object"]},"optional":true,"description":"Views available for vehicle images","name":"VEHICLE_VIEWS"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.FRONTSIDE"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.FRONT"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.REARSIDE"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.REAR"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.SIDE"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.DASHBOARD"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.DRIVERDOOR"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.REARBIRDSEYE"}],"longname":"API","scope":"global","$longname":"API","$kind":"class","$docmaLink":"?api#API","$members":[{"comment":"/**\n * Gets your currently stored vehicles or fetches them from the BMW's API\n *\n * @memberof API\n * @param {Boolean} [force=false] Force a refresh from ConnectedDrive API\n * @returns {Array}\n *\n * @example\n * const vehicles = await API.getVehicles();\n */","meta":{"range":[5597,6019],"filename":"index.js","lineno":164,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/api","code":{"id":"astnode100000454","name":"API#getVehicles","type":"MethodDefinition","paramnames":["force"]},"vars":{"":null}},"description":"Gets your currently stored vehicles or fetches them from the BMW's API","memberof":"API","params":[{"type":{"names":["Boolean"]},"optional":true,"defaultvalue":false,"description":"Force a refresh from ConnectedDrive API","name":"force"}],"returns":[{"type":{"names":["Array."]}}],"examples":["const vehicles = await API.getVehicles();"],"name":"getVehicles","longname":"API#getVehicles","kind":"function","scope":"instance","async":true,"$longname":"API#getVehicles","$kind":"method","$docmaLink":"?api#API#getVehicles"},{"comment":"/**\n * Initializes the API\n *\n * @param {Object} params\n * @param {('eu'|'us'|'cn')} params.region Region where you have created the ConnectedDrive account\n * @param {String} params.username The ConnectedDrive username (user@example.com)\n * @param {String} params.password The ConnectedDrive password\n * @param {Boolean} [params.debug=false] If you want debugging messages printed to the console\n * @param {Boolean} [params.skipVehicles=false] If you want to skip the initial request of vehicles and do it manually with API.getVehicles()\n * @returns {Promise}\n * @memberof API\n *\n * @example\n * import API from '@mihaiblaga89/bmw-connecteddrive-api';\n *\n * await API.init({\n * region: 'eu',\n * username: 'user@example.com',\n * password: 'mySuperPassword',\n * debug: true,\n * });\n */","meta":{"range":[1896,2780],"filename":"index.js","lineno":56,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/api","code":{"id":"astnode100000069","name":"API#init","type":"MethodDefinition","paramnames":[""]},"vars":{"":null}},"description":"Initializes the API","params":[{"type":{"names":["Object"]},"name":"params"},{"type":{"names":["'eu'","'us'","'cn'"]},"description":"Region where you have created the ConnectedDrive account","name":"params.region"},{"type":{"names":["String"]},"description":"The ConnectedDrive username (user@example.com)","name":"params.username"},{"type":{"names":["String"]},"description":"The ConnectedDrive password","name":"params.password"},{"type":{"names":["Boolean"]},"optional":true,"defaultvalue":false,"description":"If you want debugging messages printed to the console","name":"params.debug"},{"type":{"names":["Boolean"]},"optional":true,"defaultvalue":false,"description":"If you want to skip the initial request of vehicles and do it manually with API.getVehicles()","name":"params.skipVehicles"}],"returns":[{"type":{"names":["Promise."]}}],"memberof":"API","examples":["import API from '@mihaiblaga89/bmw-connecteddrive-api';\n\nawait API.init({\n region: 'eu',\n username: 'user@example.com',\n password: 'mySuperPassword',\n debug: true,\n});"],"name":"init","longname":"API#init","kind":"function","scope":"instance","async":true,"$longname":"API#init","$kind":"method","$docmaLink":"?api#API#init"}],"$constructor":{"comment":"","meta":{"range":[947,1002],"filename":"index.js","lineno":30,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/api","code":{"id":"astnode100000059","name":"API","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"API","longname":"API","kind":"class","scope":"global","params":[],"$longname":"API","$kind":"constructor","$docmaLink":"?api#API"}},{"comment":"/**\n * CBSData\n *\n * @typedef CBSData\n * @type {Object}\n * @property {String} description Description of the message\n * @property {Moment} dueDate Due date for the message, as a {@link https://momentjs.com/docs/|Moment} object\n * @property {Number} remainingMileage Remaining mileage until due\n * @property {String} state State of the message\n * @property {String} type Type of the message (what the message reffers to)\n */","meta":{"filename":"vehicleStatus.js","lineno":4,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{}},"description":"CBSData","kind":"typedef","name":"CBSData","type":{"names":["Object"]},"properties":[{"type":{"names":["String"]},"description":"Description of the message","name":"description"},{"type":{"names":["Moment"]},"description":"Due date for the message, as a {@link https://momentjs.com/docs/|Moment} object","name":"dueDate"},{"type":{"names":["Number"]},"description":"Remaining mileage until due","name":"remainingMileage"},{"type":{"names":["String"]},"description":"State of the message","name":"state"},{"type":{"names":["String"]},"description":"Type of the message (what the message reffers to)","name":"type"}],"longname":"CBSData","scope":"global","$longname":"CBSData","$kind":"typedef","$docmaLink":"?api#CBSData"},{"comment":"/**\n * Vehicle class that handles all the operations for a particular vehicle\n *\n * @class Vehicle\n */","meta":{"filename":"vehicle.js","lineno":5,"columnno":0,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{}},"description":"Vehicle class that handles all the operations for a particular vehicle","kind":"class","name":"Vehicle","longname":"Vehicle","scope":"global","$longname":"Vehicle","$kind":"class","$docmaLink":"?api#Vehicle","$members":[{"comment":"/**\n * Gets the vehicle's photo\n *\n * @param {number} [width=400] Image's width\n * @param {number} [height=400] Image's height\n * @param {String} [view=VEHICLE_VIEWS.FRONTSIDE] - Must be one of {@link API|API.VEHICLE_VIEWS}.*\n * @returns {String} - the image as base64 string\n * @memberof Vehicle\n *\n * @example\n * const image = await Vehicle.getImage(400, 400, API.VEHICLE_VIEWS.FRONTSIDE);\n */","meta":{"range":[1952,2620],"filename":"vehicle.js","lineno":76,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000911","name":"Vehicle#getImage","type":"MethodDefinition","paramnames":["width","height","view"]},"vars":{"":null}},"description":"Gets the vehicle's photo","params":[{"type":{"names":["number"]},"optional":true,"defaultvalue":400,"description":"Image's width","name":"width"},{"type":{"names":["number"]},"optional":true,"defaultvalue":400,"description":"Image's height","name":"height"},{"type":{"names":["String"]},"optional":true,"defaultvalue":"VEHICLE_VIEWS.FRONTSIDE","description":"Must be one of {@link API|API.VEHICLE_VIEWS}.*","name":"view"}],"returns":[{"type":{"names":["String"]},"description":"- the image as base64 string"}],"memberof":"Vehicle","examples":["const image = await Vehicle.getImage(400, 400, API.VEHICLE_VIEWS.FRONTSIDE);"],"name":"getImage","longname":"Vehicle#getImage","kind":"function","scope":"instance","async":true,"$longname":"Vehicle#getImage","$kind":"method","$docmaLink":"?api#Vehicle#getImage"},{"comment":"/**\n * Gets the status of the vehicle\n *\n * @param {Boolean} [force=false] - Force a refresh instead of getting cached data\n * @returns {Promise}\n * @memberof Vehicle\n *\n * @example\n * const ctatus = await Vehicle.getStatus();\n */","meta":{"range":[1227,1502],"filename":"vehicle.js","lineno":57,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000862","name":"Vehicle#getStatus","type":"MethodDefinition","paramnames":["force"]},"vars":{"":null}},"description":"Gets the status of the vehicle","params":[{"type":{"names":["Boolean"]},"optional":true,"defaultvalue":false,"description":"Force a refresh instead of getting cached data","name":"force"}],"returns":[{"type":{"names":["Promise."]}}],"memberof":"Vehicle","examples":["const ctatus = await Vehicle.getStatus();"],"name":"getStatus","longname":"Vehicle#getStatus","kind":"function","scope":"instance","async":true,"$longname":"Vehicle#getStatus","$kind":"method","$docmaLink":"?api#Vehicle#getStatus"},{"comment":"/**\n * Returns the vehicle's model\n *\n * @readonly\n * @returns {String}\n * @memberof Vehicle\n *\n * @example\n * const { model } = Vehicle\n */","meta":{"range":[876,935],"filename":"vehicle.js","lineno":43,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000852","name":"Vehicle#model","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"Returns the vehicle's model","readonly":true,"returns":[{"type":{"names":["String"]}}],"memberof":"Vehicle","examples":["const { model } = Vehicle"],"name":"model","longname":"Vehicle#model","kind":"member","scope":"instance","params":[],"$longname":"Vehicle#model","$kind":"property","$docmaLink":"?api#Vehicle#model"},{"comment":"/**\n * Returns the vehicle's name as a combination of year, brand, bodytype and model\n * Ex. 2017 BMW F30 320d\n *\n * @readonly\n * @returns {String}\n * @memberof Vehicle\n */","meta":{"range":[2831,3001],"filename":"vehicle.js","lineno":100,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100001022","name":"Vehicle#name","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"Returns the vehicle's name as a combination of year, brand, bodytype and model\nEx. 2017 BMW F30 320d","readonly":true,"returns":[{"type":{"names":["String"]}}],"memberof":"Vehicle","name":"name","longname":"Vehicle#name","kind":"member","scope":"instance","params":[],"$longname":"Vehicle#name","$kind":"property","$docmaLink":"?api#Vehicle#name"},{"comment":"/**\n * Returns the vehicle's VIN\n *\n * @readonly\n * @returns {String}\n * @memberof Vehicle\n *\n * @example\n * const { vin } = Vehicle\n */","meta":{"range":[634,689],"filename":"vehicle.js","lineno":29,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000842","name":"Vehicle#vin","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"Returns the vehicle's VIN","readonly":true,"returns":[{"type":{"names":["String"]}}],"memberof":"Vehicle","examples":["const { vin } = Vehicle"],"name":"vin","longname":"Vehicle#vin","kind":"member","scope":"instance","params":[],"$longname":"Vehicle#vin","$kind":"property","$docmaLink":"?api#Vehicle#vin"}],"$constructor":{"comment":"","meta":{"range":[245,451],"filename":"vehicle.js","lineno":11,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000802","name":"Vehicle","type":"MethodDefinition","paramnames":["originalData","API"]},"vars":{"":null}},"undocumented":true,"name":"Vehicle","longname":"Vehicle","kind":"class","scope":"global","params":[],"$longname":"Vehicle","$kind":"constructor","$docmaLink":"?api#Vehicle"}},{"comment":"/**\n * VehicleStatus\n *\n * @typedef VehicleStatus\n * @type {Object}\n * @property {String} digitalChargingServiceActivation Status of the Digital Charging Services\n * @property {String} digitalChargingServiceOngoing Status of the Digital Charging Services\n * @property {Array} conditionBasedServicingData CBS Data\n */","meta":{"filename":"vehicleStatus.js","lineno":25,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{}},"description":"VehicleStatus","kind":"typedef","name":"VehicleStatus","type":{"names":["Object"]},"properties":[{"type":{"names":["String"]},"description":"Status of the Digital Charging Services","name":"digitalChargingServiceActivation"},{"type":{"names":["String"]},"description":"Status of the Digital Charging Services","name":"digitalChargingServiceOngoing"},{"type":{"names":["Array."]},"description":"CBS Data","name":"conditionBasedServicingData"}],"longname":"VehicleStatus","scope":"global","$longname":"VehicleStatus","$kind":"typedef","$docmaLink":"?api#VehicleStatus"}],"symbols":["API","API#getVehicles","API#init","CBSData","Vehicle","Vehicle#getImage","Vehicle#getStatus","Vehicle#model","Vehicle#name","Vehicle#vin","VehicleStatus"]}},"app":{"title":"BMW ConnectedDrive API Documentation","entrance":"content:readme","routing":{"method":"query","caseSensitive":true},"server":"github","base":"/","meta":null,"favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"API","href":"/?api"},"navbar":{"menu":[{"label":"Docs","iconClass":"fas fa-book","href":"./"},{"label":"API","iconClass":"fas fa-mouse-pointer","href":"?api"},{"label":"GitHub","iconClass":"fab fa-github","href":"https://github.com/mihaiblaga89/bmw-connecteddrive-api","target":"_blank"}],"enabled":true,"fixed":true,"dark":false,"animations":true},"logo":null,"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); +var docma = Object.freeze(new DocmaWeb({"version":"3.2.2","routes":[{"id":"api:","type":"api","name":"_def_","path":"?api","contentPath":null,"sourceType":"js"},{"id":"content:readme","type":"content","name":"readme","path":"?content=readme","contentPath":"content/readme.html","sourceType":"md"}],"apis":{"_def_":{"documentation":[{"comment":"/**\n * API Class\n *\n * @class API\n * @property {Object} [VEHICLE_VIEWS] - Views available for vehicle images\n * @property {String} [VEHICLE_VIEWS.FRONTSIDE] -\n * @property {String} [VEHICLE_VIEWS.FRONT] -\n * @property {String} [VEHICLE_VIEWS.REARSIDE] -\n * @property {String} [VEHICLE_VIEWS.REAR] -\n * @property {String} [VEHICLE_VIEWS.SIDE] -\n * @property {String} [VEHICLE_VIEWS.DASHBOARD] -\n * @property {String} [VEHICLE_VIEWS.DRIVERDOOR] -\n * @property {String} [VEHICLE_VIEWS.REARBIRDSEYE] -\n */","meta":{"filename":"index.js","lineno":15,"columnno":0,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/api","code":{}},"description":"API Class","kind":"class","name":"API","properties":[{"type":{"names":["Object"]},"optional":true,"description":"Views available for vehicle images","name":"VEHICLE_VIEWS"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.FRONTSIDE"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.FRONT"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.REARSIDE"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.REAR"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.SIDE"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.DASHBOARD"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.DRIVERDOOR"},{"type":{"names":["String"]},"optional":true,"description":"-","name":"VEHICLE_VIEWS.REARBIRDSEYE"}],"longname":"API","scope":"global","$longname":"API","$kind":"class","$docmaLink":"?api#API","$members":[{"comment":"/**\n * Gets your currently stored vehicles or fetches them from the BMW's API\n *\n * @memberof API\n * @param {Boolean} [force=false] Force a refresh from ConnectedDrive API\n * @returns {Array}\n *\n * @example\n * const vehicles = await API.getVehicles();\n */","meta":{"range":[5597,6019],"filename":"index.js","lineno":164,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/api","code":{"id":"astnode100000454","name":"API#getVehicles","type":"MethodDefinition","paramnames":["force"]},"vars":{"":null}},"description":"Gets your currently stored vehicles or fetches them from the BMW's API","memberof":"API","params":[{"type":{"names":["Boolean"]},"optional":true,"defaultvalue":false,"description":"Force a refresh from ConnectedDrive API","name":"force"}],"returns":[{"type":{"names":["Array."]}}],"examples":["const vehicles = await API.getVehicles();"],"name":"getVehicles","longname":"API#getVehicles","kind":"function","scope":"instance","async":true,"$longname":"API#getVehicles","$kind":"method","$docmaLink":"?api#API#getVehicles"},{"comment":"/**\n * Initializes the API\n *\n * @param {Object} params\n * @param {('eu'|'us'|'cn')} params.region Region where you have created the ConnectedDrive account\n * @param {String} params.username The ConnectedDrive username (user@example.com)\n * @param {String} params.password The ConnectedDrive password\n * @param {Boolean} [params.debug=false] If you want debugging messages printed to the console\n * @param {Boolean} [params.skipVehicles=false] If you want to skip the initial request of vehicles and do it manually with API.getVehicles()\n * @returns {Promise}\n * @memberof API\n *\n * @example\n * import API from '@mihaiblaga89/bmw-connecteddrive-api';\n *\n * await API.init({\n * region: 'eu',\n * username: 'user@example.com',\n * password: 'mySuperPassword',\n * debug: true,\n * });\n */","meta":{"range":[1896,2780],"filename":"index.js","lineno":56,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/api","code":{"id":"astnode100000069","name":"API#init","type":"MethodDefinition","paramnames":[""]},"vars":{"":null}},"description":"Initializes the API","params":[{"type":{"names":["Object"]},"name":"params"},{"type":{"names":["'eu'","'us'","'cn'"]},"description":"Region where you have created the ConnectedDrive account","name":"params.region"},{"type":{"names":["String"]},"description":"The ConnectedDrive username (user@example.com)","name":"params.username"},{"type":{"names":["String"]},"description":"The ConnectedDrive password","name":"params.password"},{"type":{"names":["Boolean"]},"optional":true,"defaultvalue":false,"description":"If you want debugging messages printed to the console","name":"params.debug"},{"type":{"names":["Boolean"]},"optional":true,"defaultvalue":false,"description":"If you want to skip the initial request of vehicles and do it manually with API.getVehicles()","name":"params.skipVehicles"}],"returns":[{"type":{"names":["Promise."]}}],"memberof":"API","examples":["import API from '@mihaiblaga89/bmw-connecteddrive-api';\n\nawait API.init({\n region: 'eu',\n username: 'user@example.com',\n password: 'mySuperPassword',\n debug: true,\n});"],"name":"init","longname":"API#init","kind":"function","scope":"instance","async":true,"$longname":"API#init","$kind":"method","$docmaLink":"?api#API#init"}],"$constructor":{"comment":"","meta":{"range":[947,1002],"filename":"index.js","lineno":30,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/api","code":{"id":"astnode100000059","name":"API","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"undocumented":true,"name":"API","longname":"API","kind":"class","scope":"global","params":[],"$longname":"API","$kind":"constructor","$docmaLink":"?api#API"}},{"comment":"/**\n * CBSData\n *\n * @typedef CBSData\n * @type {Object}\n * @property {String} description Description of the message\n * @property {Moment} dueDate Due date for the message, as a {@link https://momentjs.com/docs/|Moment} object\n * @property {Number} remainingMileage Remaining mileage until due\n * @property {String} state State of the message\n * @property {String} type Type of the message (what the message reffers to)\n */","meta":{"filename":"vehicleStatus.js","lineno":4,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{}},"description":"CBSData","kind":"typedef","name":"CBSData","type":{"names":["Object"]},"properties":[{"type":{"names":["String"]},"description":"Description of the message","name":"description"},{"type":{"names":["Moment"]},"description":"Due date for the message, as a {@link https://momentjs.com/docs/|Moment} object","name":"dueDate"},{"type":{"names":["Number"]},"description":"Remaining mileage until due","name":"remainingMileage"},{"type":{"names":["String"]},"description":"State of the message","name":"state"},{"type":{"names":["String"]},"description":"Type of the message (what the message reffers to)","name":"type"}],"longname":"CBSData","scope":"global","$longname":"CBSData","$kind":"typedef","$docmaLink":"?api#CBSData"},{"comment":"/**\n * Vehicle class that handles all the operations for a particular vehicle\n *\n * @class Vehicle\n */","meta":{"filename":"vehicle.js","lineno":5,"columnno":0,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{}},"description":"Vehicle class that handles all the operations for a particular vehicle","kind":"class","name":"Vehicle","longname":"Vehicle","scope":"global","$longname":"Vehicle","$kind":"class","$docmaLink":"?api#Vehicle","$members":[{"comment":"/**\n * Gets the vehicle's photo\n *\n * @param {number} [width=400] Image's width\n * @param {number} [height=400] Image's height\n * @param {String} [view=VEHICLE_VIEWS.FRONTSIDE] - Must be one of {@link API|API.VEHICLE_VIEWS}.*\n * @returns {String} - the image as base64 string\n * @memberof Vehicle\n *\n * @example\n * const image = await Vehicle.getImage(400, 400, API.VEHICLE_VIEWS.FRONTSIDE);\n */","meta":{"range":[1973,2641],"filename":"vehicle.js","lineno":76,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000915","name":"Vehicle#getImage","type":"MethodDefinition","paramnames":["width","height","view"]},"vars":{"":null}},"description":"Gets the vehicle's photo","params":[{"type":{"names":["number"]},"optional":true,"defaultvalue":400,"description":"Image's width","name":"width"},{"type":{"names":["number"]},"optional":true,"defaultvalue":400,"description":"Image's height","name":"height"},{"type":{"names":["String"]},"optional":true,"defaultvalue":"VEHICLE_VIEWS.FRONTSIDE","description":"Must be one of {@link API|API.VEHICLE_VIEWS}.*","name":"view"}],"returns":[{"type":{"names":["String"]},"description":"- the image as base64 string"}],"memberof":"Vehicle","examples":["const image = await Vehicle.getImage(400, 400, API.VEHICLE_VIEWS.FRONTSIDE);"],"name":"getImage","longname":"Vehicle#getImage","kind":"function","scope":"instance","async":true,"$longname":"Vehicle#getImage","$kind":"method","$docmaLink":"?api#Vehicle#getImage"},{"comment":"/**\n * Gets the status of the vehicle\n *\n * @param {Boolean} [force=false] - Force a refresh instead of getting cached data\n * @returns {Promise}\n * @memberof Vehicle\n *\n * @example\n * const ctatus = await Vehicle.getStatus();\n */","meta":{"range":[1227,1523],"filename":"vehicle.js","lineno":57,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000862","name":"Vehicle#getStatus","type":"MethodDefinition","paramnames":["force"]},"vars":{"":null}},"description":"Gets the status of the vehicle","params":[{"type":{"names":["Boolean"]},"optional":true,"defaultvalue":false,"description":"Force a refresh instead of getting cached data","name":"force"}],"returns":[{"type":{"names":["Promise."]}}],"memberof":"Vehicle","examples":["const ctatus = await Vehicle.getStatus();"],"name":"getStatus","longname":"Vehicle#getStatus","kind":"function","scope":"instance","async":true,"$longname":"Vehicle#getStatus","$kind":"method","$docmaLink":"?api#Vehicle#getStatus"},{"comment":"/**\n * Returns the vehicle's model\n *\n * @readonly\n * @returns {String}\n * @memberof Vehicle\n *\n * @example\n * const { model } = Vehicle\n */","meta":{"range":[876,935],"filename":"vehicle.js","lineno":43,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000852","name":"Vehicle#model","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"Returns the vehicle's model","readonly":true,"returns":[{"type":{"names":["String"]}}],"memberof":"Vehicle","examples":["const { model } = Vehicle"],"name":"model","longname":"Vehicle#model","kind":"member","scope":"instance","params":[],"$longname":"Vehicle#model","$kind":"property","$docmaLink":"?api#Vehicle#model"},{"comment":"/**\n * Returns the vehicle's name as a combination of year, brand, bodytype and model\n * Ex. 2017 BMW F30 320d\n *\n * @readonly\n * @returns {String}\n * @memberof Vehicle\n */","meta":{"range":[2852,3022],"filename":"vehicle.js","lineno":100,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100001026","name":"Vehicle#name","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"Returns the vehicle's name as a combination of year, brand, bodytype and model\nEx. 2017 BMW F30 320d","readonly":true,"returns":[{"type":{"names":["String"]}}],"memberof":"Vehicle","name":"name","longname":"Vehicle#name","kind":"member","scope":"instance","params":[],"$longname":"Vehicle#name","$kind":"property","$docmaLink":"?api#Vehicle#name"},{"comment":"/**\n * Returns the vehicle's VIN\n *\n * @readonly\n * @returns {String}\n * @memberof Vehicle\n *\n * @example\n * const { vin } = Vehicle\n */","meta":{"range":[634,689],"filename":"vehicle.js","lineno":29,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000842","name":"Vehicle#vin","type":"MethodDefinition","paramnames":[]},"vars":{"":null}},"description":"Returns the vehicle's VIN","readonly":true,"returns":[{"type":{"names":["String"]}}],"memberof":"Vehicle","examples":["const { vin } = Vehicle"],"name":"vin","longname":"Vehicle#vin","kind":"member","scope":"instance","params":[],"$longname":"Vehicle#vin","$kind":"property","$docmaLink":"?api#Vehicle#vin"}],"$constructor":{"comment":"","meta":{"range":[245,451],"filename":"vehicle.js","lineno":11,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{"id":"astnode100000802","name":"Vehicle","type":"MethodDefinition","paramnames":["originalData","API"]},"vars":{"":null}},"undocumented":true,"name":"Vehicle","longname":"Vehicle","kind":"class","scope":"global","params":[],"$longname":"Vehicle","$kind":"constructor","$docmaLink":"?api#Vehicle"}},{"comment":"/**\n * VehicleStatus\n *\n * @typedef VehicleStatus\n * @type {Object}\n * @property {String} digitalChargingServiceActivation Status of the Digital Charging Services\n * @property {String} digitalChargingServiceOngoing Status of the Digital Charging Services\n * @property {Array} conditionBasedServicingData CBS Data\n * @property {Boolean} cached Whether or not the data returned is from cache or not\n */","meta":{"filename":"vehicleStatus.js","lineno":25,"columnno":4,"path":"/Users/lego/work/personal/bmw-connecteddrive-api/src/models","code":{}},"description":"VehicleStatus","kind":"typedef","name":"VehicleStatus","type":{"names":["Object"]},"properties":[{"type":{"names":["String"]},"description":"Status of the Digital Charging Services","name":"digitalChargingServiceActivation"},{"type":{"names":["String"]},"description":"Status of the Digital Charging Services","name":"digitalChargingServiceOngoing"},{"type":{"names":["Array."]},"description":"CBS Data","name":"conditionBasedServicingData"},{"type":{"names":["Boolean"]},"description":"Whether or not the data returned is from cache or not","name":"cached"}],"longname":"VehicleStatus","scope":"global","$longname":"VehicleStatus","$kind":"typedef","$docmaLink":"?api#VehicleStatus"}],"symbols":["API","API#getVehicles","API#init","CBSData","Vehicle","Vehicle#getImage","Vehicle#getStatus","Vehicle#model","Vehicle#name","Vehicle#vin","VehicleStatus"]}},"app":{"title":"BMW ConnectedDrive API Documentation","entrance":"content:readme","routing":{"method":"query","caseSensitive":true},"server":"github","base":"/","meta":null,"favicon":""},"template":{"name":"docma-template-zebra","description":"Zebra - Default template for Docma. https://github.com/onury/docma","version":"2.3.1","supportedDocmaVersion":">=2.0.0","author":"Onur Yıldırım","license":"MIT","mainHTML":"index.html","options":{"title":{"label":"API","href":"/?api"},"navbar":{"menu":[{"label":"Docs","iconClass":"fas fa-book","href":"./"},{"label":"API","iconClass":"fas fa-mouse-pointer","href":"?api"},{"label":"GitHub","iconClass":"fab fa-github","href":"https://github.com/mihaiblaga89/bmw-connecteddrive-api","target":"_blank"}],"enabled":true,"fixed":true,"dark":false,"animations":true},"logo":null,"sidebar":{"enabled":true,"outline":"tree","collapsed":false,"toolbar":true,"itemsFolded":false,"itemsOverflow":"crop","badges":true,"search":true,"animations":true},"symbols":{"autoLink":true,"params":"list","enums":"list","props":"list","meta":false},"contentView":{"bookmarks":false,"faVersion":"5.5.0","faLibs":"all"}}},"partials":{"api":"docma-api","content":"docma-content","notFound":"docma-404"},"elementID":"docma-main","contentElementID":"docma-content","defaultApiName":"_def_","logsEnabled":false})); !function(){"use strict";var c="path"===docma.app.routing.method;function n(a){return(a.params[1]||"").replace(/\/$/,"")}function a(a,e){var o=n(a)||docma._.defaultApiName,t=docma.createRoute(o,DocmaWeb.Route.Type.API);if(!t||!t.exists())return e();t.apply()}docma.app.base&&page.base(docma.app.base),page.redirect("(/)?"+docma.template.main,""),c&&(page("(/)?api/(.+)",a),page("(/)?api(/)?",a),page("(/)?(.*)",function(a,e){var o=n(a),t=docma.createRoute(o,DocmaWeb.Route.Type.CONTENT);if(!t||!t.exists())return e();t.apply()})),page("(/)?",function(t,n){!function(){if(c){var a=sessionStorage.getItem("redirectPath")||null;if(a)return sessionStorage.removeItem("redirectPath"),docma.info("Redirecting to:",a),page.redirect(a),!0}return!1}()&&setTimeout(function(){var a,e=function(a){var e=a||window.location.search;return/^[?&]/.test(e)&&(e=e.slice(1)),e||null}(t.querystring);if(c){if(e)return n();a=docma._.appEntranceRI}else docma.log("Query-string:",e),a=e?docma.createRouteFromQuery(e):docma._.appEntranceRI;if(!a||!a.exists())return n();function o(){docma._trigger(DocmaWeb.Event.Navigate,[a])}a.isCurrent()?o():a.apply(function(a){200===a&&o()})},100)}),page("*",function(a){docma.warn("Unknown Route:",a.path),docma.log("context:",a),docma.createRoute(null).apply()}),docma.info("Docma SPA Configuration:"),docma.info("App Title: ",docma.app.title),docma.info("Routing Method: ",docma.app.routing.method),docma.info("App Server: ",docma.app.server),docma.info("Base Path: ",docma.app.base),docma.info("Entrance Route ID: ",docma.app.entrance),window.onload=function(){docma._.initialLoad=!0,docma._.appEntranceRI=docma.createRouteFromID(docma.app.entrance),page.start({click:!0,popstate:!0,dispatch:!0,hashbang:!1,decodeURLComponents:!0}),docma.info("Docma SPA loaded!")}}(); \ No newline at end of file diff --git a/renovate.json b/renovate.json index 611a7c4c..c0b099a4 100644 --- a/renovate.json +++ b/renovate.json @@ -5,5 +5,6 @@ "commitMessageSuffix": "(ignore)", "major": { "automerge": false - } + }, + "schedule": "before 3am on Monday" } diff --git a/src/models/vehicle.js b/src/models/vehicle.js index 129c26ad..8f4c28e8 100644 --- a/src/models/vehicle.js +++ b/src/models/vehicle.js @@ -55,7 +55,7 @@ class Vehicle { * const ctatus = await Vehicle.getStatus(); */ async getStatus(force) { - if (this.status && !force) return this.status; + if (this.status && !force) return { ...this.status, cached: true }; const { vehicleStatus } = await this.API.requestWithAuth(this.BMWURLs.getVehicleStatusURL(this.vin)); this.status = VehicleStatus(vehicleStatus); return this.status; diff --git a/src/models/vehicleStatus.js b/src/models/vehicleStatus.js index f76aef9f..c309708f 100644 --- a/src/models/vehicleStatus.js +++ b/src/models/vehicleStatus.js @@ -30,6 +30,7 @@ const vehicleStatus = (status = {}) => { * @property {String} digitalChargingServiceActivation Status of the Digital Charging Services * @property {String} digitalChargingServiceOngoing Status of the Digital Charging Services * @property {Array} conditionBasedServicingData CBS Data + * @property {Boolean} cached Whether or not the data returned is from cache or not */ return { digitalChargingServiceActivation: status.DCS_CCH_Activation, @@ -73,6 +74,7 @@ const vehicleStatus = (status = {}) => { windowDriverRear: status.windowDriverRear, windowPassengerFront: status.windowPassengerFront, windowPassengerRear: status.windowPassengerRear, + cached: false, }; };