Skip to content

Commit

Permalink
Retry if site could not be created
Browse files Browse the repository at this point in the history
  • Loading branch information
DQGriffin committed Aug 24, 2023
1 parent d4e200c commit 561bde5
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 0 deletions.
30 changes: 30 additions & 0 deletions frontend/src/components/pages/Migration/Sites/models/Site.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,36 @@ interface SiteData {
uri?: string
name: string
extensionNumber: string
tempExtensionNumber?: string
callerIdName: string
email: string
businessAddress: {
country: string
state: string
city: string
street: string
zip: string
},
operator: {
id?: string
uri?: string
extensionNumber: string
name?: string
},
regionalSettings: {
timezone?: {
name: string
}
}
code?: string
}

interface SiteDatWithoutExtension {
id?: string
uri?: string
name: string
extensionNumber?: string
tempExtensionNumber?: string
callerIdName: string
email: string
businessAddress: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,46 @@ const useMigrateSites = (postMessage: (message: Message) => void, postTimedMessa

response.rateLimitInterval > 0 ? await wait(response.rateLimitInterval) : await wait(baseWaitingPeriod)
}
catch (e: any) {
if (e.rateLimitInterval > 0) {
postTimedMessage(new Message(`Rale limit reached. Waiting ${e.rateLimitInterval / 1000} seconds`, 'info'), e.rateLimitInterval)
}
e.rateLimitInterval > 0 ? await wait(e.rateLimitInterval) : await wait(baseWaitingPeriod)
await retryExtension(site, token)
}
}

const retryExtension = async (site: SiteData, token: string) => {
try {
const headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": `Bearer ${token}`
}

// if (site.code) delete site.code

if (site.email) {
site.email = `${site.email}.ps.ringcentral.com`
}
else {
site.email = `noreply-${site.extensionNumber}@ps.ringcentral.com`
}
delete site.id

const data: SiteDatWithoutExtension = structuredClone(site)
delete data.extensionNumber

const response = await RestCentral.post(baseURL, headers, data)
site.id = response.data.id
site.tempExtensionNumber = response.data.extensionNumber

if (response.rateLimitInterval > 0) {
postTimedMessage(new Message(`Rale limit reached. Waiting ${response.rateLimitInterval / 1000} seconds`, 'info'), response.rateLimitInterval)
}

response.rateLimitInterval > 0 ? await wait(response.rateLimitInterval) : await wait(baseWaitingPeriod)
}
catch (e: any) {
if (e.rateLimitInterval > 0) {
postTimedMessage(new Message(`Rale limit reached. Waiting ${e.rateLimitInterval / 1000} seconds`, 'info'), e.rateLimitInterval)
Expand Down

0 comments on commit 561bde5

Please sign in to comment.