corrad-af-2024/docs/API_ENDPOINTS_DOCUMENTATION.md

12 KiB

Corrad AF 2024 API Platform - Complete API Endpoints Documentation

This document provides a comprehensive list of all API endpoints available in the Corrad AF 2024 API Platform project.

Table of Contents

  1. Authentication APIs
  2. Business Logic APIs
  3. API Platform APIs
  4. Metabase Integration APIs
  5. Development Tools APIs

Authentication APIs

POST /api/auth/login

Description: Authenticate user and receive access/refresh tokens Parameters:

  • username (string, required): User's username
  • password (string, required): User's password

Response:

{
  "statusCode": 200,
  "message": "Login success",
  "data": {
    "username": "user@example.com",
    "roles": ["admin", "user"]
  }
}

GET /api/auth/logout

Description: Logout user and clear authentication cookies

GET /api/auth/validate

Description: Validate current authentication token


Business Logic APIs

POST /api/analyze-asnaf

Description: Analyze Asnaf profile using AI/OpenAI integration to determine eligibility and assistance recommendations Parameters:

  • monthlyIncome (string): Monthly income amount
  • otherIncome (string): Other income sources
  • totalIncome (string): Total income amount
  • occupation (string): Applicant's occupation
  • maritalStatus (string): Marital status
  • dependents (array): List of dependents

Response:

{
  "hadKifayahPercentage": "75%",
  "kategoriAsnaf": "Miskin",
  "kategoriKeluarga": "Miskin (50-100% HK)",
  "cadanganKategori": "Miskin",
  "statusKelayakan": "Layak (Miskin)",
  "cadanganBantuan": [
    {"nama": "Bantuan Kewangan Bulanan", "peratusan": "90%"},
    {"nama": "Bantuan Makanan Asas", "peratusan": "75%"}
  ],
  "ramalanJangkaMasaPulih": "6 bulan",
  "rumusan": "Pemohon memerlukan perhatian segera."
}

API Platform APIs

POST /api/api-platform/send-request

Description: Proxy HTTP requests through the platform with authentication and request/response handling Parameters:

  • url (string, required): Target URL to send request to
  • method (string): HTTP method (GET, POST, PUT, DELETE, etc.)
  • headers (array): Request headers
  • params (array): Query parameters
  • auth (object): Authentication configuration
  • requestBody (object): Request body configuration
  • timeout (number): Request timeout in milliseconds

POST /api/api-platform/oauth2/client-credentials

Description: Obtain OAuth2 access token using client credentials flow Parameters:

  • client_id (string, required): OAuth2 client ID
  • client_secret (string, required): OAuth2 client secret
  • grant_type (string, required): Grant type (client_credentials)
  • scope (string): Requested scopes

POST /api/api-platform/oauth2/exchange-code

Description: Exchange authorization code for access token in OAuth2 flow Parameters:

  • code (string, required): Authorization code
  • client_id (string, required): OAuth2 client ID
  • client_secret (string, required): OAuth2 client secret
  • redirect_uri (string, required): Redirect URI

Metabase Integration APIs

GET /api/metabase/token

Description: Get authentication token for Metabase integration


Development Tools APIs

User Management

GET /api/devtool/user/list

Description: Get list of all users (excluding deleted)

POST /api/devtool/user/add

Description: Create a new user Parameters:

  • userUsername (string, required): Username
  • userFullName (string, required): Full name
  • userEmail (string, required): Email address
  • userPhone (string): Phone number
  • userPassword (string, required): Password
  • roles (array): Assigned roles

PUT /api/devtool/user/edit

Description: Update existing user Parameters:

  • userID (string, required): User ID
  • userFullName (string): Updated full name
  • userEmail (string): Updated email
  • userPhone (string): Updated phone
  • roles (array): Updated roles

DELETE /api/devtool/user/delete

Description: Soft delete user (mark as deleted) Parameters:

  • userID (string, required): User ID to delete

Role Management

GET /api/devtool/role/list

Description: Get list of all roles

POST /api/devtool/role/add

Description: Create a new role Parameters:

  • roleName (string, required): Role name
  • roleDescription (string): Role description

PUT /api/devtool/role/edit

Description: Update existing role Parameters:

  • roleID (string, required): Role ID
  • roleName (string): Updated role name
  • roleDescription (string): Updated description

DELETE /api/devtool/role/delete

Description: Delete role Parameters:

  • roleID (string, required): Role ID to delete

Menu Management

GET /api/devtool/menu/user-list

Description: Get menu items for users

GET /api/devtool/menu/role-list

Description: Get menu items for roles

POST /api/devtool/menu/add

Description: Add new menu item Parameters:

  • title (string, required): Menu item title
  • path (string, required): Menu item path
  • icon (string): Icon name
  • parent (string): Parent menu ID
  • order (number): Display order

PUT /api/devtool/menu/edit

Description: Edit existing menu item Parameters:

  • id (string, required): Menu item ID
  • title (string): Updated title
  • path (string): Updated path
  • icon (string): Updated icon

