-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathreconnect.ts
More file actions
52 lines (43 loc) · 1.53 KB
/
reconnect.ts
File metadata and controls
52 lines (43 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { ExtensionContext, StatusBarItem, commands, window } from 'vscode'
import { StatusBar } from '../views/statusBar/statusBar'
import { log } from '../utils/logger'
import { Command, StatusBarState } from '../utils'
import { Authorization } from '../utils/authorization'
import { Store } from '../utils/store'
import { ActivePullRequests } from '../models/activePullRequests'
const module = 'reconnect.ts'
export const Reconnect = async (
context: ExtensionContext,
statusBar: StatusBarItem
) => {
log.info(`reconnecting to PullFlow`, module)
const session = await Authorization.currentSession(context)
if (!session) {
StatusBar.update({ context, statusBar, state: StatusBarState.SignedOut })
return
}
const codeReviews = await ActivePullRequests.get({
accessToken: session.accessToken,
context,
})
// if codeReviews contain error message
if (codeReviews.requireRelogin) {
log.error(codeReviews.error, module)
window.showInformationMessage(`PullFlow: Please login again`)
commands.executeCommand(Command.signOut)
return
}
if (codeReviews.error) {
log.info(`Failed to reconnect`, module)
StatusBar.update({ context, statusBar, state: StatusBarState.Error })
return
}
log.info(`Reconnected`, module)
await Store.set(context, {
pendingUserCodeReviews: codeReviews.data.pending,
userAuthoredCodeReviews: codeReviews.data.authored,
})
StatusBar.update({ context, statusBar, state: StatusBarState.SignedIn })
commands.executeCommand(Command.activePullRequests)
return
}