crud static method

NiceApiContract crud(
  1. String module,
  2. String entity,
  3. String baseUrl
)

Standard ERP REST endpoints for a CRUD entity.

Implementation

static NiceApiContract crud(String module, String entity, String baseUrl) {
  return NiceApiContract(
    module: module,
    version: '1.0.0',
    baseUrl: baseUrl,
    endpoints: [
      NiceApiEndpoint(
        method: 'GET',
        path: '/api/$entity',
        description: 'List $entity with pagination, filtering, sorting',
        responseType: 'ErpResponse<List<$entity>>',
        requiredPermissions: ['$entity.read'],
      ),
      NiceApiEndpoint(
        method: 'GET',
        path: '/api/$entity/{id}',
        description: 'Get single $entity by ID',
        responseType: 'ErpResponse<$entity>',
        requiredPermissions: ['$entity.read'],
      ),
      NiceApiEndpoint(
        method: 'POST',
        path: '/api/$entity',
        description: 'Create new $entity',
        requestType: entity,
        responseType: 'ErpResponse<$entity>',
        requiredPermissions: ['$entity.create'],
      ),
      NiceApiEndpoint(
        method: 'PUT',
        path: '/api/$entity/{id}',
        description: 'Update $entity',
        requestType: entity,
        responseType: 'ErpResponse<$entity>',
        requiredPermissions: ['$entity.update'],
      ),
      NiceApiEndpoint(
        method: 'DELETE',
        path: '/api/$entity/{id}',
        description: 'Delete $entity',
        responseType: 'ErpResponse<void>',
        requiredPermissions: ['$entity.delete'],
      ),
      NiceApiEndpoint(
        method: 'POST',
        path: '/api/$entity/batch-delete',
        description: 'Batch delete $entity',
        requestType: 'List<String>',
        responseType: 'ErpResponse<void>',
        requiredPermissions: ['$entity.delete'],
      ),
    ],
  );
}