Compare commits

..

1 Commits

Author SHA1 Message Date
Mir Arif Hasan
6e1e459833 chore: db migration missing message 2023-12-19 18:36:53 +06:00
11 changed files with 18 additions and 123 deletions

View File

@@ -295,7 +295,6 @@
"incorrect_email": "Incorrect email",
"invalid_link": "Invalid link",
"invalid_link_description": "The link you clicked is invalid or expired.",
"invalid_embed_link": "The embed does not exist or is invalid.",
"json_parsing_failed": "Invalid JSON",
"json_prettify_invalid_body": "Couldn't prettify an invalid body, solve json syntax errors and try again",
"network_error": "There seems to be a network error. Please try again.",

View File

@@ -33,7 +33,6 @@
@select="onSelect"
@update-team="updateTeam"
@update-collection-type="updateCollectionType"
@set-team-collection-adapter="teamCollectionAdapter = $event"
/>
</div>
</template>
@@ -87,7 +86,6 @@ import { platform } from "~/platform"
import { useService } from "dioc/vue"
import { RESTTabService } from "~/services/tab/rest"
import { GQLTabService } from "~/services/tab/graphql"
import TeamCollectionAdapter from "~/helpers/teams/TeamCollectionAdapter"
const t = useI18n()
const toast = useToast()
@@ -95,8 +93,6 @@ const toast = useToast()
const RESTTabs = useService(RESTTabService)
const GQLTabs = useService(GQLTabService)
const teamCollectionAdapter = ref<TeamCollectionAdapter>()
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
type CollectionType =
@@ -384,6 +380,7 @@ const saveRequestAs = async () => {
platform: "rest",
workspaceType: "team",
})
pipe(
updateTeamRequest(picked.value.requestID, data),
TE.match(
@@ -391,31 +388,7 @@ const saveRequestAs = async () => {
toast.error(`${getErrorMessage(err)}`)
modalLoadingState.value = false
},
(result) => {
const { updateRequest } = result
RESTTabs.currentActiveTab.value.document = {
request: requestUpdated,
isDirty: false,
saveContext: {
originLocation: "team-collection",
requestID: updateRequest.id,
collectionID: updateRequest.collectionID,
},
}
if (teamCollectionAdapter.value) {
const { auth, headers } =
teamCollectionAdapter.value.cascadeParentCollectionForHeaderAuth(
updateRequest.collectionID
)
RESTTabs.currentActiveTab.value.document.inheritedProperties = {
auth,
headers,
}
}
() => {
modalLoadingState.value = false
requestSaved()
}
@@ -543,18 +516,6 @@ const updateTeamCollectionOrFolder = (
},
}
if (teamCollectionAdapter.value) {
const { auth, headers } =
teamCollectionAdapter.value.cascadeParentCollectionForHeaderAuth(
createRequestInCollection.collection.id
)
RESTTabs.currentActiveTab.value.document.inheritedProperties = {
auth,
headers,
}
}
modalLoadingState.value = false
requestSaved()
}

View File

@@ -262,7 +262,6 @@ const emit = defineEmits<{
(event: "select", payload: Picked | null): void
(event: "update-team", team: SelectedTeam): void
(event: "update-collection-type", type: CollectionType["type"]): void
(event: "set-team-collection-adapter", adapter: TeamCollectionAdapter): void
}>()
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
@@ -355,7 +354,6 @@ watch(
(newTeam) => {
if (newTeam) {
teamCollectionAdapter.changeTeamID(newTeam.id)
emit("set-team-collection-adapter", teamCollectionAdapter)
}
}
)

View File

@@ -21,7 +21,7 @@
/>
</div>
<div class="flex flex-col">
<div v-if="loading" class="flex flex-col items-center justify-center p-4">
<div v-if="loading" class="flex flex-col items-center justify-center">
<HoppSmartSpinner class="mb-4" />
<span class="text-secondaryLight">{{ t("state.loading") }}</span>
</div>
@@ -451,7 +451,7 @@ const getErrorMessage = (err: GQLError<string>) => {
}
switch (err.error) {
case "shortcode/not_found":
return t("shared_requests.not_found")
return t("shared_request.not_found")
default:
return t("error.something_went_wrong")
}

View File

@@ -2,6 +2,5 @@ mutation UpdateRequest($data: UpdateTeamRequestInput!, $requestID: ID!) {
updateRequest(data: $data, requestID: $requestID) {
id
title
collectionID
}
}

View File

@@ -156,7 +156,6 @@ export default class ShortcodeListAdapter {
const [shortcodeCreated$, shortcodeCreatedSub] = runAuthOnlyGQLSubscription(
{
query: ShortcodeCreatedDocument,
variables: {},
}
)
@@ -173,7 +172,6 @@ export default class ShortcodeListAdapter {
const [shortcodeRevoked$, shortcodeRevokedSub] = runAuthOnlyGQLSubscription(
{
query: ShortcodeDeletedDocument,
variables: {},
}
)
@@ -190,7 +188,6 @@ export default class ShortcodeListAdapter {
const [shortcodeUpdated$, shortcodeUpdatedSub] = runAuthOnlyGQLSubscription(
{
query: ShortcodeUpdatedDocument,
variables: {},
}
)

View File

@@ -1034,11 +1034,6 @@ export default class NewTeamCollectionAdapter {
}
}
/**
* Used to obtain the inherited auth and headers for a given folder path, used for both REST and GraphQL team collections
* @param folderPath the path of the folder to cascade the auth from
* @returns the inherited auth and headers for the given folder path
*/
public cascadeParentCollectionForHeaderAuth(folderPath: string) {
let auth: HoppInheritedProperty["auth"] = {
parentID: folderPath ?? "",
@@ -1094,10 +1089,7 @@ export default class NewTeamCollectionAdapter {
const parentFolderAuth = data.auth
const parentFolderHeaders = data.headers
if (
parentFolderAuth?.authType === "inherit" &&
[...path.slice(0, i + 1)].length === 1
) {
if (parentFolderAuth?.authType === "inherit" && path.length === 1) {
auth = {
parentID: [...path.slice(0, i + 1)].join("/"),
parentName: parentFolder.title,

View File

@@ -68,7 +68,7 @@ export function navigateToFolderWithIndexPath(
}
/**
* Used to obtain the inherited auth and headers for a given folder path, used for both REST and GraphQL personal collections
* Used to obtain the inherited auth and headers for a given folder path, used for both REST and GraphQL
* @param folderPath the path of the folder to cascade the auth from
* @param type the type of collection
* @returns the inherited auth and headers for the given folder path

View File

@@ -1,58 +1,11 @@
<template>
<div class="flex flex-col justify-center">
<div
v-if="invalidLink"
class="flex flex-1 flex-col items-center justify-center p-8"
>
<icon-lucide-alert-triangle class="svg-icons mb-2 opacity-75" />
<h1 class="heading text-center">
{{ t("error.invalid_link") }}
</h1>
<p class="mt-2 text-center">
{{ t("error.invalid_embed_link") }}
</p>
</div>
<div class="flex flex-col flex-1 w-full">
<Embeds
v-else-if="!invalidLink && tab"
v-if="tab"
v-model:modelTab="tab"
:properties="properties"
:shared-request-i-d="sharedRequestID"
/>
<div v-else class="flex flex-1 flex-col items-center justify-center p-4">
<div
v-if="sharedRequestDetails.loading"
class="flex flex-1 flex-col items-center justify-center p-4"
>
<HoppSmartSpinner />
</div>
<div v-else>
<div
v-if="
!sharedRequestDetails.loading && E.isLeft(sharedRequestDetails.data)
"
class="flex flex-col items-center p-4"
>
<icon-lucide-alert-triangle class="svg-icons mb-2 opacity-75" />
<h1 class="heading text-center">
{{ t("error.invalid_link") }}
</h1>
<p class="mt-2 text-center">
{{ t("error.invalid_embed_link") }}
</p>
</div>
<div
v-if="
!sharedRequestDetails.loading &&
E.isRight(sharedRequestDetails.data)
"
class="flex flex-1 flex-col items-center justify-center p-4"
>
<h1 class="heading">
{{ t("state.loading") }}
</h1>
</div>
</div>
</div>
</div>
</template>
@@ -75,9 +28,6 @@ import {
import { HoppTab } from "~/services/tab"
import { HoppRESTDocument } from "~/helpers/rest/document"
import { applySetting } from "~/newstore/settings"
import { useI18n } from "~/composables/i18n"
const t = useI18n()
const route = useRoute()

View File

@@ -244,13 +244,9 @@ export class PersistenceService extends Service {
private setupSettingsPersistence() {
const settingsKey = "settings"
let settingsData = JSON.parse(
window.localStorage.getItem(settingsKey) ?? "null"
window.localStorage.getItem(settingsKey) || "{}"
)
if (!settingsData) {
settingsData = getDefaultSettings()
}
// Validate data read from localStorage
const result = SETTINGS_SCHEMA.safeParse(settingsData)
if (result.success) {

View File

@@ -36,7 +36,7 @@ const SettingsDefSchema = z.object({
httpUser: z.boolean(),
httpPassword: z.boolean(),
bearerToken: z.boolean(),
oauth2Token: z.optional(z.boolean()),
oauth2Token: z.boolean(),
}),
THEME_COLOR: ThemeColorSchema,
BG_COLOR: BgColorSchema,
@@ -103,10 +103,13 @@ export const LOCAL_STATE_SCHEMA = z.union([
.strict(),
])
export const SETTINGS_SCHEMA = SettingsDefSchema.extend({
EXTENSIONS_ENABLED: z.optional(z.boolean()),
PROXY_ENABLED: z.optional(z.boolean()),
})
export const SETTINGS_SCHEMA = z.union([
z.object({}).strict(),
SettingsDefSchema.extend({
EXTENSIONS_ENABLED: z.optional(z.boolean()),
PROXY_ENABLED: z.optional(z.boolean()),
}),
])
export const REST_HISTORY_ENTRY_SCHEMA = z
.object({
@@ -205,7 +208,7 @@ export const MQTT_REQUEST_SCHEMA = z.nullable(
z
.object({
endpoint: z.string(),
clientID: z.optional(z.string()),
clientID: z.string(),
})
.strict()
)