middlewares/csv-payload

Middleware to parse the CSV body of the request

dev-master 2020-12-01 19:48 UTC

This package is auto-updated.

Last update: 2024-03-29 03:44:42 UTC


README

Latest Version on Packagist Software License Testing Total Downloads

Extends middlewares/payload to add support for parsing the CSV body of the request.

Requirements

Installation

This package is installable and autoloadable via Composer as middlewares/csv-payload.

composer require middlewares/csv-payload

CsvPayload

Parses the CSV payload of the request. Uses league/csv to read the CSV values. Contains the following options to configure the CSV Reader object:

delimiter($delimiter)

To configure the CSV delimiter control character (one character only). If the submitted character is invalid an InvalidArgumentException exception is thrown.

enclosure($enclosure)

To configure the CSV enclosure control character (one character only). If the submitted character is invalid an InvalidArgumentException exception is thrown.

escape($escape)

To configure the CSV escape control character (one character only). If the submitted character is invalid an InvalidArgumentException exception is thrown.

header($header)

To configure the CSV header line. If the submitted header value is less than 0 an InvalidArgumentException exception is thrown.

methods(array $methods)

To configure the allowed methods. By default only the requests with the method POST, PUT, PATCH, DELETE, COPY, LOCK, UNLOCK are handled.

contentType(array $contentType)

To configure all Content-Type headers used in the request. By default is text/csv

override($override = true)

To override the previous parsed body if exists (false by default)

$dispatcher = new Dispatcher([
    (new Middlewares\CsvPayload())
        ->delimiter(";")
        ->enclosure("'")
        ->escape("\\")
]);

$response = $dispatcher->dispatch(new ServerRequest());

Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.

The MIT License (MIT). Please see LICENSE for more information.