From a5ef0ed60b36a79fe79d6f153fb59ba1df43fb7b Mon Sep 17 00:00:00 2001 From: tonyrewin Date: Tue, 4 Oct 2022 12:26:47 +0300 Subject: [PATCH] some-inbox-auth-fixes --- src/graphql/mutation/auth-register.ts | 4 ++-- src/graphql/publicGraphQLClient.ts | 4 ++-- src/graphql/query/my-chats.ts | 23 +++++++++++++++++++++++ src/graphql/types.gen.ts | 3 ++- src/pages/[...slug].astro | 5 ++--- src/pages/inbox.astro | 15 +++++++++++++++ src/pages/inbox.astro.bak | 13 ------------- src/utils/apiClient.ts | 10 +++++++--- 8 files changed, 53 insertions(+), 24 deletions(-) create mode 100644 src/graphql/query/my-chats.ts create mode 100644 src/pages/inbox.astro delete mode 100644 src/pages/inbox.astro.bak diff --git a/src/graphql/mutation/auth-register.ts b/src/graphql/mutation/auth-register.ts index d68b942a..59feec98 100644 --- a/src/graphql/mutation/auth-register.ts +++ b/src/graphql/mutation/auth-register.ts @@ -1,8 +1,8 @@ import { gql } from '@urql/core' export default gql` - mutation RegisterMutation($email: String!, $password: String!) { - registerUser(email: $email, password: $password) { + mutation RegisterMutation($email: String!, $password: String, $username: String) { + registerUser(email: $email, password: $password, username: $username) { error token user { diff --git a/src/graphql/publicGraphQLClient.ts b/src/graphql/publicGraphQLClient.ts index baa60b54..edf4c596 100644 --- a/src/graphql/publicGraphQLClient.ts +++ b/src/graphql/publicGraphQLClient.ts @@ -2,8 +2,8 @@ import { ClientOptions, dedupExchange, fetchExchange, createClient, Exchange } f import { devtoolsExchange } from '@urql/devtools' import { isDev } from '../utils/config' -export const baseUrl = 'https://newapi.discours.io' -//export const baseUrl = 'http://localhost:8000' +//export const baseUrl = 'https://newapi.discours.io' +export const baseUrl = 'http://localhost:8000' const exchanges: Exchange[] = [dedupExchange, fetchExchange] diff --git a/src/graphql/query/my-chats.ts b/src/graphql/query/my-chats.ts new file mode 100644 index 00000000..043eab0b --- /dev/null +++ b/src/graphql/query/my-chats.ts @@ -0,0 +1,23 @@ +import { gql } from '@urql/core' + +export default gql` + query GetChatsQuery { + myChats { + messages { + chatId + id + author + body + replyTo + createdAt + } + users { + slug + name + pic + } + title + createdAt + } + } +` diff --git a/src/graphql/types.gen.ts b/src/graphql/types.gen.ts index 3f593788..c7185a8e 100644 --- a/src/graphql/types.gen.ts +++ b/src/graphql/types.gen.ts @@ -242,6 +242,7 @@ export type MutationRateUserArgs = { export type MutationRegisterUserArgs = { email: Scalars['String'] password?: InputMaybe + username?: InputMaybe } export type MutationRemoveAuthorArgs = { @@ -475,7 +476,7 @@ export type QueryShoutsForFeedArgs = { offset: Scalars['Int'] } -export type QuerySignInArgs = { +export type MutationSignInArgs = { email: Scalars['String'] password?: InputMaybe } diff --git a/src/pages/[...slug].astro b/src/pages/[...slug].astro index 50756382..5944c480 100644 --- a/src/pages/[...slug].astro +++ b/src/pages/[...slug].astro @@ -4,9 +4,8 @@ import Zine from '../layouts/zine.astro' import { apiClient } from '../utils/apiClient' import { initRouter } from '../stores/router' -const slug = Astro.params.slug?.toString() || '' - -if (slug.includes('/') || slug.includes('.map')) { +const slug = Astro.params.slug?.toString() +if (Boolean(slug) === false || slug.includes('/') || slug.includes('.map')) { return Astro.redirect('/404') } diff --git a/src/pages/inbox.astro b/src/pages/inbox.astro new file mode 100644 index 00000000..99d4c08a --- /dev/null +++ b/src/pages/inbox.astro @@ -0,0 +1,15 @@ +--- +import Zine from '../layouts/zine.astro' +import { Root } from '../components/Root' +import { apiClient } from '../utils/apiClient' +import { initRouter } from '../stores/router' + +const chatrooms = await apiClient.getInboxes() + +const { pathname, search } = Astro.url +initRouter(pathname, search) +--- + + + + diff --git a/src/pages/inbox.astro.bak b/src/pages/inbox.astro.bak deleted file mode 100644 index 80f992c3..00000000 --- a/src/pages/inbox.astro.bak +++ /dev/null @@ -1,13 +0,0 @@ ---- -import InboxPage from '../components/Views/Inbox' -import About from '../layouts/about.astro' - -import { initRouter } from '../../stores/router' - -const { pathname, search } = Astro.url -initRouter(pathname, search) ---- - - - - diff --git a/src/utils/apiClient.ts b/src/utils/apiClient.ts index 54d5c7e3..abf772a2 100644 --- a/src/utils/apiClient.ts +++ b/src/utils/apiClient.ts @@ -30,6 +30,7 @@ import reactionDestroy from '../graphql/mutation/reaction-destroy' import reactionUpdate from '../graphql/mutation/reaction-update' import authorsBySlugs from '../graphql/query/authors-by-slugs' import incrementView from '../graphql/mutation/increment-view' +import myChats from '../graphql/query/my-chats' const log = getLogger('api-client') @@ -69,9 +70,9 @@ export const apiClient = { return response.data.signIn }, - authRegister: async ({ email, password }): Promise => { + authRegister: async ({ email, password = '', username = '' }): Promise => { const response = await publicGraphQLClient - .mutation(authRegisterMutation, { email, password }) + .mutation(authRegisterMutation, { email, password, username }) .toPromise() return response.data.registerUser }, @@ -224,7 +225,7 @@ export const apiClient = { }, getAllAuthors: async () => { - const response = await publicGraphQLClient.query(authorsAll, { limit: 9999, offset: 9999 }).toPromise() + const response = await publicGraphQLClient.query(authorsAll, {}).toPromise() return response.data.authorsAll }, getArticle: async ({ slug }: { slug: string }): Promise => { @@ -293,5 +294,8 @@ export const apiClient = { }, incrementView: async ({ articleSlug }) => { await privateGraphQLClient.mutation(incrementView, { shout: articleSlug }) + }, + getInboxes: async (payload = {}) => { + await privateGraphQLClient.query(myChats, payload) } }