Fix: UserManagement brak nazw (name w db.json), ProfileView hardcoded Anna (resolver pobiera dane po id)
This commit is contained in:
8
db.json
8
db.json
@@ -2,30 +2,38 @@
|
|||||||
"users": [
|
"users": [
|
||||||
{
|
{
|
||||||
"id": "u1",
|
"id": "u1",
|
||||||
|
"name": "Admin User",
|
||||||
"email": "admin@reservations.dev",
|
"email": "admin@reservations.dev",
|
||||||
"password": "Admin1234!",
|
"password": "Admin1234!",
|
||||||
"role": "admin",
|
"role": "admin",
|
||||||
|
"joinedAt": "2023-06-01",
|
||||||
"avatarUrl": "https://i.pravatar.cc/150?u=admin"
|
"avatarUrl": "https://i.pravatar.cc/150?u=admin"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "u2",
|
"id": "u2",
|
||||||
|
"name": "Anna Kowalski",
|
||||||
"email": "anna.kowalski@example.com",
|
"email": "anna.kowalski@example.com",
|
||||||
"password": "Client1234!",
|
"password": "Client1234!",
|
||||||
"role": "client",
|
"role": "client",
|
||||||
|
"joinedAt": "2024-01-15",
|
||||||
"avatarUrl": "https://i.pravatar.cc/150?u=anna"
|
"avatarUrl": "https://i.pravatar.cc/150?u=anna"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "u3",
|
"id": "u3",
|
||||||
|
"name": "Marek Nowak",
|
||||||
"email": "marek.nowak@example.com",
|
"email": "marek.nowak@example.com",
|
||||||
"password": "Client1234!",
|
"password": "Client1234!",
|
||||||
"role": "client",
|
"role": "client",
|
||||||
|
"joinedAt": "2024-02-20",
|
||||||
"avatarUrl": "https://i.pravatar.cc/150?u=marek"
|
"avatarUrl": "https://i.pravatar.cc/150?u=marek"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "u4",
|
"id": "u4",
|
||||||
|
"name": "Julia Wisniewska",
|
||||||
"email": "julia.wisniewska@example.com",
|
"email": "julia.wisniewska@example.com",
|
||||||
"password": "Client1234!",
|
"password": "Client1234!",
|
||||||
"role": "client",
|
"role": "client",
|
||||||
|
"joinedAt": "2024-03-10",
|
||||||
"avatarUrl": "https://i.pravatar.cc/150?u=julia"
|
"avatarUrl": "https://i.pravatar.cc/150?u=julia"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
27
src/main.jsx
27
src/main.jsx
@@ -17,6 +17,7 @@ import { SchemaLink } from '@apollo/client/link/schema';
|
|||||||
import { makeExecutableSchema } from '@graphql-tools/schema';
|
import { makeExecutableSchema } from '@graphql-tools/schema';
|
||||||
// Importowanie głównego komponentu aplikacji
|
// Importowanie głównego komponentu aplikacji
|
||||||
import App from './App.jsx';
|
import App from './App.jsx';
|
||||||
|
import { API_URL } from './config.js';
|
||||||
|
|
||||||
// Instancja z konfiguracją react-query
|
// Instancja z konfiguracją react-query
|
||||||
const queryClient = new QueryClient({
|
const queryClient = new QueryClient({
|
||||||
@@ -84,16 +85,22 @@ const apolloClient = new ApolloClient({
|
|||||||
resolvers: {
|
resolvers: {
|
||||||
// Logika resolverów dla zapytań i mutacji GraphQL
|
// Logika resolverów dla zapytań i mutacji GraphQL
|
||||||
Query: {
|
Query: {
|
||||||
// Jeśli fronted pyta o profil użytkownika, zwracamy dane zdefiniowane w kodzie oraz url awatara
|
// Pobiera profil użytkownika z REST API po id, liczy jego rezerwacje
|
||||||
userProfile: (_, { id }) => ({
|
userProfile: async (_, { id }) => {
|
||||||
id,
|
const [u, reservations] = await Promise.all([
|
||||||
name: 'Anna Kowalski',
|
fetch(`${API_URL}/users/${id}`).then((r) => r.json()),
|
||||||
email: 'anna.kowalski@example.com',
|
fetch(`${API_URL}/reservations?userId=${id}`).then((r) => r.json()),
|
||||||
role: 'client',
|
]);
|
||||||
joinedAt: '2024-01-15',
|
return {
|
||||||
reservationsCount: 3,
|
id: u.id,
|
||||||
avatarUrl: `https://i.pravatar.cc/150?u=${id}`,
|
name: u.name ?? u.email.split('@')[0],
|
||||||
}),
|
email: u.email,
|
||||||
|
role: u.role,
|
||||||
|
joinedAt: u.joinedAt ?? '2024-01-15',
|
||||||
|
reservationsCount: reservations.length,
|
||||||
|
avatarUrl: u.avatarUrl,
|
||||||
|
};
|
||||||
|
},
|
||||||
// Jeśli fronted pyta o recenzje dla danego serwisu, filtrujemy recenzje w pamięci według serviceId
|
// Jeśli fronted pyta o recenzje dla danego serwisu, filtrujemy recenzje w pamięci według serviceId
|
||||||
serviceReviews: (_, { serviceId }) => reviewStore.filter((r) => r.serviceId === serviceId),
|
serviceReviews: (_, { serviceId }) => reviewStore.filter((r) => r.serviceId === serviceId),
|
||||||
// Jeśli fronted pyta o recenzje danego użytkownika, filtrujemy recenzje w pamięci według userId
|
// Jeśli fronted pyta o recenzje danego użytkownika, filtrujemy recenzje w pamięci według userId
|
||||||
|
|||||||
Reference in New Issue
Block a user