some-inbox-auth-fixes

This commit is contained in:
tonyrewin 2022-10-04 12:26:47 +03:00
parent 8b230d2a03
commit a5ef0ed60b
8 changed files with 53 additions and 24 deletions

View File

@ -1,8 +1,8 @@
import { gql } from '@urql/core' import { gql } from '@urql/core'
export default gql` export default gql`
mutation RegisterMutation($email: String!, $password: String!) { mutation RegisterMutation($email: String!, $password: String, $username: String) {
registerUser(email: $email, password: $password) { registerUser(email: $email, password: $password, username: $username) {
error error
token token
user { user {

View File

@ -2,8 +2,8 @@ import { ClientOptions, dedupExchange, fetchExchange, createClient, Exchange } f
import { devtoolsExchange } from '@urql/devtools' import { devtoolsExchange } from '@urql/devtools'
import { isDev } from '../utils/config' import { isDev } from '../utils/config'
export const baseUrl = 'https://newapi.discours.io' //export const baseUrl = 'https://newapi.discours.io'
//export const baseUrl = 'http://localhost:8000' export const baseUrl = 'http://localhost:8000'
const exchanges: Exchange[] = [dedupExchange, fetchExchange] const exchanges: Exchange[] = [dedupExchange, fetchExchange]

View File

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

View File

@ -242,6 +242,7 @@ export type MutationRateUserArgs = {
export type MutationRegisterUserArgs = { export type MutationRegisterUserArgs = {
email: Scalars['String'] email: Scalars['String']
password?: InputMaybe<Scalars['String']> password?: InputMaybe<Scalars['String']>
username?: InputMaybe<Scalars['String']>
} }
export type MutationRemoveAuthorArgs = { export type MutationRemoveAuthorArgs = {
@ -475,7 +476,7 @@ export type QueryShoutsForFeedArgs = {
offset: Scalars['Int'] offset: Scalars['Int']
} }
export type QuerySignInArgs = { export type MutationSignInArgs = {
email: Scalars['String'] email: Scalars['String']
password?: InputMaybe<Scalars['String']> password?: InputMaybe<Scalars['String']>
} }

View File

@ -4,9 +4,8 @@ import Zine from '../layouts/zine.astro'
import { apiClient } from '../utils/apiClient' import { apiClient } from '../utils/apiClient'
import { initRouter } from '../stores/router' import { initRouter } from '../stores/router'
const slug = Astro.params.slug?.toString() || '' const slug = Astro.params.slug?.toString()
if (Boolean(slug) === false || slug.includes('/') || slug.includes('.map')) {
if (slug.includes('/') || slug.includes('.map')) {
return Astro.redirect('/404') return Astro.redirect('/404')
} }

15
src/pages/inbox.astro Normal file
View File

@ -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)
---
<Zine>
<Root client:load />
</Zine>

View File

@ -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)
---
<About>
<InboxPage client:load />
</About>

View File

@ -30,6 +30,7 @@ import reactionDestroy from '../graphql/mutation/reaction-destroy'
import reactionUpdate from '../graphql/mutation/reaction-update' import reactionUpdate from '../graphql/mutation/reaction-update'
import authorsBySlugs from '../graphql/query/authors-by-slugs' import authorsBySlugs from '../graphql/query/authors-by-slugs'
import incrementView from '../graphql/mutation/increment-view' import incrementView from '../graphql/mutation/increment-view'
import myChats from '../graphql/query/my-chats'
const log = getLogger('api-client') const log = getLogger('api-client')
@ -69,9 +70,9 @@ export const apiClient = {
return response.data.signIn return response.data.signIn
}, },
authRegister: async ({ email, password }): Promise<AuthResult> => { authRegister: async ({ email, password = '', username = '' }): Promise<AuthResult> => {
const response = await publicGraphQLClient const response = await publicGraphQLClient
.mutation(authRegisterMutation, { email, password }) .mutation(authRegisterMutation, { email, password, username })
.toPromise() .toPromise()
return response.data.registerUser return response.data.registerUser
}, },
@ -224,7 +225,7 @@ export const apiClient = {
}, },
getAllAuthors: async () => { getAllAuthors: async () => {
const response = await publicGraphQLClient.query(authorsAll, { limit: 9999, offset: 9999 }).toPromise() const response = await publicGraphQLClient.query(authorsAll, {}).toPromise()
return response.data.authorsAll return response.data.authorsAll
}, },
getArticle: async ({ slug }: { slug: string }): Promise<Shout> => { getArticle: async ({ slug }: { slug: string }): Promise<Shout> => {
@ -293,5 +294,8 @@ export const apiClient = {
}, },
incrementView: async ({ articleSlug }) => { incrementView: async ({ articleSlug }) => {
await privateGraphQLClient.mutation(incrementView, { shout: articleSlug }) await privateGraphQLClient.mutation(incrementView, { shout: articleSlug })
},
getInboxes: async (payload = {}) => {
await privateGraphQLClient.query(myChats, payload)
} }
} }