export const parseAndSubmitAuthorizeForm = async ( response: string, serverUrl: string ) => { let authUrl: string | null = null const params: any = {} const responseBody = response.split('')[1].split('')[0] const bodyElement = document.createElement('div') bodyElement.innerHTML = responseBody const form = bodyElement.querySelector('#application_authorization') authUrl = form ? serverUrl + form.getAttribute('action') : null const inputs: any = form?.querySelectorAll('input') for (const input of inputs) { if (input.name === 'user_oauth_approval') { input.value = 'true' } params[input.name] = input.value } const formData = new FormData() for (const key in params) { if (params.hasOwnProperty(key)) { formData.append(key, params[key]) } } return new Promise((resolve, reject) => { if (authUrl) { fetch(authUrl, { method: 'POST', credentials: 'include', body: formData, referrerPolicy: 'same-origin' }) .then((res) => res.text()) .then((res) => { resolve(res) }) } else { reject('Auth form url is null') } }) }