Edits history of script submission #9851 for ' Link User (enode)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    type Enode = {
    	token: string
    }
    
    export async function main(
    	auth: Enode,
    	userId: string,
    	body: {
    		vendor?:
    			| 'APSYSTEMS'
    			| 'CSISolar'
    			| 'Deye'
    			| 'ENPHASE'
    			| 'FOXESS'
    			| 'FRONIUS'
    			| 'GOODWE'
    			| 'GROWATT'
    			| 'Hoymiles'
    			| 'HUAWEI'
    			| 'INVT'
    			| 'SMA'
    			| 'SOFAR'
    			| 'SOLAREDGE'
    			| 'SOLARK'
    			| 'SOLAX'
    			| 'SOLIS'
    			| 'SOLPLANET'
    			| 'SUNGROW'
    			| 'SUNSYNK'
    			| 'TESLA'
    			| 'TSUN'
    			| 'AUDI'
    			| 'BMW'
    			| 'HONDA'
    			| 'HYUNDAI'
    			| 'JAGUAR'
    			| 'LANDROVER'
    			| 'KIA'
    			| 'MERCEDES'
    			| 'MINI'
    			| 'NISSAN'
    			| 'PEUGEOT'
    			| 'PORSCHE'
    			| 'RENAULT'
    			| 'SEAT'
    			| 'SKODA'
    			| 'VOLKSWAGEN'
    			| 'VOLVO'
    			| 'FORD'
    			| 'OPEL'
    			| 'DS'
    			| 'TOYOTA'
    			| 'LEXUS'
    			| 'CITROEN'
    			| 'CUPRA'
    			| 'VAUXHALL'
    			| 'FIAT'
    			| 'RIVIAN'
    			| 'NIO'
    			| 'CHEVROLET'
    			| 'GMC'
    			| 'CADILLAC'
    			| 'XPENG'
    			| 'TADO'
    			| 'MILL'
    			| 'ADAX'
    			| 'ECOBEE'
    			| 'SENSIBO'
    			| 'HONEYWELL'
    			| 'RESIDEO'
    			| 'MITSUBISHI'
    			| 'MICROMATIC'
    			| 'NIBE'
    			| 'PANASONIC'
    			| 'TOSHIBA'
    			| 'DAIKIN'
    			| 'NEST'
    			| 'FUJITSU'
    			| 'BOSCH'
    			| 'NETATMO'
    			| 'ZAPTEC'
    			| 'EASEE'
    			| 'WALLBOX'
    			| 'EO'
    			| 'CHARGEAMPS'
    			| 'EVBOX'
    			| 'GOE'
    			| 'CHARGEPOINT'
    			| 'ENELX'
    			| 'OHME'
    			| 'GARO'
    			| 'SCHNEIDER'
    			| 'PODPOINT'
    		vendorType:
    			| ('vehicle' & {})
    			| ('charger' & {})
    			| ('hvac' & {})
    			| ('inverter' & {})
    			| ('battery' & {})
    			| ('meter' & {})
    		language:
    			| 'browser'
    			| 'da-DK'
    			| 'de-DE'
    			| 'en-US'
    			| 'en-GB'
    			| 'es-ES'
    			| 'fi-FI'
    			| 'fr-FR'
    			| 'it-IT'
    			| 'nb-NO'
    			| 'nl-NL'
    			| 'nl-BE'
    			| 'pt-PT'
    			| 'ro-RO'
    			| 'sv-SE'
    		scopes:
    			| 'battery:control:operation_mode'
    			| 'battery:read:data'
    			| 'battery:read:location'
    			| 'charger:control:charging'
    			| 'charger:read:data'
    			| 'hvac:control:mode'
    			| 'hvac:read:data'
    			| 'inverter:read:data'
    			| 'inverter:read:location'
    			| 'meter:read:data'
    			| 'meter:read:location'
    			| 'vehicle:control:charging'
    			| 'vehicle:read:data'
    			| 'vehicle:read:location'[]
    		redirectUri: string
    		colorScheme?: 'system' | 'light' | 'dark'
    	}
    ) {
    	const url = new URL(`https://enode-api.production.enode.io/users/${userId}/link`)
    
    	const response = await fetch(url, {
    		method: 'POST',
    		headers: {
    			'Content-Type': 'application/json',
    			Authorization: 'Bearer ' + auth.token
    		},
    		body: JSON.stringify(body)
    	})
    
    	if (!response.ok) {
    		const text = await response.text()
    		throw new Error(`${response.status} ${text}`)
    	}
    
    	return await response.json()
    }
    

    Submitted by hugo697 581 days ago