From 0c563ac5c97727ffd946d0cf2cd0b113eec09c63 Mon Sep 17 00:00:00 2001 From: romeoscript Date: Thu, 6 Apr 2023 07:40:04 +0100 Subject: [PATCH 1/2] feat:errormessage fix without migrations --- src/controllers/auth.controller.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/controllers/auth.controller.ts b/src/controllers/auth.controller.ts index bf9e60c..512f8e3 100644 --- a/src/controllers/auth.controller.ts +++ b/src/controllers/auth.controller.ts @@ -21,15 +21,26 @@ export const signup = async ( const existingUser = await prisma.user.findUnique({ where: { email } }); if (existingUser) { - throw new createError.Conflict("Email already exists"); + throw new createError.Conflict(`User with email '${email}' already exists`); + } + + if (password.length < 6) { + throw new createError.BadRequest(`Password should be at least 6 characters long`); } const passwordHash = await bcrypt.hash(password, 12); await prisma.user.create({ data: { email, passwordHash } }); - res.status(201).json({ message: "User created" }); + // res.status(201).json({ message: "User created" }); + res.status(201).json({ message: "User created successfully" }); } catch (err: any) { - passToExpressErrorHandler(err, next); + // passToExpressErrorHandler(err, next); + console.error(err); + + const message = err.message || "Internal server error"; + const status = err.status || 500; + + res.status(status).json({ message }); } }; From 493726bc54a6e31049cda9d2d9345a939d49924d Mon Sep 17 00:00:00 2001 From: romeoscript Date: Fri, 21 Apr 2023 20:57:37 +0100 Subject: [PATCH 2/2] api_route_documentations --- docs/API_LISTS.md | 24 ++++++++++++++++++++++++ docs/Chart.md | 7 +++++++ docs/flow1.png | Bin 0 -> 31062 bytes 3 files changed, 31 insertions(+) create mode 100644 docs/API_LISTS.md create mode 100644 docs/Chart.md create mode 100644 docs/flow1.png diff --git a/docs/API_LISTS.md b/docs/API_LISTS.md new file mode 100644 index 0000000..ce510c2 --- /dev/null +++ b/docs/API_LISTS.md @@ -0,0 +1,24 @@ +# EndPoint List + +1. ### _Users Endpoints_ + + * [Create a new user](user-endpoints-documentation/create-new-user) `Post /signup` + * [Signin User](user-endpoints-documentation/signin) `Post /login` + * [Refresh Token](user-endpoints-documentation/refresh-token) `Post /refresh_token` + * [githubAuthValidator](user-endpoints-documentation/github signin) `Post /github` + + +2. ### _Claim & Node Documentation_ + + * [requires a valid JWT token to be passed in the request ](Claim-&-Node-Documentation/jwtVerify) `Post /claim` + * [GET claims](Claim-&-Node-Documentation/get-claims) `GET /claim/:claimId?` + * [retrieves a list of nodes]( claim-node-documentiona/gets-node) `GET /node/:nodeId?` + + +### _DETAILS_ + +``claimPost: creates a new claim in the database using the data provided in the request body. If the request contains the necessary environment variables, it also sends the claim data to a third-party service using an HTTP POST request. Returns the created claim as a JSON response. +claimGet: retrieves a list of claims from the database, filtered by optional query parameters such as a search term or pagination limits. If a claim ID is provided in the request params, returns the single claim object with that ID. Otherwise, returns an array of claim objects and a count of the total number of claims in the database. +nodesGet: retrieves a list of nodes from the database, filtered by optional query parameters such as a search term or pagination limits. If a node ID is provided in the request params, returns the single node object with that ID and any edges connected to it. Otherwise, returns an array of node objects and a count of the total number of nodes in the database. + +`` \ No newline at end of file diff --git a/docs/Chart.md b/docs/Chart.md new file mode 100644 index 0000000..8b7047c --- /dev/null +++ b/docs/Chart.md @@ -0,0 +1,7 @@ +# TRUST_CLAIM + + +## Process Flow + +![Diagram](./flow1.png) + diff --git a/docs/flow1.png b/docs/flow1.png new file mode 100644 index 0000000000000000000000000000000000000000..588c6cad100ed2a459b65359554f77b75afba8e4 GIT binary patch literal 31062 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 literal 0 HcmV?d00001