dolibarr 21.0.0-alpha
Documents Class Reference

API class for receive files. More...

Inheritance diagram for Documents:
Collaboration diagram for Documents:

Public Member Functions

 __construct ()
 Constructor.
 
 index ($modulepart, $original_file='')
 Download a document.
 
 builddoc ($modulepart, $original_file='', $doctemplate='', $langcode='')
 Build a document.
 
 getDocumentsListByElement ($modulepart, $id=0, $ref='', $sortfield='', $sortorder='')
 Return the list of documents of a dedicated element (from its ID or Ref)
 
 post ($filename, $modulepart, $ref='', $subdir='', $filecontent='', $fileencoding='', $overwriteifexists=0, $createdirifnotexists=1, $position=0, $cover='', $array_options=[])
 Return a document.
 
 delete ($modulepart, $original_file)
 Delete a document.
 
- Public Member Functions inherited from DolibarrApi
 __construct ($db, $cachedir='', $refreshCache=false)
 Constructor.
 

Additional Inherited Members

- Protected Member Functions inherited from DolibarrApi
 _checkValForAPI ($field, $value, $object)
 Check and convert a string depending on its type/name.
 
 _filterObjectProperties ($object, $properties)
 Filter properties that will be returned on object.
 
 _cleanObjectDatas ($object)
 Clean sensitive object data @phpstan-template T of Object.
 
 _checkFilters ($sqlfilters, &$error='')
 Return if a $sqlfilters parameter is valid Function no more used.
 
- Static Protected Member Functions inherited from DolibarrApi
static _checkAccessToResource ($resource, $resource_id=0, $dbtablename='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid')
 Check access by user to a given resource.
 
static _forge_criteria_callback ($matches)
 Function to forge a SQL criteria from a Generic filter string.
 

Detailed Description

API class for receive files.

@access protected ,external}

Definition at line 34 of file api_documents.class.php.

Member Function Documentation

◆ builddoc()

Documents::builddoc ( $modulepart,
$original_file = '',
$doctemplate = '',
$langcode = '' )

Build a document.

Test sample 1: { "modulepart": "invoice", "original_file": "FA1701-001/FA1701-001.pdf", "doctemplate": "crabe", "langcode": "fr_FR" }.

Supported modules: invoice, order, proposal, contract, shipment

Parameters
string$modulepartName of module or area concerned by file download ('thirdparty', 'member', 'proposal', 'supplier_proposal', 'order', 'supplier_order', 'invoice', 'supplier_invoice', 'shipment', 'project', ...)
string$original_fileRelative path with filename, relative to modulepart (for example: IN201701-999/IN201701-999.pdf).
string$doctemplateSet here the doc template to use for document generation (If not set, use the default template).
string$langcodeLanguage code like 'en_US', 'fr_FR', 'es_ES', ... (If not set, use the default language).
Returns
array List of documents

@url PUT /builddoc

Exceptions
RestException400 Bad value for parameter modulepart or original_file
RestException403 Access denied
RestException404 Invoice, Order, Proposal, Contract or Shipment not found
RestException500 Error generating document
RestException501 File not found

Definition at line 133 of file api_documents.class.php.

References dol_check_secure_access_document(), dol_mimetype(), dol_osencode(), and getDolGlobalString().

◆ delete()

Documents::delete ( $modulepart,
$original_file )

Delete a document.

Parameters
string$modulepartName of module or area concerned by file download ('product', ...)
string$original_fileRelative path with filename, relative to modulepart (for example: PRODUCT-REF-999/IMAGE-999.jpg)
Returns
array List of documents

@url DELETE /

Exceptions
RestException400 Bad value for parameter modulepart
RestException400 Bad value for parameter original_file
RestException403 Access denied
RestException404 File not found
RestException500 Error on file operation

Definition at line 975 of file api_documents.class.php.

References dol_check_secure_access_document(), dol_osencode(), and dol_syslog().

◆ getDocumentsListByElement()

Documents::getDocumentsListByElement ( $modulepart,
$id = 0,
$ref = '',
$sortfield = '',
$sortorder = '' )

Return the list of documents of a dedicated element (from its ID or Ref)

Supported modules: thirdparty, user, member, proposal, order, supplier_order, shipment, invoice, supplier_invoice, product, event, expensereport, knowledgemanagement, category, contract

