refactor: http service (#2233)

This commit is contained in:
Mo
2023-02-28 20:43:25 -06:00
committed by GitHub
parent 6e7618b258
commit e7f1d35341
142 changed files with 1116 additions and 1307 deletions

View File

@@ -12,6 +12,7 @@ import Icon from '@/Components/Icon/Icon'
import IconButton from '@/Components/Button/IconButton'
import AdvancedOptions from './AdvancedOptions'
import HorizontalSeparator from '../Shared/HorizontalSeparator'
import { isErrorResponse } from '@standardnotes/snjs'
type Props = {
viewControllerManager: ViewControllerManager
@@ -96,9 +97,9 @@ const SignInPane: FunctionComponent<Props> = ({ application, viewControllerManag
application
.signIn(email, password, isStrictSignin, isEphemeral, shouldMergeLocal)
.then((res) => {
if (res.error) {
throw new Error(res.error.message)
.then((response) => {
if (isErrorResponse(response)) {
throw new Error(response.data?.error.message)
}
viewControllerManager.accountMenuController.closeAccountMenu()
})

View File

@@ -7,6 +7,7 @@ import { ChangeEventHandler, FunctionComponent, useEffect, useRef, useState } fr
import FloatingLabelInput from '@/Components/Input/FloatingLabelInput'
import { isEmailValid } from '@/Utils'
import { BlueDotIcon, CircleIcon, DiamondIcon } from '@standardnotes/icons'
import { isErrorResponse } from '@standardnotes/snjs'
type Props = {
viewControllerManager: ViewControllerManager
@@ -70,8 +71,8 @@ const SignIn: FunctionComponent<Props> = ({ viewControllerManager, application }
try {
const response = await application.signIn(email, password)
if (response.error || response.data?.error) {
throw new Error(response.error?.message || response.data?.error?.message)
if (isErrorResponse(response)) {
throw new Error(response.data.error?.message)
} else {
viewControllerManager.purchaseFlowController.closePurchaseFlow()
viewControllerManager.purchaseFlowController.openPurchaseFlow()

View File

@@ -1,5 +1,5 @@
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { SNApplication, SessionStrings, UuidString, isNullOrUndefined, RemoteSession } from '@standardnotes/snjs'
import { SNApplication, SessionStrings, UuidString, SessionListEntry, isErrorResponse } from '@standardnotes/snjs'
import { FunctionComponent, useState, useEffect, useRef, useMemo, useCallback } from 'react'
import { Alert } from '@reach/alert'
import { AlertDialog, AlertDialogDescription, AlertDialogLabel } from '@reach/alert-dialog'
@@ -11,7 +11,7 @@ import Icon from '../Icon/Icon'
import Modal, { ModalAction } from '../Modal/Modal'
import ModalOverlay from '../Modal/ModalOverlay'
type Session = RemoteSession & {
type Session = SessionListEntry & {
revoking?: true
}
@@ -26,18 +26,20 @@ function useSessions(
useEffect(() => {
;(async () => {
setRefreshing(true)
const response = await application.getSessions()
if ('error' in response || isNullOrUndefined(response.data)) {
if (response.error?.message) {
setErrorMessage(response.error.message)
if (isErrorResponse(response)) {
if (response.data?.error?.message) {
setErrorMessage(response.data?.error.message)
} else {
setErrorMessage('An unknown error occured while loading sessions.')
}
} else {
const sessions = response.data as RemoteSession[]
const sessions = response.data as SessionListEntry[]
setSessions(sessions)
setErrorMessage('')
}
setRefreshing(false)
})().catch(console.error)
}, [application, lastRefreshDate])
@@ -60,13 +62,11 @@ function useSessions(
setSessions(sessionsDuringRevoke)
const response = await responsePromise
if (isNullOrUndefined(response)) {
if (!response) {
setSessions(sessionsBeforeRevoke)
} else if ('error' in response) {
if (response.error?.message) {
setErrorMessage(response.error?.message)
} else {
setErrorMessage('An unknown error occured while revoking the session.')
} else if (isErrorResponse(response)) {
if (response.data?.error.message) {
setErrorMessage(response.data?.error.message || 'An unknown error occured while revoking the session.')
}
setSessions(sessionsBeforeRevoke)
} else {
@@ -145,7 +145,7 @@ const SessionsModalContent: FunctionComponent<{
<span className="font-bold text-info">Current session</span>
) : (
<>
<p>Signed in on {formatter.format(session.updated_at)}</p>
<p>Signed in on {formatter.format(new Date(session.updated_at))}</p>
<Button
primary
small