1. Go to this page and download the library: Download klongchu/bud-docuware library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
klongchu / bud-docuware example snippets
use Klongchu\DocuWare\Connectors\DocuWareStaticConnector;
// Will use user credentials defined in config to authenticate and store cookie in cache
$connector = new DocuWareStaticConnector();
// OR
// Pass in a config manually
$config = Config::make([
'url' => 'https://domain.docuware.cloud',
'cookie' => 'cookie',
'cache_driver' => 'file',
'cache_lifetime_in_seconds' => 60,
'request_timeout_in_seconds' => 15,
]);
$connector = new DocuWareDynamicConnector($config);
/**
* Return an organization.
*/
$organization = $connector->send(new GetOrganizationRequest($id))->dto();
/**
* Return all organizations.
*/
$organizations = $connector->send(new GetOrganizationsRequest())->dto();
/**
* Return all file cabinets.
*/
$fileCabinets = $connector->send(new GetFileCabinetsRequest())->dto();
/**
* Return all fields of a file cabinet.
*/
$fields = $connector->send(new GetFieldsRequest($fileCabinetId))->dto();
/**
* Return all dialogs of a file cabinet.
*/
$dialogs = $connector->send(new GetDialogsRequest($fileCabinetId))->dto();
/**
* Return all used values for a specific field.
*/
$values = $connector->send(new GetSelectListRequest($fileCabinetId, $dialogId, $fieldName))->dto();
/**
* Return a document.
*/
$document = $connector->send(new GetDocumentRequest($fileCabinetId, $documentId))->dto();
/**
* Return all documents for a file cabinet.
*/
$documents = $connector->send(new GetDocumentRequest($fileCabinetId))->dto();
/**
* Return image preview of a document.
*/
$content = $connector->send(new GetDocumentPreviewRequest($fileCabinetId, $documentId))->dto();
/**
* Download single document.
*/
$content = $connector->send(new GetDocumentDownloadRequest($fileCabinetId, $documentId))->dto();
/**
* Download multiple documents.
*
* Although there are no mentioned limits in the documentation,
* it is not advisable to download more than 100 documents at once.
*
* Also note there is a default request timeout of 30 seconds.
*/
$content = $connector->send(new GetDocumentsDownloadRequest($fileCabinetId, $documentIds))->dto();
/**
* Download a document thumbnail.
*/
$thumbnail = $connector->send(new GetDocumentDownloadThumbnailRequest($fileCabinetId, $documentId, $section))->dto();
/**
* Update value of a indexed field.
*/
$value = $connector->send(new PutDocumentFieldsRequest($fileCabinetId, $documentId, [$fieldName => $newValue]))->dto()[$fieldName];
/**
* Update multiple values of indexed fields.
*/
$values = $connector->send(new PutDocumentFieldsRequest($fileCabinetId, $documentId, [
$fieldName => $newValue,
$field2Name => $new2Value,
]))->dto();
/**
* Upload new document.
*/
$document = $connector->send(new PostDocumentRequest($fileCabinetId, $fileContent, $fileName))->dto();
/**
* Get total document count.
*/
$content = $connector->send(new GetDocumentCountRequest($fileCabinetId, $dialogId))->dto();
/**
* Upload new document with index values.
*/
use Klongchu\DocuWare\DTO\DocumentIndex;
$indexes = collect([
DocumentIndex::make('DOCUMENT_TEXT', 'Indexed Text'),
DocumentIndex::make('DOCUMENT_NUMBER', 42),
]);
$document = $connector->send(new PostDocumentRequest(
$fileCabinetId,
$fileContent,
$fileName,
$indexes,
))->dto();
/**
* Delete document.
*/
$connector->send(new DeleteDocumentRequest($fileCabinetId, $document->id))->dto();
use Klongchu\DocuWare\Facades\DocuWare;
use Klongchu\DocuWare\Connectors\DocuWareStaticConnector;
$connector = new DocuWareStaticConnector();
/**
* Most basic example to search for documents. You only need to provide a valid
* file cabinet id.
*/
$fileCabinetId = '87356f8d-e50c-450b-909c-4eaccd318fbf';
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($fileCabinetId)
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* Search in multiple file cabinets. Provide an array of file cabinet ids.
*/
$fileCabinetIds = [
'0ee72de3-4258-4353-8020-6a3ff6dd650f',
'3f9cb4ff-82f2-44dc-b439-dd648269064f',
];
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinets($fileCabinetIds)
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* Find results on the next page.
*
* Default: 1
*/
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($id)
->page(2)
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* Define the number of results which should be shown per page.
*
* Default: 50
*/
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($id)
->perPage(30)
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* Use the full-text search. You have to activate full-text search in your file
* cabinet before you can use this feature.
*/
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($id)
->fulltext('My secret document')
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* Search documents which are created from the first of march.
*/
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($id)
->filterDate('DWSTOREDATETIME', '>=', Carbon::create(2021, 3, 1))
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* Search documents which are created until the first of april.
*/
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($id)
->filterDate('DWSTOREDATETIME', '<', Carbon::create(2021, 4, 1))
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* Order the results by field name. Supported values: 'asc', 'desc'
*/
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($id)
->orderBy('DWSTOREDATETIME', 'desc')
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* Search documents filtered to the value. You can specify multiple filters.
*/
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($id)
->filter('TYPE', 'Order')
->filter('OTHER_FIELD', 'other')
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* You can specify the dialog which should be used.
*/
$dialogId = 'bb42c30a-89fc-4b81-9091-d7e326caba62';
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($id)
->dialog($dialogId)
->get();
$paginator = $connector->send($paginatorRequest)->dto();
/**
* You can also combine everything.
*/
$paginatorRequest = DocuWare::searchRequestBuilder()
->fileCabinet($id)
->page(2)
->perPage(30)
->fulltext('My secret document')
->filterDate('DWSTOREDATETIME', '>=', Carbon::create(2021, 3, 1))
->filterDate('DWSTOREDATETIME','<',Carbon::create(2021, 4, 1))
->filter('TYPE', 'Order')
->filter('OTHER_FIELD', 'other')
->orderBy('DWSTOREDATETIME', 'desc')
->dialog($dialogId)
->get();
$paginator = $connector->send($paginatorRequest)->dto();
use Klongchu\DocuWare\Facades\DocuWare;
/**
* Make encrypted URL for a document in a file cabinet.
*/
$fileCabinetId = '87356f8d-e50c-450b-909c-4eaccd318fbf';
$documentId = 42;
$url = DocuWare::url()
->fileCabinet($fileCabinetId)
->document($documentId)
->make();
/**
* Make encrypted URL for a document in a basket.
*/
$basketId = 'b_87356f8d-e50c-450b-909c-4eaccd318fbf';
$url = DocuWare::url()
->basket($basketId)
->document($documentId)
->make();
/**
* Make encrypted URL valid for a specific amount of time. In the example below
* the URL is valid for one week. Afterwards the URL is no longer working.
*/
$url = DocuWare::url()
->fileCabinet($fileCabinetId)
->document($documentId)
->validUntil(now()->addWeek())
->make();
use Klongchu\DocuWare\Facades\DocuWare;
/**
* Receive a cookie
*/
DocuWare::cookie(string $url, string $username, string $password);
/**
* Login with your credentials. You only need to login once. Afterwards the
* authentication cookie is stored in the cache as `docuware.cookies` and
* is used for all further requests.
*/
DocuWare::login();
/**
* Logout your current session. Removes the authentication cookie in the cache.
*/
DocuWare::logout();
use Klongchu\DocuWare\Connectors\StaticCookieConnector;
$connector = new DocuWareStaticConnector();
$response = $connector->send(new GetDocumentRequest($fileCabinetId, $documentId));
$response->isCached(); // false
// Next time the request is sent
$response = $connector->send(new GetDocumentRequest($fileCabinetId, $documentId));
$response->isCached(); // true
$connector = new DocuWareStaticConnector();
$request = new GetDocumentRequest($fileCabinetId, $documentId);
$request->invalidateCache();
$response = $connector->send($request);
$connector = new DocuWareStaticConnector();
$request = new GetDocumentRequest($fileCabinetId, $documentId);
$request->disableCaching();
$response = $connector->send($request);
use Klongchu\DocuWare\Events\DocuWareResponseLog;
// Log each response from the DocuWare REST API.
DocuWareResponseLog::class => [
//
],
return [
/*
|--------------------------------------------------------------------------
| Connection
|--------------------------------------------------------------------------
| Select a connector to authenticate with. You can choose between: WITHOUT_COOKIE, STATIC_COOKIE
|
*/
'connection' => ConnectionEnum::WITHOUT_COOKIE,
/*
|--------------------------------------------------------------------------
| Cache driver
|--------------------------------------------------------------------------
| You may like to define a different cache driver than the default Laravel cache driver.
|
*/
'cache_driver' => env('DOCUWARE_CACHE_DRIVER', env('CACHE_DRIVER', 'file')),
/*
|--------------------------------------------------------------------------
| Cookies
|--------------------------------------------------------------------------
| This variable is optional and only used if you want to set the request cookie manually.
|
*/
'cookies' => env('DOCUWARE_COOKIES'),
/*
|--------------------------------------------------------------------------
| Requests timeout
|--------------------------------------------------------------------------
| This variable is optional and only used if you want to set the request timeout manually.
|
*/
'timeout' => env('DOCUWARE_TIMEOUT', 15),
/*
|--------------------------------------------------------------------------
| DocuWare Credentials
|--------------------------------------------------------------------------
|
| Before you can communicate with the DocuWare REST-API it is necessary
| to enter your credentials. You should specify a url containing the
| scheme and hostname. In addition add your username and password.
|
*/
'credentials' => [
'url' => env('DOCUWARE_URL'),
'username' => env('DOCUWARE_USERNAME'),
'password' => env('DOCUWARE_PASSWORD'),
],
/*
|--------------------------------------------------------------------------
| Passphrase
|--------------------------------------------------------------------------
|
| In order to create encrypted URLs we need a passphrase. This enables a
| secure exchange of DocuWare URLs without anyone being able to modify
| your query strings. You can find it in the organization settings.
|
*/
'passphrase' => env('DOCUWARE_PASSPHRASE'),
/*
|--------------------------------------------------------------------------
| Authentication Cookie Lifetime
|--------------------------------------------------------------------------
|
| Here you may define the amount of minutes the authentication cookie is
| valid. Afterwards it will be removed from the cache and you need to
| provide a fresh one. By default, the lifetime lasts for one year.
|
*/
'cookie_lifetime' => (int) env('DOCUWARE_COOKIE_LIFETIME', 525600),
/*
|--------------------------------------------------------------------------
| Configurations
|--------------------------------------------------------------------------
|
*/
'configurations' => [
'search' => [
'operation' => 'And',
/*
* Force Refresh
* Determine if result list is retrieved from the cache when ForceRefresh is set
* to false (default) or always a new one is executed when ForceRefresh is set to true.
*/
'force_refresh' => false,
'