Skip to content

Commit

Permalink
Refactor/move insomnia fetch (#7344)
Browse files Browse the repository at this point in the history
* remove double slash

* move to ui

* use insomniaFetch where possible

* fix lint
  • Loading branch information
jackkav authored Apr 30, 2024
1 parent df36b21 commit 964557c
Show file tree
Hide file tree
Showing 14 changed files with 25 additions and 28 deletions.
2 changes: 1 addition & 1 deletion packages/insomnia/src/account/session.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { insomniaFetch } from '../main/insomniaFetch';
import { userSession } from '../models';
import { insomniaFetch } from '../ui/insomniaFetch';
import * as crypt from './crypt';

type LoginCallback = (isLoggedIn: boolean) => void;
Expand Down
2 changes: 1 addition & 1 deletion packages/insomnia/src/main/api.protocol.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export async function registerInsomniaAPIProtocol() {

protocol.handle(insomniaAPIScheme, async request => {
const origin = request.headers.get('X-Origin') || getApiBaseURL();
const path = request.url.replace(`${insomniaAPIScheme}://insomnia/`, '');
const path = request.url.replace(`${insomniaAPIScheme}://insomnia`, '');
const url = new URL(path, origin);
console.log('Fetching', url.toString());
return net.fetch(url.toString(), request);
Expand Down
2 changes: 1 addition & 1 deletion packages/insomnia/src/models/helpers/project.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { database } from '../../common/database';
import { insomniaFetch } from '../../main/insomniaFetch';
import { initializeLocalBackendProjectAndMarkForSync, pushSnapshotOnInitialize } from '../../sync/vcs/initialize-backend-project';
import { VCS } from '../../sync/vcs/vcs';
import { insomniaFetch } from '../../ui/insomniaFetch';
import { invariant } from '../../utils/invariant';
import { isDefaultOrganizationProject, Project, update as updateProject } from '../project';
import { Workspace } from '../workspace';
Expand Down
17 changes: 7 additions & 10 deletions packages/insomnia/src/sync/git/github-oauth-provider.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { v4 } from 'uuid';

import { getApiBaseURL, getAppWebsiteBaseURL, getGitHubGraphQLApiURL } from '../../common/constants';
import { getAppWebsiteBaseURL, getGitHubGraphQLApiURL } from '../../common/constants';
import { insomniaFetch } from '../../ui/insomniaFetch';

export const GITHUB_TOKEN_STORAGE_KEY = 'github-oauth-token';
export const GITHUB_GRAPHQL_API_URL = getGitHubGraphQLApiURL();
Expand Down Expand Up @@ -42,20 +43,16 @@ export async function exchangeCodeForToken({
);
}

const apiURL = getApiBaseURL();

return window.main.axiosRequest({
url: apiURL + '/v1/oauth/github',
return insomniaFetch<{ access_token: string }>({
path: '/v1/oauth/github',
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: {
code,
},
}).then(result => {
sessionId: '',
}).then(data => {
statesCache.delete(state);
setAccessToken(result.data.access_token);
setAccessToken(data.access_token);
});
}

Expand Down
12 changes: 6 additions & 6 deletions packages/insomnia/src/sync/git/gitlab-oauth-provider.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { createHash, randomBytes } from 'crypto';
import { v4 as uuid } from 'uuid';

import { getApiBaseURL, INSOMNIA_GITLAB_API_URL, INSOMNIA_GITLAB_CLIENT_ID, INSOMNIA_GITLAB_REDIRECT_URI } from '../../common/constants';
import { INSOMNIA_GITLAB_API_URL, INSOMNIA_GITLAB_CLIENT_ID, INSOMNIA_GITLAB_REDIRECT_URI } from '../../common/constants';
import { insomniaFetch } from '../../ui/insomniaFetch';

// Warning: As this is a global fetch we need to handle errors, retries and caching
// GitLab API config
Expand All @@ -22,12 +23,11 @@ const getGitLabConfig = async () => {
};
}

const apiURL = getApiBaseURL();
// Otherwise fetch the config for the GitLab API
return window.main.axiosRequest({
url: apiURL + '/v1/oauth/gitlab/config',
return insomniaFetch<{ applicationId: string; redirectUri: string }>({
path: '/v1/oauth/gitlab/config',
method: 'GET',
}).then(({ data }) => {
sessionId: '',
}).then(data => {
return {
clientId: data.applicationId,
redirectUri: data.redirectUri,
Expand Down
2 changes: 1 addition & 1 deletion packages/insomnia/src/sync/vcs/vcs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import * as crypt from '../../account/crypt';
import * as session from '../../account/session';
import { generateId } from '../../common/misc';
import { strings } from '../../common/strings';
import { insomniaFetch } from '../../main/insomniaFetch';
import { BaseModel } from '../../models';
import { insomniaFetch } from '../../ui/insomniaFetch';
import Store from '../store';
import type { BaseDriver } from '../store/drivers/base';
import compress from '../store/hooks/compress';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ import { useInterval } from 'react-use';

import { getMockServiceURL, getPreviewModeName, PREVIEW_MODE_FRIENDLY, PREVIEW_MODES, PreviewMode } from '../../../common/constants';
import { exportHarCurrentRequest } from '../../../common/har';
import { insomniaFetch } from '../../../main/insomniaFetch';
import { ResponseTimelineEntry } from '../../../main/network/libcurl-promise';
import * as models from '../../../models';
import { MockRoute } from '../../../models/mock-route';
import { MockServer } from '../../../models/mock-server';
import { Response } from '../../../models/response';
import { cancelRequestById } from '../../../network/cancellation';
import { insomniaFetch } from '../../../ui/insomniaFetch';
import { jsonPrettify } from '../../../utils/prettify/json';
import { MockRouteLoaderData } from '../../routes/mock-route';
import { useRootLoaderData } from '../../routes/root';
Expand Down
2 changes: 1 addition & 1 deletion packages/insomnia/src/ui/components/toast.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import {
getProductName,
updatesSupported,
} from '../../common/constants';
import { insomniaFetch } from '../../main/insomniaFetch';
import * as models from '../../models/index';
import { insomniaFetch } from '../../ui/insomniaFetch';
import imgSrcCore from '../images/insomnia-logo.svg';
import { useRootLoaderData } from '../routes/root';
import { Link } from './base/link';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { createContext, FC, PropsWithChildren, useContext, useEffect, useState } from 'react';
import { useFetcher, useParams, useRevalidator, useRouteLoaderData } from 'react-router-dom';

import { insomniaFetch } from '../../../main/insomniaFetch';
import { insomniaFetch } from '../../../ui/insomniaFetch';
import { ProjectLoaderData } from '../../routes/project';
import { useRootLoaderData } from '../../routes/root';
import { WorkspaceLoaderData } from '../../routes/workspace';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export async function insomniaFetch<T = void>({ method, path, data, sessionId, o
if (sessionId === undefined) {
throw new Error(`No session ID provided to ${method}:${path}`);
}
const response = await exponentialBackOff('insomnia-api://insomnia/' + path, config);
const response = await exponentialBackOff('insomnia-api://insomnia' + path, config);
const uri = response.headers.get('x-insomnia-command');
if (uri) {
window.main.openDeepLink(uri);
Expand Down
2 changes: 1 addition & 1 deletion packages/insomnia/src/ui/routes/actions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { database } from '../../common/database';
import { database as db } from '../../common/database';
import { importResourcesToWorkspace, scanResources } from '../../common/import';
import { generateId } from '../../common/misc';
import { insomniaFetch } from '../../main/insomniaFetch';
import * as models from '../../models';
import { getById, update } from '../../models/helpers/request-operations';
import { isRemoteProject } from '../../models/project';
Expand All @@ -22,6 +21,7 @@ import { WorkspaceMeta } from '../../models/workspace-meta';
import { getSendRequestCallback } from '../../network/unit-test-feature';
import { initializeLocalBackendProjectAndMarkForSync } from '../../sync/vcs/initialize-backend-project';
import { VCSInstance } from '../../sync/vcs/insomnia-sync';
import { insomniaFetch } from '../../ui/insomniaFetch';
import { invariant } from '../../utils/invariant';
import { SegmentEvent } from '../analytics';

Expand Down
2 changes: 1 addition & 1 deletion packages/insomnia/src/ui/routes/mock-route.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import { LoaderFunction, useFetcher, useParams, useRouteLoaderData } from 'react
import { CONTENT_TYPE_JSON, CONTENT_TYPE_OTHER, CONTENT_TYPE_PLAINTEXT, CONTENT_TYPE_XML, CONTENT_TYPE_YAML, contentTypesMap, getMockServiceURL, RESPONSE_CODE_REASONS } from '../../common/constants';
import { database as db } from '../../common/database';
import { getResponseCookiesFromHeaders } from '../../common/har';
import { insomniaFetch } from '../../main/insomniaFetch';
import * as models from '../../models';
import { MockRoute } from '../../models/mock-route';
import { MockServer } from '../../models/mock-server';
import { Request, RequestHeader } from '../../models/request';
import { Response } from '../../models/response';
import { insomniaFetch } from '../../ui/insomniaFetch';
import { invariant } from '../../utils/invariant';
import { Dropdown, DropdownButton, DropdownItem, ItemContent } from '../components/base/dropdown';
import { PanelContainer, TabItem, Tabs } from '../components/base/tabs';
Expand Down
2 changes: 1 addition & 1 deletion packages/insomnia/src/ui/routes/organization.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ import { useLocalStorage } from 'react-use';
import * as session from '../../account/session';
import { getAppWebsiteBaseURL } from '../../common/constants';
import { database } from '../../common/database';
import { insomniaFetch } from '../../main/insomniaFetch';
import { userSession } from '../../models';
import { updateLocalProjectToRemote } from '../../models/helpers/project';
import { isOwnerOfOrganization, isPersonalOrganization, isScratchpadOrganizationId, Organization } from '../../models/organization';
import { Project } from '../../models/project';
import { isDesign, isScratchpad } from '../../models/workspace';
import { VCSInstance } from '../../sync/vcs/insomnia-sync';
import { migrateProjectsIntoOrganization, shouldMigrateProjectUnderOrganization } from '../../sync/vcs/migrate-projects-into-organization';
import { insomniaFetch } from '../../ui/insomniaFetch';
import { invariant } from '../../utils/invariant';
import { getLoginUrl } from '../auth-session-provider';
import { Avatar } from '../components/avatar';
Expand Down
2 changes: 1 addition & 1 deletion packages/insomnia/src/ui/routes/project.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ import {
import { database } from '../../common/database';
import { fuzzyMatchAll, isNotNullOrUndefined } from '../../common/misc';
import { descendingNumberSort, sortMethodMap } from '../../common/sorting';
import { insomniaFetch } from '../../main/insomniaFetch';
import * as models from '../../models';
import { userSession } from '../../models';
import { ApiSpec } from '../../models/api-spec';
Expand All @@ -68,6 +67,7 @@ import { WorkspaceMeta } from '../../models/workspace-meta';
import { VCSInstance } from '../../sync/vcs/insomnia-sync';
import { showModal } from '../../ui/components/modals';
import { AskModal } from '../../ui/components/modals/ask-modal';
import { insomniaFetch } from '../../ui/insomniaFetch';
import { invariant } from '../../utils/invariant';
import { AvatarGroup } from '../components/avatar';
import { ProjectDropdown } from '../components/dropdowns/project-dropdown';
Expand Down

0 comments on commit 964557c

Please sign in to comment.