Skip to content

Resources

View Media

Endpoint: GET /resources/media/{media_id}

Description: View a single media file (photo or video) from a community post.

Response: 200 OK

{
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "resource_id": "987fcdeb-51a2-43f7-b123-456789abcdef",
    "url": "https://example.com/media/video.mp4",
    "media_type": "video"
}

Search Resources

Endpoint: GET /resources/search

Description: Search resources by title substring (case-insensitive).

Query Parameters: - title (string): Search title - page (integer): Page number - limit (integer): Number of items per page

Response: 200 OK

{
    "status": "success",
    "message": "Resources retrieved successfully",
    "data": [
        {
            "id": "123e4567-e89b-12d3-a456-426614174000",
            "title": "Healthy Pregnancy Tips",
            "content": "Here are some tips for a healthy pregnancy...",
            "created_at": "2025-11-18T21:30:45.123456",
            "category": {
                "id": "category_uuid",
                "name": "Pregnancy"
            },
            "media": []
        }
    ],
    "total": 1,
    "page": 1,
    "limit": 10,
    "total_pages": 1
}

Bookmark a Resource

Endpoint: POST /resources/bookmarks

Description: Create a bookmark for a resource for a user.

Request Body:

{
    "resource_id": "123e4567-e89b-12d3-a456-426614174000"
}

Response: 201 Created

{
    "id": "bookmark_uuid",
    "user_id": "user_uuid",
    "resource_id": "123e4567-e89b-12d3-a456-426614174000"
}

Create a Category

Endpoint: POST /resources/categories

Description: Create a new category for resources.

Request Body:

{
    "name": "Pregnancy"
}

Response: 201 Created

{
    "id": "category_uuid",
    "name": "Pregnancy"
}

Get All Categories

Endpoint: GET /resources/categories

Description: Get all resource categories.

Response: 200 OK

{
    "categories": [
        {
            "id": "category_uuid_1",
            "name": "Pregnancy"
        },
        {
            "id": "category_uuid_2",
            "name": "Postpartum"
        }
    ]
}

Get Category by ID

Endpoint: GET /resources/categories/{category_id}

Description: Get a single resource category by ID.

Response: 200 OK

{
    "id": "category_uuid",
    "name": "Pregnancy"
}

Update Category

Endpoint: PATCH /resources/categories/{category_id}

Description: Update a resource category by ID.

Request Body:

{
    "name": "Pregnancy & Birth"
}

Response: 200 OK

{
    "id": "category_uuid",
    "name": "Pregnancy & Birth"
}

Delete Category

Endpoint: DELETE /resources/categories/{category_id}

Description: Delete a resource category by ID.

Response: 200 OK

{
    "message": "Category deleted successfully"
}

Get Resources

Endpoint: GET /resources/

Description: Get resources with optional Search and Filtering.

Query Parameters: - q (string): Search term (Title, Content, or Category) - category_id (UUID): Filter by Category ID - page (integer): Page number - limit (integer): Items per page

Response: 200 OK

{
    "status": "success",
    "message": "Resources retrieved successfully",
    "data": [
        {
            "id": "123e4567-e89b-12d3-a456-426614174000",
            "title": "Healthy Pregnancy Tips",
            "content": "Here are some tips for a healthy pregnancy...",
            "created_at": "2025-11-18T21:30:45.123456",
            "category": {
                "id": "category_uuid",
                "name": "Pregnancy"
            },
            "media": []
        }
    ],
    "total": 1,
    "page": 1,
    "limit": 10,
    "total_pages": 1
}

Create a Resource

Endpoint: POST /resources/

Description: Create a new resource.

Request Body:

{
    "title": "Healthy Pregnancy Tips",
    "content": "Here are some tips for a healthy pregnancy...",
    "category_id": "category_uuid"
}

Response: 201 Created

{
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "title": "Healthy Pregnancy Tips",
    "category_id": "category_uuid",
    "created_at": "2025-11-18T21:30:45.123456"
}

Get Resource by ID

Endpoint: GET /resources/{resource_id}

Description: Get a single resource by ID.

Response: 200 OK

{
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "title": "Healthy Pregnancy Tips",
    "content": "Here are some tips for a healthy pregnancy...",
    "category_id": "category_uuid",
    "created_at": "2025-11-18T21:30:45.123456",
    "updated_at": "2025-11-18T21:30:45.123456"
}

Update Resource

Endpoint: PATCH /resources/{resource_id}

Description: Update a resource by ID.

Request Body:

{
    "title": "Updated Healthy Pregnancy Tips"
}

Response: 200 OK

{
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "title": "Updated Healthy Pregnancy Tips",
    "category_id": "category_uuid",
    "created_at": "2025-11-18T21:30:45.123456",
    "updated_at": "2025-11-18T21:31:45.123456"
}

Delete Resource

Endpoint: DELETE /resources/{resource_id}

Description: Delete a resource by ID.

Response: 200 OK

{
    "message": "Resource deleted successfully"
}