Added api/user request prototype

This commit is contained in:
2023-07-19 23:24:58 +03:00
parent 1b4eed529a
commit 7cf83d099d
7 changed files with 97 additions and 0 deletions

View File

@ -0,0 +1,25 @@
import { API_URL } from '../../config'
import { UserResponse, User } from './types'
import { faker } from '@faker-js/faker/locale/ru'
const initialUser: User = import.meta.env.DEV ? { // Temporary, until api is realized
id: Math.random() * 100,
name: faker.person.firstName() + ' ' + faker.person.lastName(),
regDate: faker.date.anytime().getTime(),
} : {
id: -1,
name: '',
regDate: 0,
}
const composeUserURL = () => (
API_URL + '/user?'
)
const processUser = (data: UserResponse): User => {
return data
}
export { initialUser, composeUserURL, processUser }

View File

@ -0,0 +1,29 @@
import { isObject } from '../../utils/types'
type User = {
id: number,
name: string,
regDate: number,
}
const isUser = (obj: unknown): obj is User => (
isObject(obj, {
'id': 'number',
'name': 'string',
'regDate': 'number',
})
)
type UserResponse = User
// const isUserResponse = (obj: unknown): obj is UserResponse => (
// isObject(obj, {
// })
// )
const isUserResponse = isUser
export type { UserResponse, User }
export { isUserResponse, isUser }

View File

@ -4,3 +4,4 @@ export { default as useAuth } from './useAuth'
export { default as useTrashboxes } from './useTrashboxes'
export { default as useAddAnnouncement } from './useAddAnnouncement'
export { default as useOsmAddresses } from './useOsmAddress'
export { default as useUser } from './useUser'

View File

@ -0,0 +1,22 @@
import { initialUser } from '../../api/user'
import { User } from '../../api/user/types'
import { UseFetchErrored, UseFetchSucced } from '../useFetch'
const useUser = (): UseFetchSucced<User> | UseFetchErrored => (
// useFetch(
// composeUserUrl(getToken()),
// 'GET',
// true,
// isUserResponse,
// processUser,
// initialUser
// )
{
data: initialUser,
loading: false,
error: null,
}
)
export default useUser

View File

@ -70,6 +70,8 @@ function useFetch<R, T>(
}
}
export type { UseFetchErrored, UseFetchSucced }
export default useFetch
export { gotError, fallbackError }