{"id":13764798,"url":"https://github.com/BrahimAbdelli/nestjs-boilerplate","last_synced_at":"2025-05-10T20:31:08.787Z","repository":{"id":190892079,"uuid":"614096497","full_name":"BrahimAbdelli/nestjs-boilerplate","owner":"BrahimAbdelli","description":"A NestJS Boilerplate to help you build your backend using Typescript Generics, MongoDB, TypeORM, Swagger, Compodoc, MailJet, Docker, Prometheus, Grafana.","archived":false,"fork":false,"pushed_at":"2024-12-25T22:00:33.000Z","size":329,"stargazers_count":37,"open_issues_count":0,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-25T23:16:36.275Z","etag":null,"topics":["compodoc","docker","e2e","generic","mail","mock","mongodb","nestjs","prettier","swagger","typeorm","typescript"],"latest_commit_sha":null,"homepage":"https://www.brahimabdelli.dev/nestjs-boilerplate","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BrahimAbdelli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-03-14T22:10:18.000Z","updated_at":"2024-12-25T22:00:36.000Z","dependencies_parsed_at":"2023-08-26T23:27:56.967Z","dependency_job_id":"73485b7b-7277-4ec2-910f-03ebb1fc8085","html_url":"https://github.com/BrahimAbdelli/nestjs-boilerplate","commit_stats":null,"previous_names":["brahimabdelli/nestjs-boilerplate"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrahimAbdelli%2Fnestjs-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrahimAbdelli%2Fnestjs-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrahimAbdelli%2Fnestjs-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrahimAbdelli%2Fnestjs-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrahimAbdelli","download_url":"https://codeload.github.com/BrahimAbdelli/nestjs-boilerplate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253480395,"owners_count":21915246,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compodoc","docker","e2e","generic","mail","mock","mongodb","nestjs","prettier","swagger","typeorm","typescript"],"created_at":"2024-08-03T16:00:29.123Z","updated_at":"2025-05-10T20:31:08.772Z","avatar_url":"https://github.com/BrahimAbdelli.png","language":"TypeScript","funding_links":[],"categories":["Resources"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eNestJS Boilerplate\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"http://nestjs.com/\" target=\"blank\"\u003e\u003cimg src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\n[circleci-url]: https://circleci.com/gh/nestjs/nest\n\n  \u003cp align=\"center\"\u003eA progressive \u003ca href=\"http://nodejs.org\" target=\"_blank\"\u003eNode.js\u003c/a\u003e framework for building efficient and scalable server-side applications.\u003c/p\u003e\n\n## Description\n\nThis is a NestJS boilerplate.\n\nThe github repository : [Github repository](https://github.com/BrahimAbdelli/nestjs-boilerplate).\n\nAnd you can find every detail about it here :\n[Article](https://brahimabdelli.dev/nestjs-boilerplate).\n\n## Installation\n\n```bash\n$ npm install\n```\n\n## Running the app\n\n```bash\n# development\n$ npm run start\n\n# watch mode\n$ npm run start:dev\n\n# production mode\n$ npm run start:prod\n```\n\n## Test\n\n```bash\n# unit tests\n$ npm run test\n\n# e2e tests\n$ npm run test:e2e\n\n# test coverage\n$ npm run test:cov\n\n# compodoc\n$ npx @compodoc/compodoc -p tsconfig.json -s\n```\n\n## Links\n\n```bash\n# Localhost backend :\n$ http://localhost/api\n\n# Swagger :\n$ http://localhost/docs/\n\n# Compodoc\n$ http://127.0.0.1:8080/\n```\n\n## Support\n\nNest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).\n\n## Table of Contents \u003c!-- omit in toc --\u003e\n\n- [General info](#general-info)\n- [Base Module APIs](#base-module-apis)\n- [Users Module APIs](#users-module-apis)\n\n  - [Auth via email flow](#auth-via-email-flow)\n  - [Auth via external services or social networks flow](#auth-via-external-services-or-social-networks-flow)\n\n- [Configure Auth](#configure-auth)\n\n---\n\n## General info\n\n\u003c!--### Auth via email flow--\u003e\n\nThis is a boilerplate that uses abstraction to create generic controller, service, dtos and entity, aiming to encapsulate the reusable logic throughout the project in one centralized base module.\n\n```\nImplementation logic :\n  The Category Module fully implements the base module.\n  The Product Module fully implements the base module and overrides the create method.\n  The Users Module does not extend the base module at all.\n```\n\nHere a picture that explains the concept a little bit more :\n\u003cimg alt=\"image\" src=\"https://github.com/BrahimAbdelli/nestjs-boilerplate/blob/ff5002585763e1e0bf9a3d4f9b7b4f000d32320d/public/Abstraction2.png?raw=true\"\u003e\n\nBelow is the part in the article where you can find more infos.\n[More here](https://www.brahimabdelli.dev/nestjs-boilerplate#Section%202%3A%20Implementation)\n\n### Base Module APIs APIs\n\nHere we will be using basecontroller apis, implementend in the category and product module.\n\nHere you can read more about the controller APIs.\n\n[More here about controller APIs](https://www.brahimabdelli.dev/nestjs-boilerplate#Part%203%20-%20Explaining%20the%20base%20controller.)\n\nAnd here you can learn more about the written service methods.\n\n[More about service methods](https://www.brahimabdelli.dev/nestjs-boilerplate#Part%204%20-%20Explaining%20the%20base%20service.)\n\n### Create\n\nThis API creates a new entity based on the provided data.\n\n#### Request\n\n    POST : http://localhost:80/api/categories\n\n#### Body\n\n    {\n        \"name\": \"Category 1\",\n        \"quantity\": 90\n    }\n\n#### Response\n\n    {\n        \"_id\": \"64d3fc899409ef44287cf326\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-08-09T20:52:25.106Z\",\n        \"lastUpdateAt\": \"2023-08-09T20:52:25.106Z\",\n        \"name\": \"Category 1\",\n        \"quantity\": 90\n    }\n\n### Update\n\nThe update API updates an existing entity based on the provided \\_id and dto.\n\n#### Request\n\n    PUT : http://localhost:80/api/categories/64bf9a457a37e42df4e0f7da\n\n#### Body\n\n    {\n        \"name\": \"Updated Category 1\",\n        \"quantity\":80\n    }\n\n#### Response\n\n    {\n        \"_id\": \"64bf9a457a37e42df4e0f7da\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-07-25T09:47:49.373Z\",\n        \"lastUpdateAt\": \"2023-08-09T22:08:35.721Z\",\n        \"name\": \"Updated Category 1\",\n        \"quantity\": 80\n    }\n\n### Get All\n\nLists all the not logically deleted objects.\n\n#### Request\n\n    GET : http://localhost:80/api/categories\n\n#### Body\n\n    {}\n\n#### Response\n\n    [\n        {\n            \"_id\": \"6460f3f0e149c44cd0892edf\",\n            \"isDeleted\": false,\n            \"createdAt\": \"2023-05-14T14:45:04.802Z\",\n            \"lastUpdateAt\": \"2023-05-14T14:45:04.802Z\",\n            \"name\": \"Test Category\",\n            \"quantity\": 9.99\n        },\n        {\n            \"_id\": \"6460f44d2a2c562aece3e016\",\n            \"isDeleted\": false,\n            \"createdAt\": \"2023-05-14T14:46:37.380Z\",\n            \"lastUpdateAt\": \"2023-05-14T14:46:37.380Z\",\n            \"name\": \"jhhh\",\n            \"quantity\": 90\n        },\n        {\n            \"_id\": \"64bf9a457a37e42df4e0f7da\",\n            \"isDeleted\": false,\n            \"createdAt\": \"2023-07-25T09:47:49.373Z\",\n            \"lastUpdateAt\": \"2023-08-09T22:08:35.721Z\",\n            \"name\": \"Updated Category 1\",\n            \"quantity\": 80\n        },\n        {\n            \"_id\": \"64bfd3f98269202f8419e348\",\n            \"isDeleted\": false,\n            \"createdAt\": \"2023-07-25T13:54:01.001Z\",\n            \"lastUpdateAt\": \"2023-07-25T13:54:01.001Z\",\n            \"name\": \"Category 1\",\n            \"quantity\": 90\n        }\n    ]\n\n### Get By ID\n\nReturns an object based on the given \\_id.\n\n#### Request\n\n    GET : http://localhost:80/api/categories/find/64bf9a457a37e42df4e0f7da\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"64bf9a457a37e42df4e0f7da\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-07-25T09:47:49.373Z\",\n        \"lastUpdateAt\": \"2023-08-09T22:08:35.721Z\",\n        \"name\": \"Updated Category 1\",\n        \"quantity\": 80\n    }\n\n### Paginate\n\nThe paginate API retrieves paginated entities from the database based on the given conditions.\n\n#### Request\n\n    GET : http://localhost:80/api/categories/paginate?take=2\u0026skip=0\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"data\": [\n            {\n                \"_id\": \"6460f3f0e149c44cd0892edf\",\n                \"isDeleted\": false,\n                \"createdAt\": \"2023-05-14T14:45:04.802Z\",\n                \"lastUpdateAt\": \"2023-05-14T14:45:04.802Z\",\n                \"name\": \"Test Category\",\n                \"quantity\": 9.99\n            },\n            {\n                \"_id\": \"6460f3f0e149c44cd0892ee2\",\n                \"isDeleted\": false,\n                \"createdAt\": \"2023-05-14T14:45:04.865Z\",\n                \"lastUpdateAt\": \"2023-05-14T14:45:04.873Z\",\n                \"name\": \"Test Category\",\n                \"quantity\": 9.99\n            }\n        ],\n        \"count\": 7\n    }\n\n### Archive\n\nThis method applies logical deletion to an entity by updating the isDeleted property based on the provided \\_id.\n\n#### Request\n\n    PATCH : http://localhost:80/api/categories/archive/6460f3f0e149c44cd0892ee0\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"6460f3f0e149c44cd0892ee0\",\n        \"isDeleted\": true,\n        \"createdAt\": \"2023-05-14T14:45:04.809Z\",\n        \"lastUpdateAt\": \"2023-08-09T22:15:24.611Z\",\n        \"name\": \"Updated Category\",\n        \"quantity\": 19.99\n    }\n\n### Unarchive\n\nThis method applies logical restoration to an entity by updating the isDeleted property based on the provided \\_id.\n\n#### Request\n\n    PATCH : http://localhost:80/api/categories/unarchive/6460f3f0e149c44cd0892ee0\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"6460f3f0e149c44cd0892ee0\",\n        \"isDeleted\": true,\n        \"createdAt\": \"2023-05-14T14:45:04.809Z\",\n        \"lastUpdateAt\": \"2023-08-09T22:15:24.611Z\",\n        \"name\": \"Updated Category\",\n        \"quantity\": 19.99\n    }\n\n### Delete\n\nThis API deletes an entity from the database based on the provided \\_id.\n\n#### Request\n\n    DELETE : http://localhost:80/api/categories/6460f3f0e149c44cd0892ede\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"6460f3f0e149c44cd0892ee0\",\n        \"isDeleted\": true,\n        \"createdAt\": \"2023-05-14T14:45:04.809Z\",\n        \"lastUpdateAt\": \"2023-08-09T22:15:24.611Z\",\n        \"name\": \"Updated Category\",\n        \"quantity\": 19.99\n    }\n\n### Clear\n\nThis method clears the table, in case the table exists.\n\n#### Request\n\n    DELETE : http://localhost:80/api/categories\n\n#### Body\n\n    {}\n\n#### Response\n\n    {}\n\n### Search\n\nThis API constructs a search query object initially given by the client, and returns multiple values including objects, total page count, page and count.\n\n#### Request\n\n    GET : http://localhost:80/api/categories\n\n#### Body\n\n    {\n        \"attributes\": [\n\n            {\n                \"key\": \"isDeleted\",\n                \"value\": true,\n                \"comparator\": \"EQUALS\"\n            },\n            {\n                \"key\": \"name\",\n                \"value\": \"c\",\n                \"comparator\": \"LIKE\"\n            }\n        ],\n        \"orders\": {\n            \"name\": \"ASC\",\n            \"quantity\": \"DESC\"\n        },\n        \"type\": \"OR\",\n        \"take\": 3,\n        \"skip\": 0,\n        \"isPaginable\":true\n    }\n\n#### Response\n\n    {\n        \"data\": [\n            {\n                \"_id\": \"6460f3f0e149c44cd0892ee0\",\n                \"isDeleted\": true,\n                \"createdAt\": \"2023-05-14T14:45:04.809Z\",\n                \"lastUpdateAt\": \"2023-08-09T22:15:24.611Z\",\n                \"name\": \"Updated Category\",\n                \"quantity\": 19.99\n            }\n        ],\n        \"count\": 1,\n        \"page\": 0,\n        \"totalPages\": 1\n    }\n\n## Users Module APIs\n\nThis module does not implement the abstraction module.\n\nHere you can read more about the users module\n\n[More here User Module](https://www.brahimabdelli.dev/nestjs-boilerplate#Part%203%20-%20Creating%20our%20Users%20Module.)\n\n### Signup\n\nThis API handles the signup request.\n\n#### Request\n\n    POST : http://localhost:80/api/users/signup\n\n#### Body\n\n    {\n        \"email\": \"testable@test.tn\",\n        \"username\": \"testable\",\n        \"password\": \"testable\"\n    }\n\n#### Response\n\n    {\n        \"email\": \"testable@test.tn\",\n        \"username\": \"testable\",\n        \"password\": \"d3b...\", //hashed password\n        \"isDeleted\": false,\n        \"lastUpdateAt\": \"2023-08-09T22:58:06.911Z\",\n        \"createdAt\": \"2023-08-09T22:58:06.911Z\",\n        \"status\": true,\n        \"_id\": \"64d419fe4a5bf5400464b2e4\"\n    }\n\n### Signin\n\nThis API handles the signin request.\n\n#### Request\n\n    POST : http://localhost:80/api/users/login\n\n#### Body\n\n    {\n        \"email\": \"testable@test.tn\",\n        \"password\": \"testable\"\n    }\n\n#### Response\n\n    {\n        \"_id\": \"64d419fe4a5bf5400464b2e4\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-08-09T22:58:06.911Z\",\n        \"lastUpdateAt\": \"2023-08-09T22:58:06.911Z\",\n        \"email\": \"testable@test.tn\",\n        \"username\": \"testable\",\n        \"status\": true,\n        \"token\": \"eyJ...\"//token\n    }\n\n### Get Users\n\nLists all the not logically deleted users.\n\nThis method will require a Bearer token\n\n#### Request\n\n    GET : http://localhost:80/api/users\n    Bearer Token : eyJ...\n\n#### Body\n\n    {}\n\n#### Response\n\n    [\n        {\n            \"_id\": \"64bfa5397a37e42df4e0f7db\",\n            \"isDeleted\": false,\n            \"userCreated\": {\n                \"_id\": \"64bfa5397a37e42df4e0f7db\",\n                \"isDeleted\": false,\n                \"userCreated\": \"64bfa5397a37e42df4e0f7db\",\n                \"createdAt\": \"2023-07-25T10:34:33.843Z\",\n                \"userUpdated\": \"64bfa5397a37e42df4e0f7db\",\n                \"lastUpdateAt\": \"2023-07-25T13:05:19.500Z\",\n                \"email\": \"test@test.tn\",\n                \"password\": \"ad7...\", //hashed\n                \"username\": \"testt\",\n                \"status\": true,\n                \"tempPassword\": \"ad7...\", //hashed password\n            },\n            \"createdAt\": \"2023-07-25T10:34:33.843Z\",\n            \"userUpdated\": {\n                \"_id\": \"64bfa5397a37e42df4e0f7db\",\n                \"isDeleted\": false,\n                \"userCreated\": \"64bfa5397a37e42df4e0f7db\",\n                \"createdAt\": \"2023-07-25T10:34:33.843Z\",\n                \"userUpdated\": \"64bfa5397a37e42df4e0f7db\",\n                \"lastUpdateAt\": \"2023-07-25T13:05:19.500Z\",\n                \"email\": \"test@test.tn\",\n                \"password\": \"ad7...\", //hashed password\n                \"username\": \"testt\",\n                \"status\": true,\n                \"tempPassword\": \"ad7...\", //hashed password\n            },\n            \"lastUpdateAt\": \"2023-07-25T13:05:19.500Z\",\n            \"email\": \"test@test.tn\",\n            \"password\": \"d3b...\", //hashed password\n            \"username\": \"testt\",\n            \"status\": true,\n            \"tempPassword\": \"ad7...\", //hashed password\n        },\n        {\n            \"_id\": \"64d419fe4a5bf5400464b2e4\",\n            \"isDeleted\": false,\n            \"createdAt\": \"2023-08-09T22:58:06.911Z\",\n            \"lastUpdateAt\": \"2023-08-09T22:58:06.911Z\",\n            \"email\": \"testable@test.tn\",\n            \"password\": \"d3b...\", //hashed password\n            \"username\": \"testable\",\n            \"status\": true,\n            \"tempPassword\": \"d3b...\" //hashed password\n        }\n    ]\n\n### Get By ID\n\nReturns an object based on the given \\_id.\n\n#### Request\n\n    GET : http://localhost:80/api/users/user/64bf9a457a37e42df4e0f7da\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"64d7addea1d91514a4ebcbb9\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-08-12T16:05:50.201Z\",\n        \"lastUpdateAt\": \"2023-08-12T16:05:50.201Z\",\n        \"email\": \"testable@testt.tn\",\n        \"password\": \"d3b...\", //hashed password\n        \"username\": \"testtable\",\n        \"status\": true,\n        \"tempPassword\": \"d3b...\" //hashed password\n    }\n\n### Get By Username\n\nReturns a user based on the given username.\n\n#### Request\n\n    GET : http://localhost:80/api/users/username/testtable\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"64d7addea1d91514a4ebcbb9\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-08-12T16:05:50.201Z\",\n        \"lastUpdateAt\": \"2023-08-12T16:05:50.201Z\",\n        \"email\": \"testable@testt.tn\",\n        \"password\": \"d3b...\", //hashed password\n        \"username\": \"testtable\",\n        \"status\": true,\n        \"tempPassword\": \"d3b...\" //hashed password\n    }\n\n### Get By Email\n\nReturns an object based on the given \\_id.\n\n#### Request\n\n    GET : http://localhost:80/api/users/email/testable@testt.tn\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"64d7addea1d91514a4ebcbb9\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-08-12T16:05:50.201Z\",\n        \"lastUpdateAt\": \"2023-08-12T16:05:50.201Z\",\n        \"email\": \"testable@testt.tn\",\n        \"password\": \"d3b...\", //hashed password\n        \"username\": \"testtable\",\n        \"status\": true,\n        \"tempPassword\": \"d3b...\" //hashed password\n    }\n\n### Forgot Password\n\nThis API sends a reset password email.\n\n#### Request\n\n    POST : http://localhost:80/api/users/forgot-password/test@test.com\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"6457bfdd35b8602ae499bde4\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-05-07T15:12:29.009Z\",\n        \"userUpdated\": \"6457bfdd35b8602ae499bde4\",\n        \"lastUpdateAt\": \"2023-08-26T20:44:40.933Z\",\n        \"email\": \"test@test.tn\",\n        \"password\": \"0e8...\", //hashed password\n        \"username\": \"testing\",\n        \"status\": false\n    }\n\n### Reset Password\n\nReset password API.\n\n#### Request\n\n    POST : http://localhost:80/api/users/reset-password\n\n#### Body\n\n    {\n        \"token\": \"eyJ...\",\n        \"password\": \"testing\"\n    }\n\n#### Response\n\n    {\n        \"_id\": \"6457bfdd35b8602ae499bde4\",\n        \"email\": \"test@test.tn\",\n        \"password\": \"d3b...\", //hashed password\n        \"username\": \"testing\",\n        resetPasswordToken?: \"\";\n    }\n\n### Create\n\nThe update API updates an existing entity based on the provided \\_id and dto.\n\n#### Request\n\n    POST : http://localhost:80/api/users\n\n#### Body\n\n    {\n        \"username\": \"testing\",\n        \"email\": \"testing@gmail.com\",\n        \"password\":\"testing\"\n    }\n\n#### Response\n\n    {\n        \"_id\": \"6457bfdd35b8602ae499bde4\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-05-07T15:12:29.009Z\",\n        \"userUpdated\": \"6457bfdd35b8602ae499bde4\",\n        \"lastUpdateAt\": \"2023-08-26T21:21:59.777Z\",\n        \"email\": \"brahim.abdelli994@gmail.com\",\n        \"password\": \"0e8...\",\n        \"username\": \"testing\"\n    }\n\n### Update\n\nThe update API updates an existing entity based on the provided \\_id and dto.\n\n#### Request\n\n    PUT : http://localhost:80/api/users/64bf9a457a37e42df4e0f7da\n\n#### Body\n\n    {\n        \"username\": \"testing\",\n        \"email\": \"testing@gmail.com\",\n        \"password\":\"test\"\n    }\n\n#### Response\n\n    {\n        \"_id\": \"6457bfdd35b8602ae499bde4\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-05-07T15:12:29.009Z\",\n        \"userUpdated\": \"6457bfdd35b8602ae499bde4\",\n        \"lastUpdateAt\": \"2023-08-26T21:21:59.777Z\",\n        \"email\": \"brahim.abdelli994@gmail.com\",\n        \"password\": \"0e8...\",\n        \"username\": \"testing\"\n    }\n\n### Archive\n\nThis method applies logical deletion to an entity by updating the isDeleted property based on the provided \\_id.\n\n#### Request\n\n    PATCH : http://localhost:80/api/users/archive/6460f3f0e149c44cd0892ee0\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"6457bfdd35b8602ae499bde4\",\n        \"isDeleted\": true,\n        \"createdAt\": \"2023-05-07T15:12:29.009Z\",\n        \"userUpdated\": \"6457bfdd35b8602ae499bde4\",\n        \"lastUpdateAt\": \"2023-08-26T21:21:59.777Z\",\n        \"email\": \"brahim.abdelli994@gmail.com\",\n        \"password\": \"0e8...\",\n        \"username\": \"testing\",\n        \"status\": false\n    }\n\n### Unarchive\n\nThis method applies logical restoration to an entity by updating the isDeleted property based on the provided \\_id.\n\n#### Request\n\n    PATCH : http://localhost:80/api/users/unarchive/6460f3f0e149c44cd0892ee0\n\n#### Body\n\n    {}\n\n#### Response\n\n    {\n        \"_id\": \"6457bfdd35b8602ae499bde4\",\n        \"isDeleted\": false,\n        \"createdAt\": \"2023-05-07T15:12:29.009Z\",\n        \"userUpdated\": \"6457bfdd35b8602ae499bde4\",\n        \"lastUpdateAt\": \"2023-08-26T21:21:59.777Z\",\n        \"email\": \"brahim.abdelli994@gmail.com\",\n        \"password\": \"0e8...\",\n        \"username\": \"testing\",\n        \"status\": true\n    }\n\n### Clear\n\nThis method clears the table, in case the table exists.\n\n#### Request\n\n    DELETE : http://localhost:80/api/users\n\n#### Body\n\n    {}\n\n#### Response\n\n    {}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBrahimAbdelli%2Fnestjs-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBrahimAbdelli%2Fnestjs-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBrahimAbdelli%2Fnestjs-boilerplate/lists"}