Edits history of script submission #10192 for ' Delete an existing feed connection (xero)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    type Xero = {
    	token: string
    }
    /**
     * Delete an existing feed connection
     * By passing in FeedConnections array object in the body, you can delete a feed connection.
     */
    export async function main(
    	auth: Xero,
    	Xero_Tenant_Id: string,
    	Idempotency_Key: string,
    	body: {
    		pagination?: {
    			page?: number
    			pageSize?: number
    			pageCount?: number
    			itemCount?: number
    		}
    		items?: {
    			id?: string
    			accountToken?: string
    			accountNumber?: string
    			accountName?: string
    			accountId?: string
    			accountType?: 'BANK' | 'CREDITCARD'
    			currency?:
    				| 'AED'
    				| 'AFN'
    				| 'ALL'
    				| 'AMD'
    				| 'ANG'
    				| 'AOA'
    				| 'ARS'
    				| 'AUD'
    				| 'AWG'
    				| 'AZN'
    				| 'BAM'
    				| 'BBD'
    				| 'BDT'
    				| 'BGN'
    				| 'BHD'
    				| 'BIF'
    				| 'BMD'
    				| 'BND'
    				| 'BOB'
    				| 'BRL'
    				| 'BSD'
    				| 'BTN'
    				| 'BWP'
    				| 'BYN'
    				| 'BZD'
    				| 'CAD'
    				| 'CDF'
    				| 'CHF'
    				| 'CLP'
    				| 'CNY'
    				| 'COP'
    				| 'CRC'
    				| 'CUC'
    				| 'CUP'
    				| 'CVE'
    				| 'CZK'
    				| 'DJF'
    				| 'DKK'
    				| 'DOP'
    				| 'DZD'
    				| 'EGP'
    				| 'ERN'
    				| 'ETB'
    				| 'EUR'
    				| 'FJD'
    				| 'FKP'
    				| 'GBP'
    				| 'GEL'
    				| 'GGP'
    				| 'GHS'
    				| 'GIP'
    				| 'GMD'
    				| 'GNF'
    				| 'GTQ'
    				| 'GYD'
    				| 'HKD'
    				| 'HNL'
    				| 'HRK'
    				| 'HTG'
    				| 'HUF'
    				| 'IDR'
    				| 'ILS'
    				| 'IMP'
    				| 'INR'
    				| 'IQD'
    				| 'IRR'
    				| 'ISK'
    				| 'JEP'
    				| 'JMD'
    				| 'JOD'
    				| 'JPY'
    				| 'KES'
    				| 'KGS'
    				| 'KHR'
    				| 'KMF'
    				| 'KPW'
    				| 'KRW'
    				| 'KWD'
    				| 'KYD'
    				| 'KZT'
    				| 'LAK'
    				| 'LBP'
    				| 'LKR'
    				| 'LRD'
    				| 'LSL'
    				| 'LYD'
    				| 'MAD'
    				| 'MDL'
    				| 'MGA'
    				| 'MKD'
    				| 'MMK'
    				| 'MNT'
    				| 'MOP'
    				| 'MRU'
    				| 'MUR'
    				| 'MVR'
    				| 'MWK'
    				| 'MXN'
    				| 'MYR'
    				| 'MZN'
    				| 'NAD'
    				| 'NGN'
    				| 'NIO'
    				| 'NOK'
    				| 'NPR'
    				| 'NZD'
    				| 'OMR'
    				| 'PAB'
    				| 'PEN'
    				| 'PGK'
    				| 'PHP'
    				| 'PKR'
    				| 'PLN'
    				| 'PYG'
    				| 'QAR'
    				| 'RON'
    				| 'RSD'
    				| 'RUB'
    				| 'RWF'
    				| 'SAR'
    				| 'SBD'
    				| 'SCR'
    				| 'SDG'
    				| 'SEK'
    				| 'SGD'
    				| 'SHP'
    				| 'SLL'
    				| 'SOS'
    				| 'SPL'
    				| 'SRD'
    				| 'STN'
    				| 'SVC'
    				| 'SYP'
    				| 'SZL'
    				| 'THB'
    				| 'TJS'
    				| 'TMT'
    				| 'TND'
    				| 'TOP'
    				| 'TRY'
    				| 'TTD'
    				| 'TVD'
    				| 'TWD'
    				| 'TZS'
    				| 'UAH'
    				| 'UGX'
    				| 'USD'
    				| 'UYU'
    				| 'UZS'
    				| 'VEF'
    				| 'VND'
    				| 'VUV'
    				| 'WST'
    				| 'XAF'
    				| 'XCD'
    				| 'XDR'
    				| 'XOF'
    				| 'XPF'
    				| 'YER'
    				| 'ZAR'
    				| 'ZMW'
    				| 'ZMK'
    				| 'ZWD'
    			country?:
    				| 'AD'
    				| 'AE'
    				| 'AF'
    				| 'AG'
    				| 'AI'
    				| 'AL'
    				| 'AM'
    				| 'AN'
    				| 'AO'
    				| 'AQ'
    				| 'AR'
    				| 'AS'
    				| 'AT'
    				| 'AU'
    				| 'AW'
    				| 'AZ'
    				| 'BA'
    				| 'BB'
    				| 'BD'
    				| 'BE'
    				| 'BF'
    				| 'BG'
    				| 'BH'
    				| 'BI'
    				| 'BJ'
    				| 'BL'
    				| 'BM'
    				| 'BN'
    				| 'BO'
    				| 'BR'
    				| 'BS'
    				| 'BT'
    				| 'BW'
    				| 'BY'
    				| 'BZ'
    				| 'CA'
    				| 'CC'
    				| 'CD'
    				| 'CF'
    				| 'CG'
    				| 'CH'
    				| 'CI'
    				| 'CK'
    				| 'CL'
    				| 'CM'
    				| 'CN'
    				| 'CO'
    				| 'CR'
    				| 'CU'
    				| 'CV'
    				| 'CW'
    				| 'CX'
    				| 'CY'
    				| 'CZ'
    				| 'DE'
    				| 'DJ'
    				| 'DK'
    				| 'DM'
    				| 'DO'
    				| 'DZ'
    				| 'EC'
    				| 'EE'
    				| 'EG'
    				| 'EH'
    				| 'ER'
    				| 'ES'
    				| 'ET'
    				| 'FI'
    				| 'FJ'
    				| 'FK'
    				| 'FM'
    				| 'FO'
    				| 'FR'
    				| 'GA'
    				| 'GB'
    				| 'GD'
    				| 'GE'
    				| 'GG'
    				| 'GH'
    				| 'GI'
    				| 'GL'
    				| 'GM'
    				| 'GN'
    				| 'GQ'
    				| 'GR'
    				| 'GT'
    				| 'GU'
    				| 'GW'
    				| 'GY'
    				| 'HK'
    				| 'HN'
    				| 'HR'
    				| 'HT'
    				| 'HU'
    				| 'ID'
    				| 'IE'
    				| 'IL'
    				| 'IM'
    				| 'IN'
    				| 'IO'
    				| 'IQ'
    				| 'IR'
    				| 'IS'
    				| 'IT'
    				| 'JE'
    				| 'JM'
    				| 'JO'
    				| 'JP'
    				| 'KE'
    				| 'KG'
    				| 'KH'
    				| 'KI'
    				| 'KM'
    				| 'KN'
    				| 'KP'
    				| 'KR'
    				| 'KW'
    				| 'KY'
    				| 'KZ'
    				| 'LA'
    				| 'LB'
    				| 'LC'
    				| 'LI'
    				| 'LK'
    				| 'LR'
    				| 'LS'
    				| 'LT'
    				| 'LU'
    				| 'LV'
    				| 'LY'
    				| 'MA'
    				| 'MC'
    				| 'MD'
    				| 'ME'
    				| 'MF'
    				| 'MG'
    				| 'MH'
    				| 'MK'
    				| 'ML'
    				| 'MM'
    				| 'MN'
    				| 'MO'
    				| 'MP'
    				| 'MR'
    				| 'MS'
    				| 'MT'
    				| 'MU'
    				| 'MV'
    				| 'MW'
    				| 'MX'
    				| 'MY'
    				| 'MZ'
    				| 'NA'
    				| 'NC'
    				| 'NE'
    				| 'NG'
    				| 'NI'
    				| 'NL'
    				| 'NO'
    				| 'NP'
    				| 'NR'
    				| 'NU'
    				| 'NZ'
    				| 'OM'
    				| 'PA'
    				| 'PE'
    				| 'PF'
    				| 'PG'
    				| 'PH'
    				| 'PK'
    				| 'PL'
    				| 'PM'
    				| 'PN'
    				| 'PR'
    				| 'PS'
    				| 'PT'
    				| 'PW'
    				| 'PY'
    				| 'QA'
    				| 'RE'
    				| 'RO'
    				| 'RS'
    				| 'RU'
    				| 'RW'
    				| 'SA'
    				| 'SB'
    				| 'SC'
    				| 'SD'
    				| 'SE'
    				| 'SG'
    				| 'SH'
    				| 'SI'
    				| 'SJ'
    				| 'SK'
    				| 'SL'
    				| 'SM'
    				| 'SN'
    				| 'SO'
    				| 'SR'
    				| 'SS'
    				| 'ST'
    				| 'SV'
    				| 'SX'
    				| 'SY'
    				| 'SZ'
    				| 'TC'
    				| 'TD'
    				| 'TG'
    				| 'TH'
    				| 'TJ'
    				| 'TK'
    				| 'TL'
    				| 'TM'
    				| 'TN'
    				| 'TO'
    				| 'TR'
    				| 'TT'
    				| 'TV'
    				| 'TW'
    				| 'TZ'
    				| 'UA'
    				| 'UG'
    				| 'US'
    				| 'UY'
    				| 'UZ'
    				| 'VA'
    				| 'VC'
    				| 'VE'
    				| 'VG'
    				| 'VI'
    				| 'VN'
    				| 'VU'
    				| 'WF'
    				| 'WS'
    				| 'XK'
    				| 'YE'
    				| 'YT'
    				| 'ZA'
    				| 'ZM'
    				| 'ZW'
    			status?: 'PENDING' | 'REJECTED'
    			error?: {
    				title?: string
    				status?: number
    				detail?: string
    				type?:
    					| 'invalid-request'
    					| 'invalid-application'
    					| 'invalid-feed-connection'
    					| 'duplicate-statement'
    					| 'invalid-end-balance'
    					| 'invalid-start-and-end-date'
    					| 'invalid-start-date'
    					| 'internal-error'
    					| 'feed-already-connected-in-current-organisation'
    					| 'invalid-end-date'
    					| 'statement-not-found'
    					| 'feed-connected-in-different-organisation'
    					| 'feed-already-connected-in-different-organisation'
    					| 'bank-feed-not-found'
    					| 'invalid-country-specified'
    					| 'invalid-organisation-bank-feeds'
    					| 'invalid-organisation-multi-currency'
    					| 'invalid-feed-connection-for-organisation'
    					| 'invalid-user-role'
    					| 'account-not-valid'
    					| 'feed-not-found-or-already-deleted'
    			}
    		}[]
    	}
    ) {
    	const url = new URL(`https://api.xero.com/bankfeeds.xro/1.0/FeedConnections/DeleteRequests`)
    
    	const response = await fetch(url, {
    		method: 'POST',
    		headers: {
    			Accept: 'application/json',
    			'Xero-Tenant-Id': Xero_Tenant_Id,
    			'Idempotency-Key': Idempotency_Key,
    			'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 515 days ago