chore: split axios request options into platform (#3927)

Co-authored-by: jamesgeorge007 <jamesgeorge998001@gmail.com>
This commit is contained in:
Akash K 2024-03-22 13:42:41 +05:30 committed by GitHub
parent c89c2a5f5c
commit d19807b212
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 3 deletions

View File

@ -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
@ -199,6 +200,8 @@ export class TeamSearchService extends Service {
this.searchResultsRequests = {}
this.expandedCollections.value = []
const axiosPlatformConfig = platform.auth.axiosPlatformConfig?.() ?? {}
try {
const searchResponse = await axios.get(
`${
@ -206,9 +209,7 @@ export class TeamSearchService extends Service {
}/team-collection/search/${teamID}?searchQuery=${encodeURIComponent(
query
)}`,
{
withCredentials: true,
}
axiosPlatformConfig
)
if (searchResponse.status !== 200) {

View File

@ -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.
@ -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.

View File

@ -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