DELETE /api/devtool/menu/delete

Description: Delete menu item Parameters:

  • id (string, required): Menu item ID

POST /api/devtool/menu/overwrite-navigation

Description: Overwrite entire navigation structure Parameters:

  • navigation (array, required): New navigation structure

POST /api/devtool/menu/new-add

Description: New add menu functionality

ORM & Database Management

GET /api/devtool/orm/schema

Description: Get database schema information

GET /api/devtool/orm/studio

Description: Access ORM studio interface

GET /api/devtool/orm/data/get

Description: Get data from specific table Query Parameters:

  • table (string, required): Table name
  • limit (number): Number of records to return

GET /api/devtool/orm/table/config

Description: Get table configuration settings

POST /api/devtool/orm/table/create

Description: Create new database table Parameters:

  • tableName (string, required): New table name
  • columns (array, required): Column definitions

GET /api/devtool/orm/table/modify/get

Description: Get table structure for modification Query Parameters:

  • table (string, required): Table name

POST /api/devtool/orm/table/modify

Description: Modify existing table structure Parameters:

  • tableName (string, required): Table to modify
  • modifications (object, required): Modification instructions

DELETE /api/devtool/orm/table/delete/{table}

Description: Delete table by name (dynamic route) Path Parameters:

  • table (string, required): Table name to delete

Configuration Management

GET /api/devtool/config/site-settings

Description: Get/manage site settings

GET /api/devtool/config/env

Description: Get environment configuration

POST /api/devtool/config/upload-file

Description: Upload file to server Body: multipart/form-data

  • file (file, required): File to upload
  • destination (string): Upload destination path

Description: Get/set loading logo configuration

POST /api/devtool/config/add-custom-theme

Description: Add custom theme configuration Parameters:

  • themeName (string, required): Theme name
  • colors (object): Color configuration
  • fonts (object): Font configuration

API Management Tools

GET /api/devtool/api/list

Description: List all available APIs

POST /api/devtool/api/save

Description: Save API configuration Parameters:

  • apiName (string, required): API name
  • endpoint (string, required): API endpoint
  • method (string, required): HTTP method
  • description (string): API description
  • parameters (array): API parameters
  • responses (object): Response definitions

POST /api/devtool/api/linter

Description: Lint API code for errors and best practices Parameters:

  • code (string, required): Code to lint
  • language (string, required): Programming language

POST /api/devtool/api/prettier-format

Description: Format code using Prettier Parameters:

  • code (string, required): Code to format
  • language (string, required): Programming language

GET /api/devtool/api/file-code

Description: Get source code of API file Query Parameters:

  • file (string, required): File path

Content Management

Template Management

GET /api/devtool/content/template/get-list

Description: Get list of available templates

GET /api/devtool/content/template/list

Description: List all templates

POST /api/devtool/content/template/import

Description: Import template Parameters:

  • templateName (string, required): Template name
  • templateContent (string, required): Template content
  • templateType (string, required): Template type
GET /api/devtool/content/template/tag

Description: Get template tags

Code Management

GET /api/devtool/content/code/file-code

Description: Get source code of file Query Parameters:

  • file (string, required): File path
POST /api/devtool/content/code/save

Description: Save code to file Parameters:

  • file (string, required): File path
  • content (string, required): File content
POST /api/devtool/content/code/linter

Description: Lint code for errors Parameters:

  • code (string, required): Code to lint
  • language (string, required): Programming language
POST /api/devtool/content/code/prettier-format

Description: Format code using Prettier Parameters:

  • code (string, required): Code to format
  • language (string, required): Programming language

Canvas Management

GET /api/devtool/content/canvas/file-code

Description: Get canvas file code Query Parameters:

  • canvas (string, required): Canvas identifier

Lookup Data

GET /api/devtool/lookup/list

Description: Get lookup data list


Base URL Configuration

  • Development: http://localhost:3000
  • API Base Path: /api

Authentication

Most endpoints require authentication via Bearer token obtained from the /api/auth/login endpoint. The token should be included in the Authorization header:

Authorization: Bearer <your-access-token>

Response Format

All APIs follow a consistent response format:

{
  "statusCode": 200,
  "message": "Success message",
  "data": {
    // Response data
  }
}

Error Handling

Error responses follow the same format with appropriate HTTP status codes:

{
  "statusCode": 400,
  "message": "Error message",
  "errors": {
    // Validation errors if applicable
  }
}

Import Instructions

To import the Postman collection:

  1. Open Postman
  2. Click "Import" button
  3. Select "Upload Files" tab
  4. Choose the postman_collection.json file
  5. Click "Import"

The collection includes:

  • Pre-configured environment variables
  • Automatic token management
  • Request examples with sample data
  • Organized folder structure for easy navigation

Notes

  • All development tool APIs are intended for development and administrative purposes
  • The API Platform provides proxy functionality for external API calls
  • Business logic APIs integrate with external services like OpenAI
  • Database operations through ORM tools should be used with caution in production environments