Parameters
string$modulepartName of module or area concerned ('thirdparty', 'member', 'proposal', 'order', 'invoice', 'supplier_invoice', 'shipment', 'project', ...)
int$idID of element
string$refRef of element
string$sortfieldSort criteria ('','fullname','relativename','name','date','size')
string$sortorderSort order ('asc' or 'desc')
Returns
array Array of documents with path

@url GET /

Exceptions
RestException400 Bad value for parameter modulepart, id or ref
RestException403 Access denied
RestException404 Thirdparty, User, Member, Order, Invoice or Proposal not found
RestException500 Error while fetching object
RestException503 Error when retrieve ecm list

Definition at line 316 of file api_documents.class.php.

References $id, $object, dol_dir_list(), dol_sanitizeFileName(), and get_exdir().

◆ index()

Documents::index ( $modulepart,
$original_file = '' )

Download a document.

Note that, this API is similar to using the wrapper link "documents.php" to download a file (used for internal HTML links of documents into application), but with no need to have a session cookie (the token is used instead).

Parameters
string$modulepartName of module or area concerned by file download ('facture', ...)
string$original_fileRelative path with filename, relative to modulepart (for example: IN201701-999/IN201701-999.pdf)
Returns
array List of documents

@url GET /download

Exceptions
RestException400 Bad value for parameter modulepart or original_file
RestException403 Access denied
RestException404 File not found

Definition at line 62 of file api_documents.class.php.

References dol_check_secure_access_document(), dol_mimetype(), dol_osencode(), and dol_syslog().

◆ post()

Documents::post ( $filename,
$modulepart,
$ref = '',
$subdir = '',
$filecontent = '',
$fileencoding = '',
$overwriteifexists = 0,
$createdirifnotexists = 1,
$position = 0,
$cover = '',
$array_options = [] )

Return a document.

Parameters
int$idID of document
Returns
array Array with data of file
Exceptions
RestExceptionUpload a document.

Test sample for invoice: { "filename": "mynewfile.txt", "modulepart": "invoice", "ref": "FA1701-001", "subdir": "", "filecontent": "content text", "fileencoding": "", "overwriteifexists": "0" }. Test sample for supplier invoice: { "filename": "mynewfile.txt", "modulepart": "supplier_invoice", "ref": "FA1701-001", "subdir": "", "filecontent": "content text", "fileencoding": "", "overwriteifexists": "0" }. Test sample for medias file: { "filename": "mynewfile.txt", "modulepart": "medias", "ref": "", "subdir": "image/mywebsite", "filecontent": "Y29udGVudCB0ZXh0Cg==", "fileencoding": "base64", "overwriteifexists": "0" }.

Supported modules: invoice, order, supplier_order, task/project_task, product/service, expensereport, fichinter, member, propale, agenda, contact

Parameters
string$filenameName of file to create ('FA1705-0123.txt')
string$modulepartName of module or area concerned by file upload ('product', 'service', 'invoice', 'proposal', 'project', 'project_task', 'supplier_invoice', 'expensereport', 'member', ...)
string$refReference of object (This will define subdir automatically and store submitted file into it)
string$subdirSubdirectory (Only if ref not provided)
string$filecontentFile content (string with file content. An empty file will be created if this parameter is not provided)
string$fileencodingFile encoding (''=no encoding, 'base64'=Base 64)
int$overwriteifexistsOverwrite file if exists (1 by default)
int$createdirifnotexistsCreate subdirectories if the doesn't exists (1 by default)
int$positionPosition
string$coverCover info
array$array_optionsarray of options
Returns
string

@url POST /upload

Exceptions
RestException400 Bad Request
RestException403 Access denied
RestException404 Object not found
RestException500 Error on file operation

Definition at line 677 of file api_documents.class.php.

References $object, dol_basename(), dol_check_secure_access_document(), dol_delete_file(), dol_is_dir(), dol_is_file(), dol_mkdir(), dol_move(), dol_sanitizeFileName(), dol_sanitizePathName(), dol_syslog(), dolCheckVirus(), dolChmod(), get_exdir(), getDolGlobalInt(), getDolGlobalString(), getUserRemoteIP(), and isAFileWithExecutableContent().


The documentation for this class was generated from the following file: