2025-04-01 17:28:15 -03:00
|
|
|
# ProjectMark-Rodrigo
|
2025-04-01 17:58:14 -03:00
|
|
|
|
2025-04-01 17:28:15 -03:00
|
|
|
Take home test for ProjectMark
|
2025-04-01 17:58:14 -03:00
|
|
|
|
|
|
|
## Run the project
|
|
|
|
|
|
|
|
This project requires NodeJS version 19 or newer.
|
|
|
|
|
|
|
|
- Install dependencies:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
npm install
|
|
|
|
```
|
|
|
|
|
|
|
|
Start project:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
npm run start
|
|
|
|
```
|
2025-04-04 16:28:06 -03:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
You can use Postman or Curl to make calls to the API. The examples below use Curl.
|
|
|
|
|
|
|
|
### Create a topic:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -X POST http://localhost:3000/api/topics \
|
|
|
|
-H "Content-Type: application/json" \
|
|
|
|
-d '{"name": "A topic", "content": "Topic content"}'
|
|
|
|
```
|
|
|
|
|
|
|
|
### Get all topics:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -X GET http://localhost:3000/api/topics
|
|
|
|
```
|
|
|
|
|
|
|
|
### Get specific topic:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -X GET http://localhost:3000/api/topics/1234567890
|
|
|
|
```
|
|
|
|
|
|
|
|
> Replace `1234567890` with the topic id.
|
|
|
|
|
|
|
|
### Update a topic:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -X PUT http://localhost:3000/api/topics/1234567890 \
|
|
|
|
-H "Content-Type: application/json" \
|
|
|
|
-d '{"name": "Updated topic"}'
|
|
|
|
```
|
|
|
|
|
|
|
|
> Replace `1234567890` with the topic id.
|
|
|
|
|
|
|
|
### Get specific version of a topic:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -X GET http://localhost:3000/api/topics/1234567890/1
|
|
|
|
```
|
|
|
|
|
|
|
|
### Create a child topic:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -X POST http://localhost:3000/api/topics \
|
|
|
|
-H "Content-Type: application/json" \
|
|
|
|
-d '{"name": "A topic", "content": "Topic content", "parentTopicId": 1234567890 }'
|
|
|
|
```
|
|
|
|
|
|
|
|
### Delete a topic:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -X DELETE http://localhost:3000/api/topics/1234567890
|
|
|
|
```
|
|
|
|
|
|
|
|
> Replace `1234567890` with the topic id.
|
|
|
|
|
|
|
|
## Tests
|
|
|
|
|
|
|
|
Run tests with:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
npm run test
|
|
|
|
```
|