From 473f437fcfa398b474fe3cfab3f1779ce2e57634 Mon Sep 17 00:00:00 2001 From: Ruidy Date: Mon, 31 May 2021 09:42:54 +0200 Subject: [PATCH] refresh --- package.json | 19 +- schema.graphql | 123 +- src/{App.test.js => App.test.tsx} | 2 +- src/App.tsx | 4 +- src/Router.tsx | 6 +- src/components/About.tsx | 12 - src/components/Header.tsx | 4 +- src/components/button.tsx | 4 +- src/components/layout.tsx | 3 +- src/containers/about/index.tsx | 12 + src/containers/home/TodoList.tsx | 8 +- src/containers/home/index.tsx | 6 +- src/{serviceWorker.js => serviceWorker.ts} | 0 src/{setupTests.js => setupTests.ts} | 0 yarn.lock | 6816 ++++++++++---------- 15 files changed, 3710 insertions(+), 3309 deletions(-) rename src/{App.test.js => App.test.tsx} (82%) delete mode 100644 src/components/About.tsx create mode 100644 src/containers/about/index.tsx rename src/{serviceWorker.js => serviceWorker.ts} (100%) rename src/{setupTests.js => setupTests.ts} (100%) diff --git a/package.json b/package.json index 3171228..568875b 100644 --- a/package.json +++ b/package.json @@ -3,17 +3,16 @@ "version": "0.1.0", "private": true, "dependencies": { - "@apollo/client": "^3.2.5", - "@testing-library/jest-dom": "^4.2.4", - "@testing-library/react": "^9.3.2", - "@testing-library/user-event": "^7.1.2", - "graphql": "^15.3.0", - "immer": "^9.0.0", - "react": "^17.0.0", - "react-dom": "^17.0.0", + "@apollo/client": "^3.3.19", + "@testing-library/jest-dom": "^5.12.0", + "@testing-library/react": "^11.2.7", + "@testing-library/user-event": "^13.1.9", + "graphql": "^15.5.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", "react-router-dom": "^5.2.0", - "react-scripts": "3.4.4", - "styled-components": "^5.2.0" + "react-scripts": "^4.0.3", + "styled-components": "^5.3.0" }, "scripts": { "start": "react-scripts start", diff --git a/schema.graphql b/schema.graphql index d7bc99e..81083c1 100644 --- a/schema.graphql +++ b/schema.graphql @@ -1,61 +1,144 @@ # This file was generated based on ".graphqlconfig". Do not edit manually. schema { - query: TodoQuery - mutation: Mutations + query: Query + mutation: Mutation } +"Response interface" +interface ResponseField { + errorMessage: String + isSuccess: Boolean +} + +"Assign an existing task to an existing user" +type AssignTodoToUser { + result: ResponseField +} + +"Close an existing task" type CloseTodo { - todo: TodoType + result: TodoResponseField } +"Create a new task." type CreateTodo { - todo: TodoType + result: TodoResponseField } +"Register an user" +type CreateUser { + result: UserResponseField +} + +"Deassign an existing task from an existing user" +type DeassignTodoToUser { + result: ResponseField +} + +"Delete an existing task" type DeleteTodo { - todo: TodoType + result: TodoResponseField } -type Mutations { +"Unregister an existing user" +type DeleteUser { + result: UserResponseField +} + +type Mutation { + "Assign an existing task to an existing user" + assignTodoToUser(todoId: String, userId: String): AssignTodoToUser + "Close an existing task" closeTodo(todoId: String!): CloseTodo - createTodo(title: String = ""): CreateTodo + "Create a new task." + createTodo(title: String!): CreateTodo + "Register an user" + createUser(username: String): CreateUser + "Deassign an existing task from an existing user" + deassignTodoToUser(todoId: String, userId: String): DeassignTodoToUser + "Delete an existing task" deleteTodo(todoId: String!): DeleteTodo + "Unregister an existing user" + deleteUser(userId: String!): DeleteUser + "Update an existing task" updateTodo(todo: TodoInputType): UpdateTodo + "Update user information" + updateUser(user: UserInputType): UpdateUser } -type TodoListResponseField { +type Query { + "Retrieve an existing tasks" + getTodo(todoId: String!): TodoResponseField + "Retrieve a registered user" + getUser(userId: String!): UserResponseField + "List existing tasks" + listTodos: TodoListResponseField + "List registered users" + listUsers: UserListResponseField +} + +"Todos list response object" +type TodoListResponseField implements ResponseField { errorMessage: String isSuccess: Boolean todos: [TodoType] } -"Defines the query and how to interact with" -type TodoQuery { - getTodo(todoId: String!): TodoResponseField - listTodos: TodoListResponseField -} - -type TodoResponseField { +"Todo response object" +type TodoResponseField implements ResponseField { errorMessage: String isSuccess: Boolean todo: TodoType } -"Query Object Type" +"Todo Object Type" type TodoType { isDone: Boolean title: String todoId: String } +"Update an existing task" type UpdateTodo { - todo: TodoType + result: TodoResponseField } -"Mutation Input Object Type" +"Update user information" +type UpdateUser { + result: UserResponseField +} + +"User list response object" +type UserListResponseField implements ResponseField { + errorMessage: String + isSuccess: Boolean + users: [UserType] +} + +"User response object" +type UserResponseField implements ResponseField { + errorMessage: String + isSuccess: Boolean + user: UserType +} + +"User schema type" +type UserType { + tasks: [TodoType] + userId: String + username: String +} + +"Todo Input Object" input TodoInputType { - isDone: Boolean = false - title: String = "" + isDone: Boolean + title: String todoId: String } + +"User input object" +input UserInputType { + userId: String + username: String +} diff --git a/src/App.test.js b/src/App.test.tsx similarity index 82% rename from src/App.test.js rename to src/App.test.tsx index 4db7ebc..67d44d6 100644 --- a/src/App.test.js +++ b/src/App.test.tsx @@ -4,6 +4,6 @@ import App from './App'; test('renders learn react link', () => { const { getByText } = render(); - const linkElement = getByText(/learn react/i); + const linkElement = getByText(/Your tasks/i); expect(linkElement).toBeInTheDocument(); }); diff --git a/src/App.tsx b/src/App.tsx index fc48006..2ce2f67 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,9 +1,9 @@ -import React, { FC } from 'react'; +import React from 'react'; import Router from './Router'; import { Layout } from './components/layout'; -const App: FC = () => ( +const App = () => ( diff --git a/src/Router.tsx b/src/Router.tsx index 2037cd7..654fbfa 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -1,10 +1,10 @@ -import React, { FC } from 'react'; +import React from 'react'; import { Route, Switch } from 'react-router-dom'; -import { About } from './components/About'; +import { About } from './containers/about'; import { Home } from './containers/home'; -const Router: FC = () => ( +const Router = () => ( diff --git a/src/components/About.tsx b/src/components/About.tsx deleted file mode 100644 index 4ceb5cc..0000000 --- a/src/components/About.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React, { FC } from 'react'; - -import profileImg from '../assets/about/profile.jpg'; - -export const About: FC = () => ( -
-

About

-
- profile -
-
-); diff --git a/src/components/Header.tsx b/src/components/Header.tsx index b6ecef1..829b579 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,9 +1,9 @@ -import React, { FC } from 'react'; +import React from 'react'; import { Link } from 'react-router-dom'; import logo from '../assets/logo.svg'; -export const Header: FC = () => ( +export const Header = () => (