Skip to content

Commit

Permalink
chore: split axios request options into platform (#3927)
Browse files Browse the repository at this point in the history
Co-authored-by: jamesgeorge007 <jamesgeorge998001@gmail.com>
  • Loading branch information
amk-dev and jamesgeorge007 committed Mar 22, 2024
1 parent c89c2a5 commit d19807b
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { TeamRequest } from "./TeamRequest"
import { Service } from "dioc"
import axios from "axios"
import { Ref } from "vue"
import { platform } from "~/platform"

type CollectionSearchMeta = {
isSearchResult?: boolean
Expand Down Expand Up @@ -199,16 +200,16 @@ export class TeamSearchService extends Service {
this.searchResultsRequests = {}
this.expandedCollections.value = []

const axiosPlatformConfig = platform.auth.axiosPlatformConfig?.() ?? {}

try {
const searchResponse = await axios.get(
`${
this.endpoint
}/team-collection/search/${teamID}?searchQuery=${encodeURIComponent(
query
)}`,
{
withCredentials: true,
}
axiosPlatformConfig
)

if (searchResponse.status !== 200) {
Expand Down
10 changes: 10 additions & 0 deletions packages/hoppscotch-common/src/platform/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Observable } from "rxjs"
import { Component } from "vue"
import { getI18n } from "~/modules/i18n"
import * as E from "fp-ts/Either"
import { AxiosRequestConfig } from "axios"

/**
* A common (and required) set of fields that describe a user.
Expand Down Expand Up @@ -135,6 +136,15 @@ export type AuthPlatformDef = {
*/
getGQLClientOptions?: () => Partial<ClientOptions>

/**
* called by the platform to provide additional/different config options when
* sending requests with axios
* eg: SH needs to include cookies in the request, while Central doesn't and throws a cors error if it does
*
* @returns AxiosRequestConfig
*/
axiosPlatformConfig?: () => AxiosRequestConfig

/**
* Returns the string content that should be returned when the user selects to
* copy auth token from Developer Options.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,13 @@ export const def: AuthPlatformDef = {
}
},

axiosPlatformConfig() {
return {
// for including cookies in the request
withCredentials: true,
}
},

/**
* it is not possible for us to know if the current cookie is expired because we cannot access http-only cookies from js
* hence just returning if the currentUser$ has a value associated with it
Expand Down

0 comments on commit d19807b

Please sign in to comment.