Skip to content

Commit

Permalink
feat(chore): implement fetch user params
Browse files Browse the repository at this point in the history
Regarding to #37
  • Loading branch information
Intevel committed Jun 1, 2022
1 parent 66d3dba commit 2fe048a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
8 changes: 7 additions & 1 deletion src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { resolve } from "path";
import { fileURLToPath } from "url";
import defu from "defu";
import { defineNuxtModule, addPlugin } from "@nuxt/kit";

import { DirectusQueryParams } from "./runtime/types";
export interface ModuleOptions {
/**
* Directus API URL
Expand All @@ -16,6 +16,11 @@ export interface ModuleOptions {
* @type boolean
*/
autoFetch?: boolean;
/**
* fetch user params
* @type boolean
*/
fetchUserParams?: DirectusQueryParams;
}

export default defineNuxtModule<ModuleOptions>({
Expand All @@ -37,6 +42,7 @@ export default defineNuxtModule<ModuleOptions>({
{
url: options.url,
autoFetch: options.autoFetch,
fetchUserParams: options.fetchUserParams,
}
);

Expand Down
20 changes: 19 additions & 1 deletion src/runtime/composables/useDirectusAuth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ import { useDirectus } from "./useDirectus";
import { useDirectusUser } from "./useDirectusUser";
import { useDirectusUrl } from "./useDirectusUrl";
import { useDirectusToken } from "./useDirectusToken";
import { useRuntimeConfig } from "#app";

export const useDirectusAuth = () => {
const url = useDirectusUrl();
const config = useRuntimeConfig();
const directus = useDirectus();
const user = useDirectusUser();
const token = useDirectusToken();
Expand All @@ -29,7 +31,23 @@ export const useDirectusAuth = () => {
const fetchUser = async (): Promise<Ref<DirectusUser>> => {
if (token.value && !user.value) {
try {
var res = await directus<{ data: DirectusUser }>("/users/me");
if (config.directus.fetchUserParams?.filter) {
(config.directus.fetchUserParams.filter as unknown) = JSON.stringify(
config.directus.fetchUserParams.filter
);
}
if (config.directus.fetchUserParams?.deep) {
(config.directus.fetchUserParams.deep as unknown) = JSON.stringify(
config.directus.fetchUserParams.deep
);
}
if (config.directus.fetchUserParams) {
var res = await directus<{ data: DirectusUser }>("/users/me", {
params: config.directus.fetchUserParams,
});
} else {
var res = await directus<{ data: DirectusUser }>("/users/me");
}
setUser(res.data);
} catch (e) {
setToken(null);
Expand Down

0 comments on commit 2fe048a

Please sign in to comment.