forked from polka_billy/porridger
Added api/user request prototype
This commit is contained in:
25
front/src/api/user/index.ts
Normal file
25
front/src/api/user/index.ts
Normal 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 }
|
29
front/src/api/user/types.ts
Normal file
29
front/src/api/user/types.ts
Normal 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 }
|
@ -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'
|
||||
|
22
front/src/hooks/api/useUser.ts
Normal file
22
front/src/hooks/api/useUser.ts
Normal 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
|
@ -70,6 +70,8 @@ function useFetch<R, T>(
|
||||
}
|
||||
}
|
||||
|
||||
export type { UseFetchErrored, UseFetchSucced }
|
||||
|
||||
export default useFetch
|
||||
|
||||
export { gotError, fallbackError }
|
||||
|
Reference in New Issue
Block a user