Compare commits

..

13 commits

Author SHA1 Message Date
Alexis Gousseau
b6b4311d83
chore: 🔖 release v5.0.0 2026-04-15 11:45:27 +02:00
Alexis Gousseau
d6fc06e032
fix: 🚨 resolve some phpcs/phpstan errors 2026-04-15 11:44:56 +02:00
Alexis Gousseau
380985915f
fix: 🐛 update central domains of tenancy configuration 2026-04-15 11:23:14 +02:00
Alexis Gousseau
94a972bddf
feat: ✨ build each theme in its own public directory 2026-04-15 11:21:52 +02:00
Alexis Gousseau
b258467fea
feat: ✨ add commit lint from husky configuration 2026-04-14 16:38:08 +02:00
Vincent BRIDIER
6053f57330 Merge branch 'master' into multi-tenant 2026-01-02 16:50:08 +01:00
Alexis Gousseau
071b39b73e
fix: 🐛 review feedback processing 2025-08-29 15:06:04 +02:00
Alexis Gousseau
0c29757c4e
chore: 🔖 release v4.0.0 2025-08-29 15:04:34 +02:00
Alexis Gousseau
b5a64a122a
fix: 🚨 resolve phpcs/phpstan errors 2025-08-29 15:03:32 +02:00
Alexis Gousseau
a9bd294360
feat: 🛂 change BO Auth for SAML 2025-08-29 15:01:37 +02:00
Alexis Gousseau
5f222c4997
fix: 🐛 validate all tests cases 2025-08-29 15:01:34 +02:00
Alexis Gousseau
566497a576
feat: ✨ set multi tenancy (path) for the front 2025-08-29 14:58:48 +02:00
Alexis Gousseau
6e44941f4f
feat: ✨ set multi tenancy (path) for the back 2025-08-29 14:46:51 +02:00
597 changed files with 263456 additions and 12083 deletions

View file

@ -65,3 +65,13 @@ CODE_PAGINATE=
CODE_CHAR_LIST=
# Code length (chars).
CODE_CHAR_LENGTH=
# SAML
SAML2_DEFAULT_TENANT_UUID=
SAML2_SP_CERT_x509=
SAML2_SP_CERT_PRIVATEKEY=
SAML2_CONTACT_TECHNICAL_EMAIL=
SAML2_CONTACT_SUPPORT_EMAIL=
# MULTI TENANT
TENANT_CENTRAL_DOMAINS=

61
.eslintrc.json Normal file
View file

@ -0,0 +1,61 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"eslint:recommended",
"plugin:vue/vue3-strongly-recommended",
"@vue/eslint-config-typescript"
],
"overrides": [
{
"files": ["*.ts", "*.vue"],
"rules": {
"no-undef": "off"
}
},
{
"files": ["*.vue"],
"rules": {
"indent": "off"
}
}
],
"parser": "vue-eslint-parser",
"parserOptions": {
"parser": "@typescript-eslint/parser",
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["vue", "@typescript-eslint"],
"ignorePatterns": [
"**/*.php",
"**/*.svg",
"**/vendor/*.js",
"**/vendor/**/*.js",
"**/vendor/**/*.scss"
],
"rules": {
"indent": ["error", 4, { "SwitchCase": 1 }],
"linebreak-style": ["error", "unix"],
"quotes": ["error", "double"],
"semi": ["error", "always"],
"vue/script-indent": ["error", 2, { "baseIndent": 0, "switchCase": 1 }],
"vue/one-component-per-file": "off"
},
"settings": {
"import/resolver": {
"node": {
"extensions": [".js", ".vue", ".ts", ".d.ts"]
},
"alias": {
"extensions": [".vue", ".js", ".ts", ".scss", ".d.ts"],
"map": [
["~", "./resources/assets"],
["@", "./node_modules"]
]
}
}
}
}

6
.gitignore vendored
View file

@ -10,10 +10,12 @@
/node_modules
/bootstrap
/public/build
/public/favicons
/public/cache
/public/hot
/public/sitemap.xml
/public/storage
/public/**/
/storage/*.key
/vendor
auth.json
@ -23,14 +25,14 @@ Homestead.yaml
npm-debug.log
yarn-error.log
.npmrc
/resources/theme
# https://lab.s-web.fr/ldc-web/projets/gen-game-web/-/issues/17
public/fichiers
storage
resources/theme
.npm/
.composer/
.zshrc
resources/theme/*
!resources/theme/.gitkeep
# Ignore public favicon
/public/android-chrome-192x192.png

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "resources/theme"]
path = resources/theme
url = ../gen-game-web-themes/theme-merger.git

View file

@ -1,2 +1,3 @@
#!/bin/sh
npx commitlint --config node_modules/@uwil/husky-config/commitlint.config.js --edit $1
npx --no -- commitlint --config node_modules/@uwil/husky-config/commitlint.config.cjs --edit $1

View file

@ -23,12 +23,14 @@
],
"customSyntax": "postcss-scss",
"rules": {
"declaration-property-value-no-unknown": null,
"declaration-property-value-no-unknown": true,
"selector-max-id": null,
"color-no-invalid-hex": true,
"order/properties-alphabetical-order": null,
"max-nesting-depth": 5,
"selector-max-compound-selectors": 5,
"declaration-colon-newline-after": null,
"value-list-comma-newline-after": null,
"scss/double-slash-comment-empty-line-before": [
"always",
{
@ -40,4 +42,4 @@
}
]
}
}
}

23
CHANGELOG.md Normal file
View file

@ -0,0 +1,23 @@
# Changelog
All notable changes to `gen-game-web` will be documented in this file.
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
- This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
- Commits respect [Conventionnal commits](https://www.conventionalcommits.org/en/v1.0.0/) & use [Gitmoji](https://gitmoji.dev/).
## **[v5.0.0] - 15/04/2026**
### Added
- feat: ✨ set multi tenancy (path) for the back
- feat: ✨ set multi tenancy (domain) for the front
- feat: 🛂 change BO Auth for SAML
- feat: ✨ add commit lint from husky configuration
- feat: ✨ build each theme in its own public directory
### Changed
- fix: 🐛 validate all tests cases
- fix: 🐛 update central domains of tenancy configuration
- fix: 🚨 resolve phpcs/phpstan errors

View file

@ -6,8 +6,6 @@
cp .env.example .env
php artisan key:generate /!\ bien sauvegarder la key
php artisan migrate:fresh --step
# Seulement pour developper un theme par exemple
php artisan db:seed --class DevelopmentSeeder
php artisan uwil:user:create
```
@ -17,8 +15,27 @@ php artisan uwil:user:create
php artisan uwil:user:create
```
## Ajouter Parametrage du jeu
## Ajouter un theme
- Se connecter au back-office et créer un nouveau tenant (**le thème correspond au nom du dossier dans lequel se situe votre thème**),
- Dans votre environnement, rediriger le domaine ciblé vers le `public/nom-du-theme/`,
- Se mettre dans resources/theme et installer le theme voulu:
``` Bash
git clone git@lab.s-web.fr:ldc-web/projets/gen-game-web-themes/le-gaulois/le-gaulois-tdf/le-gaulois-tdf-2025.git
```
- Se remettre à la racine du moteur et compiler votre thème:
```bash
npm run prod-theme le-gaulois-tdf-2025
```
- ou compiler tous les thèmes présents:
```Bash
npm run prod
```
> **Notes:**
> - chaque thème est compilé dans son propre dossier `public/nom-du-theme/`
> - le backend étant partagé à tous les thèmes, il est compilé directement dans `public/`
## Ajouter Parametrage du jeu
**Les lots sont à ajouter avant de générer les instants gagants**. En effet les instants gagants sont liés à des lots.
@ -30,30 +47,3 @@ artisan queue:work
En cas de manipulation pourrie, penser a vider le cache pour supprimer le lock
sur le job de generation des codes.
## THEME
### Instalation
Pour installer le theme bien **mettre à jour les submodules avec git**,
`git submodule update --init --recursive`
puis utiliser la commande `php artisan uwil:theme:switch NOM_DU_THEME` et `php artisan optimize:clear && php artisan optimize`
Pour mettre a jour la liste des themes :
### Mise à jour
**Note** : cette partie n'est pas encore certaine.
- Mettre à jour `git submodule update --remote --merge resources/theme`
Ou
``` Bash
cd resources/themes;
git pull origin main;
cd ../..;
git add resources/themes
```
Puis commit.

View file

@ -41,7 +41,7 @@ class CrmUserProvider extends EloquentUserProvider implements UserProviderContra
self::retrieveTrashed($credentials);
try {
/** @var \LDC\LDCCRM\CrmApiV4 */
/** @var \LDC\LDCCRM\CrmApiV2 */
$crm = app('crmAPI');
// Si pas de compte local.
@ -58,11 +58,11 @@ class CrmUserProvider extends EloquentUserProvider implements UserProviderContra
return $model;
} catch (ApiErrorException $e) {
// * Customer is not found.
if ($e->getApiError()->equals(ApiError::modelNotFound)) {
if ($e->getApiError()->equals(ApiError::modelNotFound())) {
return null;
}
report($e);
Log::error('Unhandled response ' . $e->getApiError()->label());
Log::error('Unhandled response ' . $e->getApiError()->label);
} catch (CrmException | \Exception $e) {
report($e);
// Une erreur critique est survenue avec la CRM.
@ -90,7 +90,7 @@ class CrmUserProvider extends EloquentUserProvider implements UserProviderContra
}
try {
/** @var \LDC\LDCCRM\CrmApiV4 */
/** @var \LDC\LDCCRM\CrmApiV2 */
$crm = app('crmAPI');
// * If has trait soft delete and customer trashed, then restore customer.
@ -104,22 +104,16 @@ class CrmUserProvider extends EloquentUserProvider implements UserProviderContra
// * Ne devrait pas survenir, $crm->login throws ApiError::authFailed()
return $crm->login($credentials['email'], $credentials['password']);
} catch (ApiErrorException $e) {
if (
$e->getApiError()->equals(ApiError::modelNotFound) ||
($e->getApiError()->equals(ApiError::authFailed) && !$model->existsInCrm())
) {
$model->delete();
if (!$model->hashcode or !CrmCustomer::find($model->hashcode)) {
$model->forceDelete();
return false;
}
if ($e->getApiError()->equals(ApiError::authFailed)) {
if ($e->getApiError()->equals(ApiError::authFailed())) {
return false;
}
// ! Assert Authenticable model must be valided (MustValidate trait).
if ($e->getApiError()->equals(ApiError::customerNotActivated)) {
$model->email_verified_at = null;
$model->save();
$model->sendEmailVerificationNotification();
Session::flash('warning', \trans('front.messages.account_not_activated'));
if ($e->getApiError()->equals(ApiError::customerNotActivated())) {
Session::flash('warning', \trans('Vous devez activer votre compte'));
return true;
}
} catch (CrmException | \Exception $e) {
@ -144,14 +138,11 @@ class CrmUserProvider extends EloquentUserProvider implements UserProviderContra
private function createLocalCustomer(\LDC\LDCCRM\Models\Customer $crmCustomer): Model
{
/** @var \App\Models\Customer $model */
$model = $this->usedModel::withTrashed()->firstOrNew([
$model = $this->usedModel::firstOrNew([
'email' => $crmCustomer->email
]);
$model->hashcode = $crmCustomer->hashcode;
$model->email_verified_at = $crmCustomer->status ? now() : null;
if ($model->trashed()) {
$model->restore();
}
$model->saveOrFail();
return $model;

View file

@ -0,0 +1,70 @@
<?php
namespace App\Auth;
use App\Models\Customer;
use Illuminate\Support\Str;
use Illuminate\Auth\EloquentUserProvider;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Contracts\Auth\UserProvider;
/**
* Overload EloquentUserProvider to handle
* Soft deleted Customers
*/
class ReactivateCustomerProvider extends EloquentUserProvider implements UserProvider
{
/**
* Retrieve a customer by the given credentials.
*
* @param array $credentials
* @return \Illuminate\Contracts\Auth\Authenticatable|null
* @throws \ErrorException If cannot connect to LDAP.
*/
public function retrieveByCredentials(array $credentials)
{
// * Make changes
if (empty($credentials)) {
return null;
}
// First we will add each credential element to the query as a where clause.
// Then we can execute the query and, if we found a customer, return it in a
// Eloquent User "model" that will be utilized by the Guard instances.
$query = $this->createModel()->newQuery();
foreach ($credentials as $key => $value) {
if (!Str::contains($key, 'password')) {
$query->where($key, $value);
}
}
/** @var \App\Models\Customer|null $query */
return $query->withTrashed()->first();
}
/**
* Validate a customer against the given credentials.
*
* @param \Illuminate\Contracts\Auth\Authenticatable $customer
* @param array $credentials
* @return boolean
* @throws \ErrorException If model provided is not a Customer or connection to server fails.
*/
public function validateCredentials(Authenticatable $customer, array $credentials)
{
/** @var \App\Models\Customer $customer */
if ($customer instanceof Customer) {
throw new \ErrorException('Cannot authenticate any thing else than ' . Customer::class);
}
/** @var \App\Models\Customer $customer */
// @phpstan-ignore-next-line
if ($this->hasher->check($credentials['password'], $customer->getAuthPassword())) {
// * Restore customer
return boolval($customer->restore());
}
return false;
}
}

View file

@ -4,6 +4,7 @@ namespace App\Casts;
use App\Lib\Discount;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use Illuminate\Support\Arr;
class AsDiscount implements CastsAttributes
{
@ -21,11 +22,17 @@ class AsDiscount implements CastsAttributes
*/
public function get($model, string $key, $value, array $attributes): Discount
{
// phpcs:enable
$inputData = \json_decode($value, true);
return Discount::make(...\array_values($inputData));
return Discount::make(
Arr::get($inputData, 'web_coupon_identifiant'),
Arr::get($inputData, 'percentage'),
Arr::get($inputData, 'face_value'),
Arr::get($inputData, 'valid_on'),
Arr::get($inputData, 'picture'),
);
}
/**
* Prepare the given value for storage.
*

View file

@ -1,77 +0,0 @@
<?php
namespace App\Console\Commands\Theme;
use App\Lib\Helpers\ToolboxHelper;
use Illuminate\Console\Command;
use Illuminate\Contracts\Console\PromptsForMissingInput;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
use function Laravel\Prompts\search;
class SwitchCommand extends Command implements PromptsForMissingInput
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'uwil:theme:switch {theme : The theme folder name on theme-merge project}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Switch GGW theme and install it';
/**
* Prompt for missing input arguments using the returned questions.
*
* @return array
*/
protected function promptForMissingArgumentsUsing()
{
return [
'theme' => fn () => search(
label: 'Search for a theme:',
placeholder: 'default-theme',
options: fn (string $value): array => \collect(File::directories(\resource_path('theme')))
->map(fn (string $dir_path) => \pathinfo($dir_path, \PATHINFO_BASENAME))
->filter(fn (string $dir_path) => $value ? Str::of($dir_path)->contains($value) : true)
->filter(fn (string $dir_path) => $dir_path !== 'mounted')
->all()
)
];
}
/**
* Execute the console command.
*
* @return void
*/
public function handle(): void
{
$mount_path = \resource_path('theme/mounted');
/** @var string */
$theme = $this->argument('theme');
if (File::exists($mount_path)) {
\throw_if(
empty(ToolboxHelper::runConsoleCommand("readlink {$mount_path}", false)),
"{$mount_path} is not a link, cannot remove it"
);
\throw_if(
!File::delete($mount_path),
"{$mount_path} Failed to remove file"
);
}
File::link(\resource_path("theme/{$theme}"), $mount_path);
Artisan::call('optimize:clear');
}
}

View file

@ -8,6 +8,7 @@ use Carbon\Carbon;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\ValidationException;
use Illuminate\Support\Str;
class UserCreate extends Command
{
@ -21,7 +22,7 @@ class UserCreate extends Command
/**
* The console command description.
*
* @var string|null
* @var string
*/
protected $description = 'Create a backend admin user';
@ -46,13 +47,6 @@ class UserCreate extends Command
*/
protected $email;
/**
* The password of the new user.
*
* @var string|null
*/
protected $password;
/**
* The role of the new user.
*
@ -63,9 +57,9 @@ class UserCreate extends Command
/**
* Execute the console command.
*
* @return integer
* @return void
*/
public function handle(): int
public function handle(): void
{
$this->first_name = null;
$this->addFirstName();
@ -76,26 +70,20 @@ class UserCreate extends Command
$this->email = null;
$this->addEmail();
$this->password = null;
$this->addPassword();
$this->role = null;
$this->addRole();
$user = new User([
'first_name' => $this->first_name,
'last_name' => $this->last_name,
'email' => $this->email,
'password' => $this->password,
'role' => $this->role,
'published' => true,
'first_name' => $this->first_name,
'last_name' => $this->last_name,
'email' => $this->email,
'role' => $this->role,
'published' => true,
'published_at' => Carbon::now(),
]);
$user->saveOrFail();
$this->info('User created 👌');
return 0;
}
/**
@ -173,22 +161,6 @@ class UserCreate extends Command
}; //end while
}
/**
* Add a password to the user.
*
* @return void
*/
private function addPassword(): void
{
while (
($this->password = $this->secret(
(!\is_null($this->password) ? 'Failed to confirm, ' : '') . 'Type the wanted user password'
)) !== $this->secret('Confirm the password')
) {
continue;
}; //end while
}
/**
* Add a role to the user.
*
@ -198,20 +170,22 @@ class UserCreate extends Command
{
while (is_null($this->role)) {
try {
$tmp = $this->choice(
$tmp = $this->choice(
'Select his role',
[RoleEnum::conceptor->label(), RoleEnum::admin->label(), RoleEnum::marketing->label()],
RoleEnum::marketing->label(),
$maxAttempts = null,
$allowMultipleSelections = false
[
Str::ucFirst(RoleEnum::conceptor->label()),
Str::ucFirst(RoleEnum::admin->label()),
Str::ucFirst(RoleEnum::marketing->label())
],
Str::ucFirst(RoleEnum::marketing->label()),
);
if ($tmp === RoleEnum::conceptor->label()) {
if ($tmp === Str::ucFirst(RoleEnum::conceptor->label())) {
$tmp = RoleEnum::conceptor;
}
if ($tmp === RoleEnum::admin->label()) {
if ($tmp === Str::ucFirst(RoleEnum::admin->label())) {
$tmp = RoleEnum::admin;
}
if ($tmp === RoleEnum::marketing->label()) {
if ($tmp === Str::ucFirst(RoleEnum::marketing->label())) {
$tmp = RoleEnum::marketing;
}
$validator = Validator::make(['role' => $tmp], [

View file

@ -21,11 +21,9 @@ class Kernel extends ConsoleKernel
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
protected function schedule(Schedule $schedule): void
{
// ! ATTENTION: Le job DeleteOldCustomers a été désactivé, car il n'est pas applicable pour l'instant.
// ! Il faudra décorreler les customers des gains et participations via les FK.
// $schedule->job(DeleteOldCustomers::class)->dailyAt('22:50');
$schedule->job(DeleteOldCustomers::class)->dailyAt('22:50');
}
/**
@ -33,10 +31,8 @@ class Kernel extends ConsoleKernel
*
* @return void
*/
protected function commands()
protected function commands(): void
{
$this->load(__DIR__ . '/Commands');
require base_path('routes/console.php');
}
}

View file

@ -0,0 +1,37 @@
<?php
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log;
if (!function_exists('themeConfig')) {
/**
* Undocumented function
*
* @return array
* @throws \Exception Folder or config file doesn't exist.
*/
function themeConfig(): array
{
$themeName = tenant()->theme;
return Cache::remember("config-$themeName", 84600, function () use ($themeName) {
$themePath = resource_path("theme/$themeName");
$configFile = "$themePath/theme.config.php";
if (!is_dir($themePath)) {
Log::error("Le dossier du thème [$themeName] est introuvable : $themePath");
throw new \Exception(
"Le dossier du thème [$themeName] est introuvable : $themePath"
);
}
if (!file_exists($configFile)) {
Log::error("Le fichier de config du thème [$themeName] est introuvable : $configFile");
throw new \Exception(
"Le fichier de config du thème [$themeName] est introuvable : $configFile"
);
}
return require $configFile;
});
}
} //end if

View file

@ -3,9 +3,8 @@
namespace App\Http\Controllers\Bo\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Auth\StatefulGuard;
use Illuminate\Contracts\View\View;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@ -28,7 +27,7 @@ class LoginController extends Controller
*
* @return \Illuminate\Contracts\Auth\StatefulGuard
*/
protected function guard(): StatefulGuard
protected function guard(): \Illuminate\Contracts\Auth\StatefulGuard
{
return Auth::guard('backend');
}
@ -38,7 +37,7 @@ class LoginController extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function showLoginForm(): View
public function showLoginForm(): \Illuminate\Contracts\View\View
{
return view('back::auth.login');
}
@ -59,7 +58,7 @@ class LoginController extends Controller
* @param \Illuminate\Http\Request $request
* @return boolean
*/
protected function attemptLogin(Request $request)
protected function attemptLogin(Request $request): bool
{
$credentials = $this->credentials($request);
// * Attempt login only using published users.
@ -69,4 +68,27 @@ class LoginController extends Controller
$request->boolean('remember')
);
}
/**
* Log the user out of the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
*/
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
if ($response = $this->loggedOut($request)) {
return $response;
}
return $request->wantsJson()
? new JsonResponse([], 204)
: redirect()->route('bo.login')->with('warning', trans('auth.logout'));
}
}

View file

@ -3,7 +3,6 @@
namespace App\Http\Controllers\Bo\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Auth\StatefulGuard;
use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Support\Facades\Auth;
@ -16,7 +15,7 @@ class ResetPasswordController extends Controller
*
* @return \Illuminate\Contracts\Auth\StatefulGuard
*/
protected function guard(): StatefulGuard
protected function guard(): \Illuminate\Contracts\Auth\StatefulGuard
{
return Auth::guard('backend');
}

View file

@ -7,9 +7,8 @@ use App\Models\Participation;
use App\Models\Settings;
use Carbon\Carbon;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
class DashboardController extends Controller
class BackController extends Controller
{
/**
* Dashboard Page
@ -18,13 +17,24 @@ class DashboardController extends Controller
*/
public function index(): \Illuminate\Contracts\View\View
{
// * Pour les stats.
return view('back::pages.dashboard.index');
}
/**
* Dashboard Page
*
* @return \Illuminate\Contracts\View\View
*/
public function statistics(): \Illuminate\Contracts\View\View
{
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = Settings::query()->where('tenant_id', \tenant()->getKey())->firstOrFail();
$avgParticipUser = 0;
$participationPeriod = [];
$statsUnique = [];
$query = DB::table((new Participation())->getTable());
$query = Participation::query()->whereHas('code', function ($query) {
$query->where('tenant_id', \tenant()->getKey());
});
$dateFrmtr = function (object $row) {
$row->date = Carbon::parse($row->date)->isoFormat('DD/MM/YYYY');
return $row;
@ -45,7 +55,7 @@ class DashboardController extends Controller
->selectRaw("DISTINCT customer_id AS user, COUNT(*) AS count")
->groupBy('user')->orderBy('user')->get();
$participationsTotal = Participation::query()->count();
$participationsTotal = $query->count();
/** @var \Illuminate\Support\Collection<object> 3 codes EAN les plus utilisés */
$codesEan = (clone $query)
@ -69,9 +79,9 @@ class DashboardController extends Controller
$end_date = now()->lt($settings->end_date) ? now() : $settings->end_date;
$dates = $participationsPerDay->keys();
$count = $participationsPerDay->pluck('count');
$countUnique = $dates->map(fn (string $formated_date) => Arr::get($statsUnique, $formated_date, 0));
$countUnique = $dates->map(fn(string $formated_date) => Arr::get($statsUnique, $formated_date, 0));
return view('back::pages.dashboard.index', compact(
return view('back::pages.statistics', compact(
'dates',
'count',
'countUnique',

View file

@ -78,7 +78,7 @@ class BannedIpController extends Controller
$banned_ip->fill($request->validated());
if ($banned_ip->saveOrFail()) {
return redirect()
->route('bo.banned_ips.edit', $banned_ip)
->route('bo.banned_ips.edit', ['tenant' => \tenant(), 'banned_ip' => $banned_ip])
->with('success', trans(
'crud.messages.has_been_created',
['model' => Str::singular(trans('models.classes.banned_ips'))]
@ -119,7 +119,7 @@ class BannedIpController extends Controller
$banned_ip->fill($request->validated());
if ($banned_ip->saveOrFail()) {
return redirect()
->route('bo.banned_ips.edit', $banned_ip)
->route('bo.banned_ips.edit', ['tenant' => \tenant(), 'banned_ip' => $banned_ip])
->with('success', trans(
'crud.messages.has_been_updated',
['model' => Str::singular(trans('models.classes.banned_ips'))]
@ -145,7 +145,7 @@ class BannedIpController extends Controller
return DB::transaction(function () use ($banned_ip) {
if ($banned_ip->deleteOrFail()) {
return redirect()
->route('bo.banned_ips.index')
->route('bo.banned_ips.index', ['tenant' => \tenant()])
->with('success', __(
'crud.messages.has_been_deleted',
['model' => Str::singular(trans('models.classes.banned_ips'))]

View file

@ -11,7 +11,7 @@ use App\Jobs\ProcessUniqueCode;
use App\Models\Code;
use App\Models\Participation;
use App\Models\Settings;
use Illuminate\Contracts\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Queue;
use Kwaadpepper\Serial\Exceptions\SerialCasterException;
@ -25,16 +25,20 @@ class CodeController extends Controller
public function index(): \Illuminate\Contracts\View\View
{
$this->authorize('generate', Code::class);
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$nbCodeBase = Code::query()->max('id');
$nbCodeUsed = Code::query()->whereHas(
'participations',
$settings = Settings::query()->where('tenant_id', \tenant()->getKey())->firstOrFail();
$codeQuery = Code::query()->where('tenant_id', \tenant()->getKey());
// Hack to prevent where has modification.
$nbCodeBase = (clone $codeQuery)->max('id');
$nbCodeUsed = (clone $codeQuery)->whereHas(
relation: 'participations',
operator: '>',
count: $settings->nb_unique_code_use
)->count();
$nbCodeExported = Code::query()->where('code_exported', true)->count();
$nbCodeRemainingToExport = Code::query()->where('code_exported', false)->count();
$nbCodeExported = (clone $codeQuery)->where('code_exported', true)->count();
$nbCodeRemainingToExport = (clone $codeQuery)->where('code_exported', false)->count();
return view('back::pages.codes.index', compact(
'settings',
'nbCodeBase',
@ -53,10 +57,12 @@ class CodeController extends Controller
public function generate(GenerateCodesRequest $request): \Illuminate\Http\RedirectResponse
{
$this->authorize('generate', Code::class);
Queue::push(
new ProcessUniqueCode(
intval($request->quantity),
config('codes.codeLength')
config('codes.codeLength'),
\tenant()->setting,
)
);
@ -81,11 +87,13 @@ class CodeController extends Controller
public function export(ExportCodesRequest $request): \Illuminate\Http\RedirectResponse
{
$this->authorize('export', Code::class);
Queue::push(
new ProcessExportCodesUniques(
intval($request->nb_code_fic),
intval($request->nb_code_tot),
intval($request->nb_code_ligne)
intval($request->nb_code_ligne),
\tenant()->setting,
)
);
@ -107,6 +115,7 @@ class CodeController extends Controller
public function search(CodeSearchRequest $request): \Illuminate\Contracts\View\View
{
$this->authorize('search', Code::class);
$code = null;
try {
$code = Code::query()->where('id', Code::serialToInt($request->code))->first();
@ -126,7 +135,9 @@ class CodeController extends Controller
$used_counter = null;
if ($code) {
$used_counter = Participation::query()
->whereHas('code', fn(Builder $q) => $q->where('id', $code->id))
->whereHas('code', fn(Builder $q) => $q
->where('tenant_id', \tenant()->getKey())
->where('id', $code->id))
->count();
}

View file

@ -30,7 +30,9 @@ class FaqQuestionController extends Controller
public function index(Request $request): \Illuminate\Contracts\View\View
{
/** @var \Illuminate\Database\Eloquent\Builder $faqQuestionModels */
$faqQuestionModels = FaqQuestion::query();
$faqQuestionModels = FaqQuestion::query()->with('theme')->whereHas('theme', function ($query) {
$query->where('tenant_id', tenant('id'));
});
/** @var string $search Search field */
$search = $request->search;
@ -69,7 +71,7 @@ class FaqQuestionController extends Controller
$faqThemeModels = FaqTheme::all();
return view('back::pages.faq-questions.create', [
'faqQuestionModel' => $faqQuestion,
'faqThemeModels' => $faqThemeModels
'faqThemeModels' => $faqThemeModels
]);
}
@ -86,7 +88,7 @@ class FaqQuestionController extends Controller
$faqQuestion->fill($request->validated());
if ($faqQuestion->saveOrFail()) {
return redirect()
->route('bo.faq-questions.edit', $faqQuestion)
->route('bo.faq-questions.edit', ['tenant' => \tenant(), 'faq_question' => $faqQuestion])
->with(
'success',
trans(
@ -134,10 +136,7 @@ class FaqQuestionController extends Controller
$faqQuestion->fill($request->validated());
if ($faqQuestion->saveOrFail()) {
return redirect()
->route(
'bo.faq-questions.edit',
$faqQuestion
)
->route('bo.faq-questions.edit', ['tenant' => \tenant(), 'faq_question' => $faqQuestion])
->with('success', trans(
'crud.messages.has_been_updated',
['model' => trans_choice('models.classes.faq-questions', 1)]
@ -163,7 +162,7 @@ class FaqQuestionController extends Controller
return DB::transaction(function () use ($faqQuestion) {
if ($faqQuestion->deleteOrFail()) {
return redirect()
->route('bo.faq-questions.index')
->route('bo.faq-questions.index', ['tenant' => \tenant(), 'faq_question' => $faqQuestion])
->with('success', __(
'crud.messages.has_been_deleted',
['model' => trans_choice('models.classes.faq-questions', 1)]

View file

@ -78,7 +78,7 @@ class FaqThemeController extends Controller
$faqTheme->fill($request->validated());
if ($faqTheme->saveOrFail()) {
return redirect()
->route('bo.faq-themes.edit', $faqTheme)
->route('bo.faq-themes.edit', ['tenant' => \tenant(), 'faq_theme' => $faqTheme])
->with(
'success',
trans(
@ -124,10 +124,7 @@ class FaqThemeController extends Controller
$faqTheme->fill($request->validated());
if ($faqTheme->saveOrFail()) {
return redirect()
->route(
'bo.faq-themes.edit',
$faqTheme
)
->route('bo.faq-themes.edit', ['tenant' => \tenant(), 'faq_theme' => $faqTheme])
->with('success', trans(
'crud.messages.has_been_updated',
['model' => trans_choice('models.classes.faq-themes', 1)]
@ -153,7 +150,7 @@ class FaqThemeController extends Controller
return DB::transaction(function () use ($faqTheme) {
if ($faqTheme->deleteOrFail()) {
return redirect()
->route('bo.faq-themes.index')
->route('bo.faq-themes.index', ['tenant' => \tenant()])
->with('success', __(
'crud.messages.has_been_deleted',
['model' => trans_choice('models.classes.faq-themes', 1)]

View file

@ -5,9 +5,7 @@ namespace App\Http\Controllers\Bo;
use App\Http\Controllers\Controller;
use App\Models\InstantWin;
use App\Models\Prize;
use App\Models\Settings;
use Carbon\CarbonInterval;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
@ -28,7 +26,9 @@ class InstantWinController extends Controller
*/
public function index(): \Illuminate\Contracts\View\View
{
$instantWinModelList = InstantWin::query()->orderBy('available_at')->get();
$instantWinModelList = InstantWin::query()->with('prize')->whereHas('prize', function ($query) {
$query->where('tenant_id', tenant('id'));
})->orderBy('available_at')->get();
return view('back::pages.instant-win.index', [
'instantWinModelList' => $instantWinModelList
@ -40,7 +40,7 @@ class InstantWinController extends Controller
*
* @return \Illuminate\Http\JsonResponse
*/
public function generate(): JsonResponse
public function generate(): \Illuminate\Http\JsonResponse
{
$this->authorize('generate', InstantWin::class);
@ -57,7 +57,7 @@ class InstantWinController extends Controller
$day_end = now()->setTime(22, 29);
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
$prizeModelList = Prize::all();
/** @var \Illuminate\Support\Collection<array-key,\App\Http\Controllers\Bo\WinDayCalendar> */
@ -105,7 +105,9 @@ class InstantWinController extends Controller
});
// * Output instant wins to ajax response
return response()->json(InstantWin::all());
return response()->json(InstantWin::query()->with('prize')->whereHas('prize', function ($query) {
$query->where('tenant_id', tenant('id'));
})->orderBy('available_at')->get()->toArray());
});
}
@ -143,7 +145,7 @@ class InstantWinController extends Controller
// * Tri par heure et assignation du jour correct.
$dateGlobal->each(function (WinDayCalendar $date) {
$date->lots = $date->lots->sort(fn (WinTimeElement $a, WinTimeElement $b) =>
$date->lots = $date->lots->sort(fn(WinTimeElement $a, WinTimeElement $b) =>
$a->time->timestamp - $b->time->timestamp)
->map(function (WinTimeElement $time) use ($date) {
$time->time->setDate(

View file

@ -27,7 +27,11 @@ class ParticipationController extends Controller
$this->authorize('viewWinnerList', Participation::class);
/** @var \Illuminate\Database\Eloquent\Builder $participationModels */
$participationModels = Participation::query()->with(['customer', 'code', 'instantWin', 'product'])->whereHas('instantWin');
$participationModels = Participation::query()->with(['customer', 'code', 'instantWin', 'product'])
->whereHas('customer', function ($query) {
$query->where('tenant_id', tenant('id'));
})
->whereHas('instantWin');
/** Sort columns with a query */
$this->sortQuery($participationModels);
@ -35,9 +39,7 @@ class ParticipationController extends Controller
/** Custom pagination */
$participationModels = $this->paginate($participationModels);
return view('back::pages.winners-list.index', compact(
'participationModels'
));
return view('back::pages.winners-list.index', compact('participationModels'));
}
/**

View file

@ -92,7 +92,7 @@ class PrizeController extends Controller
$prize->fill($request->validated());
if ($prize->saveOrFail()) {
return redirect()
->route('bo.prizes.edit', $prize)
->route('bo.prizes.edit', ['tenant' => \tenant(), 'prize' => $prize])
->with('success', trans(
'crud.messages.has_been_created',
['model' => Str::singular(__('models.classes.prize'))]
@ -133,7 +133,7 @@ class PrizeController extends Controller
$prize->fill($request->validated());
if ($prize->saveOrFail()) {
return redirect()
->route('bo.prizes.edit', $prize)
->route('bo.prizes.edit', ['tenant' => \tenant(), 'prize' => $prize])
->with('success', trans(
'crud.messages.has_been_updated',
['model' => Str::singular(__('models.classes.prize'))]
@ -159,7 +159,7 @@ class PrizeController extends Controller
return DB::transaction(function () use ($prize) {
if ($prize->deleteOrFail()) {
return redirect()
->route('bo.prizes.index')
->route('bo.prizes.index', ['tenant' => \tenant()])
->with('success', __(
'crud.messages.has_been_deleted',
['model' => Str::singular(__('models.classes.prize'))]

View file

@ -30,7 +30,9 @@ class ProductController extends Controller
public function index(Request $request): \Illuminate\Contracts\View\View
{
/** @var \Illuminate\Database\Eloquent\Builder $productModels */
$productModels = Product::query()->with('range');
$productModels = Product::query()->with('range')->whereHas('range', function ($query) {
$query->where('tenant_id', tenant('id'));
});
/** @var string $search Search field */
$search = $request->search;
@ -79,7 +81,7 @@ class ProductController extends Controller
{
$rangeModels = Range::all();
if (!count($rangeModels)) {
return \redirect()->route('bo.ranges.index')
return \redirect()->route('bo.ranges.index', ['tenant' => \tenant()])
->with(
'error',
'Vous devez ajouter une gamme avant de pouvoir ajouter un produit'
@ -104,7 +106,7 @@ class ProductController extends Controller
$product->fill($request->validated());
if ($product->saveOrFail()) {
return redirect()
->route('bo.products.edit', $product)
->route('bo.products.edit', ['tenant' => \tenant(), 'product' => $product])
->with('success', trans(
'crud.messages.has_been_created',
['model' => Str::singular(__('models.classes.product'))]
@ -147,7 +149,7 @@ class ProductController extends Controller
$product->fill($request->validated());
if ($product->saveOrFail()) {
return redirect()
->route('bo.products.edit', $product)
->route('bo.products.edit', ['tenant' => \tenant(), 'product' => $product])
->with('success', trans(
'crud.messages.has_been_updated',
['model' => Str::singular(__('models.classes.product'))]
@ -173,7 +175,7 @@ class ProductController extends Controller
return DB::transaction(function () use ($product) {
if ($product->deleteOrFail()) {
return redirect()
->route('bo.products.index')
->route('bo.products.index', ['tenant' => \tenant()])
->with('success', __(
'crud.messages.has_been_deleted',
['model' => Str::singular(__('models.classes.product'))]

View file

@ -89,7 +89,7 @@ class RangeController extends Controller
$range->fill($request->validated());
if ($range->saveOrFail()) {
return redirect()
->route('bo.ranges.edit', $range)
->route('bo.ranges.edit', ['tenant' => \tenant(), 'range' => $range])
->with('success', trans(
'crud.messages.has_been_created',
['model' => Str::singular(__('models.classes.range'))]
@ -130,7 +130,7 @@ class RangeController extends Controller
$range->fill($request->validated());
if ($range->saveOrFail()) {
return redirect()
->route('bo.ranges.edit', $range)
->route('bo.ranges.edit', ['tenant' => \tenant(), 'range' => $range])
->with('success', trans(
'crud.messages.has_been_updated',
['model' => Str::singular(__('models.classes.range'))]
@ -161,7 +161,7 @@ class RangeController extends Controller
return DB::transaction(function () use ($range) {
if ($range->deleteOrFail()) {
return redirect()
->route('bo.ranges.index')
->route('bo.ranges.index', ['tenant' => \tenant()])
->with('success', __(
'crud.messages.has_been_deleted',
['model' => Str::singular(__('models.classes.range'))]

View file

@ -8,12 +8,9 @@ use App\Mail\Won\PrizeIsSentMail;
use App\Mail\Won\PrizeWonMail;
use App\Mail\Won\WinningProofSubmitedMail;
use App\Models\Prize;
use App\Models\Settings;
use App\Lib\Discount;
use App\Models\Discount;
use App\Models\Participation;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Mail\Mailables\Address;
use Illuminate\Support\Arr;
@ -37,7 +34,7 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function home(): View
public function home(): \Illuminate\Contracts\View\View
{
return view('theme::pages.home');
}
@ -47,7 +44,7 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function teaser(): View
public function teaser(): \Illuminate\Contracts\View\View
{
return view('theme::pages.teaser');
}
@ -57,7 +54,7 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function endGame(): View
public function endGame(): \Illuminate\Contracts\View\View
{
return view('theme::pages.end-game');
}
@ -67,7 +64,7 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function participate(): View
public function participate(): \Illuminate\Contracts\View\View
{
return view('theme::pages.participation.participate');
}
@ -77,7 +74,7 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function participationExhausted(): View
public function participationExhausted(): \Illuminate\Contracts\View\View
{
return view('theme::pages.participation.participation-exhausted');
}
@ -90,13 +87,13 @@ class Re7Controller extends Controller
* @param \App\Models\Prize $prize
* @return \Illuminate\Contracts\View\View
*/
public function prize(Prize $prize): View
public function prize(Prize $prize): \Illuminate\Contracts\View\View
{
// * Fake participation model
$participationModel = new Participation();
$participationModel = 9999999;
return view('theme::pages.participation.won', [
'prizeModel' => $prize,
'prizeModel' => $prize,
'participationModel' => $participationModel
]);
}
@ -106,10 +103,10 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function discount(): View
public function discount(): \Illuminate\Contracts\View\View
{
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
/** @var \App\Lib\Discount */
$discount = Arr::get(
$settings->web_coupons,
@ -129,7 +126,7 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function loose(): View
public function loose(): \Illuminate\Contracts\View\View
{
return view('theme::pages.participation.loose');
}
@ -142,12 +139,13 @@ class Re7Controller extends Controller
* @param \App\Models\Prize $prize
* @return \Illuminate\Contracts\View\View
*/
public function mailPrize(Prize $prize): View
public function mailPrize(Prize $prize): \Illuminate\Contracts\View\View
{
return view('back::pages.re7-preview-mail', [
'render_url' => route('re7.mail-print', [
'type' => 'prize',
'prize' => $prize
'tenant' => \tenant(),
'type' => 'prize',
'prize' => $prize,
])
]);
}
@ -157,17 +155,18 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function mailDiscount(): View
public function mailDiscount(): \Illuminate\Contracts\View\View
{
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
if (!$settings->discounts_activated) {
return abort(404);
}
return view('back::pages.re7-preview-mail', [
'render_url' => route('re7.mail-print', [
'type' => 'discount'
'tenant' => \tenant(),
'type' => 'discount'
])
]);
}
@ -177,11 +176,12 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function mailProofReceived(): View
public function mailProofReceived(): \Illuminate\Contracts\View\View
{
return view('back::pages.re7-preview-mail', [
'render_url' => route('re7.mail-print', [
'type' => 'proof'
'tenant' => \tenant(),
'type' => 'proof'
])
]);
}
@ -191,11 +191,12 @@ class Re7Controller extends Controller
*
* @return \Illuminate\Contracts\View\View
*/
public function mailPrizeSent(): View
public function mailPrizeSent(): \Illuminate\Contracts\View\View
{
return view('back::pages.re7-preview-mail', [
'render_url' => route('re7.mail-print', [
'type' => 'prize-sent'
'tenant' => \tenant(),
'type' => 'prize-sent'
])
]);
}
@ -207,13 +208,13 @@ class Re7Controller extends Controller
* @param \App\Models\Prize|null $prize
* @return \Illuminate\Http\Response
*/
public function mailPrint(string $type, Prize|null $prize = null): Response
public function mailPrint(string $type, Prize|null $prize = null): \Illuminate\Http\Response
{
/** @var \App\Models\User */
$user = auth('backend')->user();
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
switch ($type) {
case 'discount':
@ -259,8 +260,7 @@ class Re7Controller extends Controller
$user->email,
$user->first_name
),
$settings->name,
$settings->company,
$settings
))->render());
default:
return response('', 404);

View file

@ -13,37 +13,27 @@ use Illuminate\Support\Str;
class SettingsController extends Controller
{
/**
* Create the controller instance.
*/
public function __construct()
{
$this->authorizeResource(Settings::class);
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Settings $settings
* @return \Illuminate\Contracts\View\View
*/
public function edit(Settings $settings): \Illuminate\Contracts\View\View
public function edition(): \Illuminate\Contracts\View\View
{
return view('back::pages.settings.edit', [
'settingsModel' => $settings
]);
$settingsModel = Settings::query()->where('tenant_id', tenant('id'))->firstOrFail();
$this->authorize('view', $settingsModel);
return view('back::pages.settings.edit', compact('settingsModel'));
}
/**
* Update the specified resource in storage.
*
* @param \App\Http\Requests\Bo\Settings\UpdateSettingsRequest $request
* @param \App\Models\Settings $settings
* @return \Illuminate\Http\RedirectResponse
*/
public function update(UpdateSettingsRequest $request, Settings $settings): \Illuminate\Http\RedirectResponse
public function update(UpdateSettingsRequest $request): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request, $settings) {
return DB::transaction(function () use ($request) {
$data = $request->validated();
// * Assign parsed Web coupon objects
@ -51,10 +41,11 @@ class SettingsController extends Controller
->map(fn (array $coupon) => $this->parseWebCoupon($coupon))
->filter()->all());
$settings->fill($data);
if ($settings->saveOrFail()) {
$settingsModel = Settings::query()->where('tenant_id', tenant('id'))->firstOrFail();
$settingsModel->fill($data);
if ($settingsModel->saveOrFail()) {
return redirect()
->route('bo.settings.edit', $settings)
->route('bo.settings.edition', ['tenant' => \tenant()])
->with('success', trans(
'crud.messages.has_been_updated',
['model' => Str::singular(__('models.classes.settings'))]
@ -69,14 +60,13 @@ class SettingsController extends Controller
});
}
/**
* Try to parse webCoupon
*
* @param array<string,string> $coupon
* @return \App\Lib\Discount|null
*/
private function parseWebCoupon(array $coupon): Discount | null
private function parseWebCoupon(array $coupon): Discount|null
{
/** @var \Illuminate\Http\UploadedFile|string */
$picture = Arr::get($coupon, 'picture');
@ -90,11 +80,11 @@ class SettingsController extends Controller
}
try {
return Discount::make(
$picture,
Arr::get($coupon, 'valid_on'),
Arr::get($coupon, 'face_value'),
Arr::get($coupon, 'percentage'),
Arr::get($coupon, 'web_coupon_identifiant'),
Arr::get($coupon, 'percentage'),
Arr::get($coupon, 'face_value'),
Arr::get($coupon, 'valid_on'),
$picture,
);
} catch (\RuntimeException | \TypeError) {
return null;

View file

@ -77,7 +77,7 @@ class StaticPageController extends Controller
$static_page->fill($request->validated());
if ($static_page->saveOrFail()) {
return redirect()->route('bo.static_pages.edit', $static_page)
return redirect()->route('bo.static_pages.edit', ['tenant' => \tenant(), 'static_page' => $static_page])
->with('success', __('crud.messages.has_been_updated', [
'model' => Str::ucfirst(\trans_choice('models.classes.static_page', 1))
]));

View file

@ -0,0 +1,185 @@
<?php
namespace App\Http\Controllers\Bo;
use App\Http\Controllers\Controller;
use App\Http\Requests\Bo\Tenants\StoreTenantRequest;
use App\Http\Requests\Bo\Tenants\UpdateTenantRequest;
use App\Models\Tenant;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class TenantController extends Controller
{
/**
* Create the controller instance.
*/
public function __construct()
{
$this->authorizeResource(Tenant::class);
}
/**
* Display a listing of the resource.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Contracts\View\View
*/
public function index(Request $request): \Illuminate\Contracts\View\View
{
/**
* @var \Illuminate\Database\Eloquent\Builder $tenantModels
* @phpstan-ignore larastan.relationExistence
*/
$tenantModels = Tenant::query()->with('domains');
/** @var string $search Search field */
$search = $request->search;
if ($search) {
$this->searchQuery(
$tenantModels,
$search,
null,
'id',
);
}
$searchFields = \implode(', ', [
trans('validation.custom.theme'),
trans('validation.custom.domain'),
]);
/** Sort columns with a query */
$this->sortQuery($tenantModels);
/** Custom pagination */
$tenantModels = $this->paginate($tenantModels);
return view('back::pages.tenants.index', compact('tenantModels', 'search', 'searchFields'));
}
/**
* Display the specified resource.
*
* @param \App\Models\Tenant $tenant
* @return \Illuminate\Contracts\View\View
*/
public function show(Tenant $tenant): \Illuminate\Contracts\View\View
{
return view('back::pages.tenants.show', ['tenantModel' => $tenant]);
}
/**
* Show the form for creating a new resource.
*
* @param \App\Models\Tenant $tenant
* @return \Illuminate\Contracts\View\View
*/
public function create(Tenant $tenant): \Illuminate\Contracts\View\View
{
return view('back::pages.tenants.create', [
'tenantModel' => $tenant
]);
}
/**
* Store a newly created resource in storage.
*
* @param \App\Http\Requests\Bo\Tenants\StoreTenantRequest $request
* @return \Illuminate\Http\RedirectResponse
*/
public function store(StoreTenantRequest $request): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request) {
$tenant = new Tenant();
$tenant->fill(Arr::except($request->validated(), 'domain'));
if ($tenant->saveOrFail()) {
$tenant->createDomain(Arr::only($request->validated(), 'domain'));
return redirect()
->route('bo.tenants.edit', $tenant)
->with('success', trans(
'crud.messages.has_been_created',
['model' => Str::singular(__('models.classes.tenant'))]
));
}
return redirect()
->back()
->with('error', trans(
'crud.messages.cannot_be_created',
['model' => Str::singular(__('models.classes.tenant'))]
));
});
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Tenant $tenant
* @return \Illuminate\Contracts\View\View
*/
public function edit(Tenant $tenant): \Illuminate\Contracts\View\View
{
return view('back::pages.tenants.edit', [
'tenantModel' => $tenant->load('domains'),
]);
}
/**
* Update the specified resource in storage.
*
* @param \App\Http\Requests\Bo\Tenants\UpdateTenantRequest $request
* @param \App\Models\Tenant $tenant
* @return \Illuminate\Http\RedirectResponse
*/
public function update(UpdateTenantRequest $request, Tenant $tenant): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request, $tenant) {
$tenant->fill(Arr::except($request->validated(), 'domain'));
if ($tenant->saveOrFail()) {
$domainModel = $tenant->domains->firstOrFail();
// @phpstan-ignore property.notFound
$domainModel->domain = Arr::get($request->validated(), 'domain');
$domainModel->saveOrFail();
return redirect()
->route('bo.tenants.edit', $tenant)
->with('success', trans(
'crud.messages.has_been_updated',
['model' => Str::singular(__('models.classes.tenant'))]
));
}
return redirect()
->back()
->with('error', trans(
'crud.messages.cannot_be_updated',
['model' => Str::singular(__('models.classes.tenant'))]
));
});
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Tenant $tenant
* @return \Illuminate\Http\RedirectResponse
*/
public function destroy(Tenant $tenant): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($tenant) {
if ($tenant->deleteOrFail()) {
return redirect()
->route('bo.tenants.index')
->with('success', __(
'crud.messages.has_been_deleted',
['model' => Str::singular(__('models.classes.tenant'))]
));
}
return redirect()
->back()
->with('error', __(
':crud.messages.cannot_be_deleted',
['model' => Str::singular(__('models.classes.tenant'))]
));
});
}
}

View file

@ -5,9 +5,11 @@ namespace App\Http\Controllers\Bo;
use App\Http\Controllers\Controller;
use App\Http\Requests\Bo\Users\StoreUserRequest;
use App\Http\Requests\Bo\Users\UpdateUserRequest;
use App\Models\Tenant;
use App\Models\User;
use App\Traits\Controllers\UpdateModelPublished;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
@ -72,7 +74,8 @@ class UserController extends Controller
*/
public function create(User $user): \Illuminate\Contracts\View\View
{
return view('back::pages.users.create', ['userModel' => $user]);
$tenants = Tenant::query()->orderBy('theme', 'ASC')->paginate(10);
return view('back::pages.users.create', ['userModel' => $user, 'tenants' => $tenants]);
}
/**
@ -85,9 +88,10 @@ class UserController extends Controller
{
return DB::transaction(function () use ($request) {
$user = new User();
$user->fill($request->validated());
$user->fill(Arr::except($request->validated(), 'tenants'));
if ($user->saveOrFail()) {
$user->tenants()->sync(collect($request->validated('tenants'))->pluck('id'));
return redirect()->route('bo.users.edit', $user)
->with('success', __('crud.messages.has_been_created', [
'model' => Str::ucfirst(__('models.classes.user'))
@ -108,7 +112,8 @@ class UserController extends Controller
*/
public function edit(User $user): \Illuminate\Contracts\View\View
{
return view('back::pages.users.edit', ['userModel' => $user]);
$tenants = Tenant::query()->orderBy('theme', 'ASC')->paginate(10);
return view('back::pages.users.edit', ['userModel' => $user, 'tenants' => $tenants]);
}
/**
@ -121,9 +126,10 @@ class UserController extends Controller
public function update(UpdateUserRequest $request, User $user): \Illuminate\Http\RedirectResponse
{
return DB::transaction(function () use ($request, $user) {
$user->fill($request->validated());
$user->fill(Arr::except($request->validated(), 'tenants'));
if ($user->saveOrFail()) {
$user->tenants()->sync(collect($request->validated('tenants'))->pluck('id'));
return redirect()->route('bo.users.edit', $user)
->with('success', __('crud.messages.has_been_updated', [
'model' => Str::ucfirst(__('models.classes.user'))

View file

@ -4,11 +4,12 @@ namespace App\Http\Controllers;
use App\Enums\Pagination\ItemsPerPaginationEnum;
use App\Enums\Theme\BootstrapThemeEnum;
use App\Http\Requests\Bo\PaginateModelsRequest;
use App\Http\Requests\Bo\ThemeRequest;
use App\Lib\Helpers\ToolboxHelper;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Schema;
@ -64,7 +65,7 @@ class Controller extends BaseController
*
* @param \Illuminate\Database\Eloquent\Builder $query The eloquent query builder.
* @param string $search The query string.
* @param callable $searchQuery The query string.
* @param callable|null $searchQuery The query string.
* @param string ...$fields Either a simple array or a string
* in case of a string the two fields
* would be concatenate to make the search.
@ -73,7 +74,7 @@ class Controller extends BaseController
protected function searchQuery(
Builder $query,
string $search,
callable $searchQuery = null,
callable|null $searchQuery = null,
string ...$fields
): \Illuminate\Database\Eloquent\Builder {
if (count($fields)) {
@ -230,7 +231,7 @@ class Controller extends BaseController
*/
protected function paginate(
Builder $query,
ItemsPerPaginationEnum $pagination = null
ItemsPerPaginationEnum|null $pagination = null
): \Illuminate\Contracts\Pagination\LengthAwarePaginator {
$currentRoutePath = Str::slug(request()->route()->getName());
$cacheKey = "pagination.{$currentRoutePath}";
@ -250,10 +251,10 @@ class Controller extends BaseController
/**
* Set the bootstrap theme or light (default).
*
* @param \Illuminate\Http\Request $request
* @param \App\Http\Requests\Bo\ThemeRequest $request
* @return \Illuminate\Http\RedirectResponse
*/
protected function setTheme(Request $request): \Illuminate\Http\RedirectResponse
protected function setTheme(ThemeRequest $request): \Illuminate\Http\RedirectResponse
{
$theme = ToolboxHelper::getValidatedEnum(
$request->theme ?: Cache::get('theme', BootstrapThemeEnum::light->value()),
@ -265,4 +266,20 @@ class Controller extends BaseController
}
return redirect()->back()->with('success', __('crud.messages.theme_updated'));
}
/**
* Get a paginate resource.
*
* @param \App\Http\Requests\Bo\PaginateModelsRequest $request
* @return \Illuminate\Http\JsonResponse
*/
public function jsonPaginateModels(PaginateModelsRequest $request): \Illuminate\Http\JsonResponse
{
/** @var \Illuminate\Database\Eloquent\Model $models */
$models = $request->targetModel::query()
->where($request->input('fieldName') ?? 'name', 'like', "%{$request->input('search')}%")
->orderBy($request->input('fieldName') ?? 'name', 'ASC')
->paginate($request->input('paginate') ?? 10);
return \response()->json($models);
}
}

View file

@ -19,7 +19,7 @@ class ForgotPasswordController extends Controller
* @var string
* @phpcs:disable Generic.Files.LineLength.TooLong
*/
private $message = 'front.messages.password_reset_email_sent';
private $message = 'Si votre compte existe vous devriez recevoir un message avec un lien pour réinitialiser votre mot de passe';
//phpcs:enable
/**

View file

@ -75,11 +75,11 @@ class LoginController extends Controller
if (count($countries) && !in_array($crmCustomer->country->value, $countries)) {
$this->logout($request);
Session::flash('info', trans('front.messages.game_not_available_in_country'));
Session::flash('info', trans('Ce jeu n\'est pas disponible dans votre pays'));
} else {
$user->last_connection = \now();
$user->saveOrFail();
Session::flash('info', trans('front.messages.login_success'));
Session::flash('info', trans('Vous êtes à présent connecté'));
}
}
@ -92,7 +92,7 @@ class LoginController extends Controller
*/
protected function loggedOut(Request $request): void
{
Session::flash('info', trans('front.messages.logout_success'));
Session::flash('info', trans('Vous êtes à présent déconnecté'));
}
/**

View file

@ -106,31 +106,27 @@ class RegisterController extends Controller
// * Enregistrement du Hashcode
/** @var \App\Models\Customer $customer */
$customer = Customer::withTrashed()->firstOrNew([
'email' => $data['email']
]);
$customer->fill(Arr::only($data, $customer->getFillable()));
$customer = new Customer(
Arr::only($data, (new \ReflectionClass(\App\Models\Customer::class))
->getProperty('fillable')->getDefaultValue())
);
$customer->hashcode = $crmCustomer->hashcode;
if ($customer->trashed()) {
$customer->restore();
}
$customer->email_verified_at = $crmCustomer->status ? now() : null;
// ! Last connection sera null, pour identifier la deuxième connexion,
// ! Pour accéder au partie du Klub.
if ($customer->saveOrFail()) {
// phpcs:ignore Generic.Files.LineLength.TooLong
Session::flash('success', trans('front.messages.account_created_email_confirmation_sent'));
Session::flash('success', trans('Votre compte à bien été crée, vous devez valider votre adresse email, un email de confirmation vous à été envoyé.'));
}
return $customer;
});
} catch (ApiErrorException $e) {
if ($e->getApiError()->equals(ApiError::customerExists)) {
if ($e->getApiError()->equals(ApiError::customerExists())) {
throw IlluminateValidationException::withMessages([
'error' => trans('front.messages.email_already_in_use')
'error' => trans('Un compte est déjà associé à cette adresse email.')
]);
}
if ($e->getApiError()->equals(ApiError::validationFailed)) {
if ($e->getApiError()->equals(ApiError::validationFailed())) {
throw IlluminateValidationException::withMessages([
'error' => $e->getMessage()
]);

View file

@ -69,7 +69,7 @@ class ResetPasswordController extends Controller
*/
protected function resetPassword(\App\Models\Customer $customer, string $password): void
{
/** @var \LDC\LDCCRM\CrmApiV4 */
/** @var \LDC\LDCCRM\CrmApiV2 */
$crm = app('crmAPI');
try {
@ -83,7 +83,7 @@ class ResetPasswordController extends Controller
} catch (\TypeError | CrmException | ApiErrorException $e) {
report($e);
throw ValidationException::withMessages([
'error' => trans('front.messages.unexpected_error_try_later')
'error' => trans('Une erreur est survenue, merci de réessayer ultérieurement.')
]);
} catch (ExceptionsValidationException $e) {
throw ValidationException::withMessages([

View file

@ -28,7 +28,7 @@ class VerificationController extends Controller
*/
public function __construct()
{
$this->middleware('auth:frontend')->except('verify');
$this->middleware('auth:frontend');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
@ -58,7 +58,7 @@ class VerificationController extends Controller
public function verify(Request $request): JsonResponse|RedirectResponse
{
/** @var \App\Models\Customer */
$user = Customer::findOrFail($request->route('id'));
$user = $request->user('frontend');
if (!hash_equals((string) $request->route('id'), (string) $user->getKey())) {
throw new AuthorizationException();
@ -101,7 +101,7 @@ class VerificationController extends Controller
{
// phpcs:enable
return redirect($this->redirectPath())->with('success', trans(
'front.messages.account_activated_can_play'
'Votre compte est bien activé, vous pouvez à présent participer au jeu'
));
}
@ -131,16 +131,16 @@ class VerificationController extends Controller
$customer->clearApiDataCache();
} catch (ValidationException) {
redirect($this->redirectPath())->with('error', trans(
'front.messages.unexpected_error_try_later'
'Une erreur est survenue'
))->throwResponse();
} catch (CrmException | ApiErrorException $e) {
if ($e->getApiError()->equals(ApiError::customerAlreadyActive)) {
if ($e->getApiError()->equals(ApiError::customerAlreadyActive())) {
// * Ignore this and continue, as it may be activated via another CRM service.
return;
} else {
report($e);
redirect($this->redirectPath())->with('error', trans(
'front.messages.unexpected_error_try_later'
'Une erreur est survenue'
))->throwResponse();
}
}

View file

@ -82,7 +82,7 @@ class CustomerController extends Controller
'opt_in',
]
), ['postcode' => $request->input('postal_code')]));
Session::flash('success', trans('front.messages.profile_updated_success'));
Session::flash('success', trans('Vos informations ont bien été mis à jour'));
return response()->redirectToRoute('fo.participate');
});
@ -92,7 +92,7 @@ class CustomerController extends Controller
'error' => $e->getMessage()
]);
} catch (ApiErrorException $e) {
if ($e->getApiError()->equals(ApiError::validationFailed)) {
if ($e->getApiError()->equals(ApiError::validationFailed())) {
throw IlluminateValidationException::withMessages([
'error' => $e->getMessage()
]);
@ -106,7 +106,7 @@ class CustomerController extends Controller
'error' => trans('Une erreur est survenue, veuillez réssayer plus tard')
]);
} //end try
return back()->withInput()->withErrors(trans('front.messages.unexpected_error_try_later'));
return back()->withInput()->withErrors(trans('Une erreur est survenue, merci de réessayer ultérieurement.'));
}
/**
@ -129,18 +129,17 @@ class CustomerController extends Controller
$mesBr = app('mesBrAPI');
$brBasket = $mesBr->getBasket($crmUser);
if (!empty($brBasket['coupons'])) {
$canPrint = (collect($brBasket['coupons'])->sum('quantity') - collect($brBasket['coupons'])->sum('printed'));
$canPrint = (
collect($brBasket['coupons'])->sum('quantity') - collect($brBasket['coupons'])->sum('printed')
);
}
$winningList = $customer->participations()
->with(['instantWin'])->where(function (Builder $q) {
$q->whereHas('instantWin');
->with(['instantWin'])->where(function (Builder $query) {
$query->whereHas('instantWin');
})->get();
return view('theme::pages.participation.winning-participations', [
'winningList' => $winningList,
'canPrint' => $canPrint ?? null
]);
return view('theme::pages.participation.winning-participations', compact('winningList', 'canPrint'));
}
/**
@ -155,21 +154,21 @@ class CustomerController extends Controller
{
try {
SingleOptin::setStatus($request->email, true);
return \response(trans("front.messages.newsletter_subscription_success"), 200);
return \response(trans("Votre inscription à la newsletter a été prise en compte"), 200);
} catch (ApiErrorException $e) {
// Il y a deja un customerInfo avec optin a true pour ce customer.
if ($e->getApiError()->equals(ApiError::singleOptinCustomerExists)) {
return trans('front.messages.newsletter_email_already_subscribed');
if ($e->getApiError()->equals(ApiError::singleOptinCustomerExists())) {
return trans('Vous êtes déjà inscrit avec cette adresse email');
}
if (app()->bound('sentry')) {
app('sentry')->captureException($e);
}
return \response(trans('front.messages.unexpected_error_try_later'), 404);
return \response(trans('Une erreur est survenue, merci de réessayer ultérieurement'), 404);
} catch (CrmException $e) {
if (app()->bound('sentry')) {
app('sentry')->captureException($e);
}
return \response(trans('front.messages.unexpected_error_try_later'), 404);
return \response(trans('Une erreur est survenue, merci de réessayer ultérieurement'), 404);
}
}
}

View file

@ -22,7 +22,7 @@ class DiscountController extends Controller
if ($pdf === null) {
\back()->withErrors([
'coupon' => trans('front.messages.pdf_download_error')
'coupon' => trans('Impossible de récupérer le fichier pdf')
])->throwResponse();
}

View file

@ -6,7 +6,6 @@ use App\Http\Controllers\Controller;
use App\Models\FaqQuestion;
use App\Models\FaqTheme;
use App\Models\Range;
use App\Models\Settings;
use Illuminate\Support\Facades\Gate;
class HomeController extends Controller
@ -19,7 +18,7 @@ class HomeController extends Controller
public function home(): \Illuminate\Contracts\View\View
{
if (!Gate::check('fo.gameEnabled')) {
\session()->flash('warning', trans('front.messages.game_missing_required_elements'));
\session()->flash('warning', trans('Il manque des éléments pour que le jeu soit jouable'));
}
return view('theme::pages.home');
}
@ -71,7 +70,7 @@ class HomeController extends Controller
public function teaser(): \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse
{
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
if (!$settings->should_display_teaser_page) {
return redirect()->route('fo.homepage');
}
@ -86,7 +85,7 @@ class HomeController extends Controller
public function endGame(): \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse
{
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
if (!$settings->should_display_end_page) {
return redirect()->route('fo.homepage');
}

View file

@ -10,7 +10,6 @@ use App\Mail\Won\PrizeWonAdminMail;
use App\Models\Customer;
use App\Models\InstantWin;
use App\Models\Participation;
use App\Models\Settings;
use App\Notifications\Customer\HasWonDiscount;
use App\Notifications\Customer\HasWonInstantWin;
use App\Repositories\Fo\CrmRepository;
@ -72,7 +71,7 @@ class ParticipateController extends Controller
->get()->sortBy('available_at')->first();
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
/** @var \App\Models\Customer */
$customer = auth('frontend')->user();
@ -87,7 +86,7 @@ class ParticipateController extends Controller
app('clientIp'),
$customer,
$code,
$product
$product,
);
// * Si l'utilisateur actuel à déjà gagné un gros lot, pas d'instant gagnant.
@ -113,7 +112,7 @@ class ParticipateController extends Controller
$this->setDiscountAsWon($customer, $discount);
// * Le joueur à remporté un coupon
$participation->discount_code = (string) $discount->web_coupon_identifiant;
$participation->discount_code = $discount->web_coupon_identifiant;
// * On enregistre la participation du joueur.
$participation->save();
@ -181,7 +180,7 @@ class ParticipateController extends Controller
// * Phase - 2 Mise à jour du coupon dans MesBr
try {
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
/** @var \LDC\MESBR\MesBr */
$mesBr = app('mesBrAPI');
@ -195,7 +194,7 @@ class ParticipateController extends Controller
*
* Id est necessaire pour update panier..
*/
$result = $mesBr->updateCustomer($crmUser->hashcode, $crmUser->email, $crmUser->country->label());
$result = $mesBr->updateCustomer($crmUser->hashcode, $crmUser->email, $crmUser->country->label);
if (optional($result)->status !== "OK") {
throw new \RuntimeException(
\sprintf(
@ -247,7 +246,7 @@ class ParticipateController extends Controller
} catch (\RuntimeException $e) {
report($e);
// * Retenter ?
back()->with('error', trans('front.messages.unexpected_error_try_later'))->throwResponse();
back()->with('error', trans('Une erreur est survenue, veuillez réssayer.'))->throwResponse();
} //end try
throw new \Error('Should not reach this point');
@ -293,13 +292,13 @@ class ParticipateController extends Controller
} catch (ValidationException) {
response()->redirectToRoute('fo.profil.verify')
->with('warning', trans(
'front.messages.profile_incomplete_cannot_play'
'Vous devez compléter des informations sur votre profil pour pouvoir participer.'
))->throwResponse();
} catch (\Exception $e) {
report($e);
// * Retenter ?
response()->redirectToRoute('fo.homepage')
->with('error', trans('front.messages.unexpected_error_try_later'))
->with('error', trans('Une erreur est survenue, veuillez réssayer.'))
->throwResponse();
} //end try
}

View file

@ -6,7 +6,6 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\Fo\SubmitWinningProofRequest;
use App\Mail\Won\WinningProofAdminMail;
use App\Models\Participation;
use App\Models\Settings;
use App\Notifications\Customer\HasSubmitedWinProof;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
@ -84,7 +83,7 @@ class WinningProofController extends Controller
]);
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
// * --- PHASE 1 Update Crm Customer ---
/** @var \App\Models\Customer */
@ -122,7 +121,7 @@ class WinningProofController extends Controller
]));
$participation->save();
$customer->notify(new HasSubmitedWinProof($request->input('firstname')));
$customer->notify(new HasSubmitedWinProof($request->input('firstname'), $settings));
// * Dispatch notification to mail list
Mail::to($settings->notification_emails)->send(new WinningProofAdminMail(
@ -139,11 +138,11 @@ class WinningProofController extends Controller
return response()->redirectToRoute('fo.homepage')
->with('success', trans(
'front.messages.winning_proof_submitted_will_be_contacted'
'Nous avons bien pris en compte vos preuve de gains, vous serez contactés prochainement'
));
});
} catch (ApiErrorException $e) {
if ($e->getApiError()->equals(ApiError::validationFailed)) {
if ($e->getApiError()->equals(ApiError::validationFailed())) {
throw IlluminateValidationException::withMessages([
'error' => $e->getMessage()
]);

View file

@ -29,7 +29,7 @@ class Kernel extends HttpKernel
* @var array<string, array<int, string>>
*/
protected $middlewareGroups = [
'web' => [
'back' => [
'htmlsanitize',
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
@ -38,12 +38,25 @@ class Kernel extends HttpKernel
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\SecureHeaders::class,
\App\Http\Middleware\CheckThemeVersion::class
],
'api' => [
\Illuminate\Routing\Middleware\ThrottleRequests::class . ':api',
'front' => [
\Stancl\Tenancy\Middleware\InitializeTenancyByDomain::class,
\Stancl\Tenancy\Middleware\PreventAccessFromCentralDomains::class,
\App\Http\Middleware\SetThemeNamespace::class,
'htmlsanitize',
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\SecureHeaders::class,
\App\Http\Middleware\CheckThemeVersion::class,
],
'saml' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
],
];
@ -55,17 +68,18 @@ class Kernel extends HttpKernel
* @var array<string, string>
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'check-game-status' => \App\Http\Middleware\CheckGameStatus::class,
'signed' => \App\Http\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'htmlsanitize' => \App\Http\Middleware\HtmlSanitizer::class,
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'check-game-status' => \App\Http\Middleware\CheckGameStatus::class,
'signed' => \App\Http\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'htmlsanitize' => \App\Http\Middleware\HtmlSanitizer::class,
'restrict_tenant_access' => \App\Http\Middleware\RestrictTenantAccess::class,
];
}

View file

@ -17,11 +17,11 @@ class Authenticate extends Middleware
protected function redirectTo(Request $request): ?string
{
$logins = [
'backend' => route('bo.login')
'backend' => route('bo.login'),
];
if (!$request->expectsJson()) {
// * Notify must login
Session::flash('warning', trans('Veuillez vous connecter pour continuer'));
Session::flash('warning', trans('auth.login'));
foreach ($request->route()->gatherMiddleware() as $middleware) {
if (\is_string($middleware) and strpos($middleware, 'auth:') !== false) {
@ -33,7 +33,6 @@ class Authenticate extends Middleware
}
return route('fo.login');
}
return null;
}
}

View file

@ -2,7 +2,6 @@
namespace App\Http\Middleware;
use App\Models\Settings;
use Illuminate\Http\Request;
class CheckGameStatus
@ -20,7 +19,7 @@ class CheckGameStatus
public function handle(Request $request, \Closure $next)
{
/** @var \App\Models\Settings $settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
return match (true) {
// * End page

View file

@ -8,7 +8,6 @@ use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
use Symfony\Component\HttpFoundation\Response;
class CheckThemeVersion
{
@ -18,9 +17,10 @@ class CheckThemeVersion
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request):(\Symfony\Component\HttpFoundation\Response) $next
* @return \Symfony\Component\HttpFoundation\Response
* @throws \Exception Folder or config file doesn't exist.
* @phpcs:disable Squiz.Commenting.FunctionComment.IncorrectTypeHint
*/
public function handle(Request $request, \Closure $next): Response
public function handle(Request $request, \Closure $next): \Symfony\Component\HttpFoundation\Response
{
// phpcs:enable
@ -30,7 +30,7 @@ class CheckThemeVersion
});
// * Assert theme version does not diverge more than minor
$appVer = Str::of($appInfos->version)->explode('.');
$themeVer = Str::of(config('theme.version'))->explode('.');
$themeVer = Str::of(themeConfig()['version'])->explode('.');
if (
// * Major check
Arr::get($appVer, 0) !== Arr::get($themeVer, 0) or
@ -41,7 +41,7 @@ class CheckThemeVersion
'Ce thème n\'a semble t-il pas été vérifié pour cette version du moteur'
));
}
}
} //end if
return $next($request);
}

View file

@ -3,25 +3,26 @@
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
* @param string|null ...$guards
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
* @param string|null ...$guards
* @return \Symfony\Component\HttpFoundation\Response
* @throws \RuntimeException If guard is unhandled.
* @phpcs:disable Squiz.Commenting.FunctionComment.IncorrectTypeHint
*/
public function handle(Request $request, \Closure $next, ...$guards): Response
{
public function handle(
Request $request,
\Closure $next,
string|null ...$guards
): \Symfony\Component\HttpFoundation\Response {
// phpcs:enable phpcs:disable
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (auth($guard)->check()) {
switch ($guard) {
@ -37,7 +38,6 @@ class RedirectIfAuthenticated
}
}
}
return $next($request);
}
}

View file

@ -0,0 +1,53 @@
<?php
namespace App\Http\Middleware;
use App\Enums\Users\RoleEnum;
use App\Models\Tenant;
use Closure;
use Illuminate\Http\Request;
class RestrictTenantAccess
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
* @return \Symfony\Component\HttpFoundation\Response
* @phpcs:disable Squiz.Commenting.FunctionComment.IncorrectTypeHint
*/
public function handle(Request $request, Closure $next): \Symfony\Component\HttpFoundation\Response
{
/** @var \App\Models\User|null $user */
$user = \auth('backend')->user();
if ($user) {
if (
!$request->routeIs('bo.dashboard') &&
!$request->routeIs('bo.users.*') &&
!$request->routeIs('bo.tenants.*') &&
$request->tenant &&
!\in_array($request->tenant, Tenant::get()->pluck('id')->toArray())
) {
// @phpstan-ignore argument.type
abort('404');
}
$tenantKey = Tenant::query()->value((new Tenant())->getKeyName());
if (
(Tenant::count() && $request->routeIs('bo.tenants.*') && $user->role->equals(RoleEnum::conceptor)) ||
(Tenant::count() && $request->routeIs('bo.users.*') && $user->role->equals(RoleEnum::conceptor))
) {
tenancy()->initialize($tenantKey);
return $next($request);
}
if (
Tenant::count() && ($request->routeIs('bo.dashboard')
|| $request->routeIs('bo.users.edit', $user->getKey()))
) {
tenancy()->initialize(($user->tenants->count()) ? $user->tenants->first() : $tenantKey);
return $next($request);
}
} //end if
return $next($request);
}
}

View file

@ -7,76 +7,93 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Vite;
use Symfony\Component\HttpFoundation\Response;
class SecureHeaders
{
/**
* Enumerate headers which you do not want in your application's responses.
* Great starting point would be to go check out @Scott_Helme's:
* https://securityheaders.com/
*
* @var array
*/
private $unwantedHeaderList = [
'X-Powered-By',
'Server',
];
public function handle(Request $request, Closure $next): Response
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
* @return \Symfony\Component\HttpFoundation\Response
* @phpcs:disable Squiz.Commenting.FunctionComment.IncorrectTypeHint
*/
public function handle(Request $request, Closure $next): \Symfony\Component\HttpFoundation\Response
{
// phpcs:enable
// * For Vite DEV
$host = \parse_url((string) \config('app.url'), \PHP_URL_HOST);
$viteDevOrigin = config('app.debug') && \is_string($host) && $host !== '' ? "https://{$host}:4443" : null;
$viteDevSocket = config('app.debug') && \is_string($host) && $host !== '' ? "wss://{$host}:4443" : null;
$host = \parse_url(\config('app.url'), \PHP_URL_HOST);
View::share('nonce', $nonce = Vite::useCspNonce());
// * For VueJS dev tool to execute
$jsDev = config('app.debug') ? "'unsafe-eval' 'unsafe-inline'" : "'nonce-{$nonce}' 'strict-dynamic'";
$scheme = config('app.env') === 'local' ? 'http' : 'https';
$reportUri = Route::has('cspReportUri') ? \sprintf(' report-uri %s ;', \parse_url(route('cspReportUri'), \PHP_URL_PATH)) : '';
$reportUri = Route::has('cspReportUri') ?
\sprintf(' report-uri %s ;', \parse_url(route('cspReportUri'), \PHP_URL_PATH)) : '';
$this->removeUnwantedHeaders($this->unwantedHeaderList);
$response = $next($request);
$response->headers->set('Referrer-Policy', 'no-referrer-when-downgrade');
$response->headers->set('X-Content-Type-Options', 'nosniff');
$response->headers->set('X-XSS-Protection', '1; mode=block');
$response->headers->set('X-Frame-Options', 'SAMEORIGIN');
$response->headers->set('Strict-Transport-Security', 'max-age=31536000; includeSubDomains;');
// Utilisation de array_filter pour ne pas inclure les valeurs null en production
$cspPolicies = [
"default-src 'none';",
"manifest-src 'self';",
"connect-src 'self' blob: " . implode(' ', array_filter([
$viteDevSocket,
$viteDevOrigin,
// * CKEDITOR Specific https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/csp.html
"connect-src 'self' blob: " . implode(' ', [
// * VITE DEV
config('app.debug') ? "wss://{$host}:4443" : '',
config('app.debug') ? "https://{$host}:4443" : '',
'https://yl.s-web.fr'
])) . ';',
"img-src 'self' data: blob: " . implode(' ', array_filter([
$viteDevOrigin,
])) . ';',
"object-src 'self';",
]) . ';',
"img-src 'self' data: blob: " . implode(' ', [
// * VITE DEV
config('app.debug') ? "https://{$host}:4443" : '',
]) . ';',
"object-src 'self' " . implode(' ', []) . ';',
"frame-src 'self' " . implode(' ', [
'https://www.google.com/recaptcha/',
'https://recaptcha.google.com/recaptcha/',
'https://www.google.com/maps/'
]) . ';',
"font-src 'self' data: " . implode(' ', array_filter([
$viteDevOrigin,
'https://fonts.gstatic.com' // <-- Point-virgule retiré ici
])) . ';',
"style-src 'self' 'unsafe-inline' " . implode(' ', array_filter([
"font-src 'self' data: " . \implode(' ', [
// * VITE DEV
config('app.debug') ? "https://{$host}:4443" : '',
'https://fonts.gstatic.com;'
]) . ';',
// ! Using CKEditor will must have unsafe-inline style
// phpcs:ignore Generic.Files.LineLength.TooLong
"style-src 'self' 'unsafe-inline' " . \implode(' ', [
'https://cdnjs.cloudflare.com',
// * File Manager
'https://fonts.googleapis.com',
'https://cdn.jsdelivr.net',
'https://use.fontawesome.com',
$viteDevOrigin,
])) . ';',
"script-src 'self' {$jsDev} " . implode(' ', array_filter([
'https:',
'blob:',
'https://fonts.googleapis.com',
// * VITE DEV
config('app.debug') ? "https://{$host}:4443" : '',
]) . ';',
// ! If you dont use ckeditor use this
// "style-src 'self' 'nonce-$nonce';",
// phpcs:ignore Generic.Files.LineLength.TooLong
"script-src 'self' {$jsDev} " . \implode(' ', [
'https: blob:',
'https://www.googletagmanager.com',
'https://cdnjs.cloudflare.com',
"$scheme://www.google-analytics.com",
$viteDevOrigin,
])) . ';'
// * VITE DEV
config('app.debug') ? "https://{$host}:4443" : '',
]) . ';'
];
$response->headers->set(
@ -84,10 +101,15 @@ class SecureHeaders
implode(' ', $cspPolicies) . $reportUri
);
$response->headers->set('Feature-Policy', 'fullscreen \'self\';');
return $response;
}
/**
* Remove unwanted headers
*
* @param array $headerList
* @return void
*/
private function removeUnwantedHeaders(array $headerList): void
{
foreach ($headerList as $header) {

View file

@ -0,0 +1,27 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View;
class SetThemeNamespace
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return \Symfony\Component\HttpFoundation\Response
*/
public function handle(Request $request, Closure $next): \Symfony\Component\HttpFoundation\Response
{
/** @var string $themeName */
$themeName = \tenant()->theme;
View::addNamespace('theme', resource_path("theme/$themeName/views"));
View::share('themeResources', "resources/theme/$themeName");
config()->set('image-resizer.templates', themeConfig()['resizes'] ?? []);
return $next($request);
}
}

View file

@ -0,0 +1,52 @@
<?php
namespace App\Http\Requests\Bo;
use Illuminate\Foundation\Http\FormRequest;
class PaginateModelsRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string,\Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'targetModel' => [
'required',
'string',
'starts_with:App\\Models\\',
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
function ($attribute, $value, $fail) {
if (!class_exists($value)) {
$fail("Le modèle spécifié n'existe pas.");
return;
}
if (!is_subclass_of($value, \Illuminate\Database\Eloquent\Model::class)) {
$fail("Le modèle spécifié n'est pas un modèle Eloquent.");
}
},
],
'page' => 'required|integer|min:1',
'paginate' => 'required|integer|min:1',
'fieldName' => 'required|string|alpha_dash|max:255',
];
}
/**
* Get custom attributes for validator errors.
*
* @return array<string,\Illuminate\Contracts\Translation\Translator|string|array<mixed>|null>
*/
public function attributes(): array
{
return [
'targetModel' => trans('validation.custom.targetModel'),
'page' => trans('validation.custom.page'),
'paginate' => trans('validation.custom.paginate'),
'fieldName' => trans('validation.custom.fieldName'),
];
}
}

View file

@ -50,10 +50,10 @@ class StorePrizeRequest extends FormRequest
'quantity' => 'required|numeric|min:1',
'pdf_winning_proof' => 'nullable|file|mimes:pdf',
];
$min_width = config('theme.models.prizes.picture_min_width');
$min_height = config('theme.models.prizes.picture_min_height');
$max_width = config('theme.models.prizes.picture_max_width');
$max_height = config('theme.models.prizes.picture_max_height');
$min_width = themeConfig()['models']['prizes']['picture_min_width'];
$min_height = themeConfig()['models']['prizes']['picture_min_height'];
$max_width = themeConfig()['models']['prizes']['picture_max_width'];
$max_height = themeConfig()['models']['prizes']['picture_max_height'];
return \array_merge(
$rules,
$this->pictureRules('picture', $min_width, $min_height, $max_width, $max_height),
@ -68,14 +68,14 @@ class StorePrizeRequest extends FormRequest
public function attributes(): array
{
return [
'label' => trans('validation.custom.label'),
'picture' => trans('validation.custom.picture'),
'picture_alt' => trans('validation.custom.picture_alt'),
'picture_title' => trans('validation.custom.picture_title'),
'arg_title' => trans('validation.attributes.title'),
'arg_subtitle' => trans('validation.custom.subtitle'),
'arg_content' => trans('validation.attributes.content'),
'quantity' => trans('validation.custom.quantity'),
'label' => trans('validation.custom.label'),
'picture' => trans('validation.custom.picture'),
'picture_alt' => trans('validation.custom.picture_alt'),
'picture_title' => trans('validation.custom.picture_title'),
'arg_title' => trans('validation.attributes.title'),
'arg_subtitle' => trans('validation.custom.subtitle'),
'arg_content' => trans('validation.attributes.content'),
'quantity' => trans('validation.custom.quantity'),
'pdf_winning_proof' => trans('validation.custom.pdf_winning_proof'),
];
}

View file

@ -17,7 +17,7 @@ class StoreProductRequest extends FormRequest
*
* @return boolean
*/
public function authorize()
public function authorize(): bool
{
return Gate::check('create', Product::class);
}
@ -27,7 +27,7 @@ class StoreProductRequest extends FormRequest
*
* @return void
*/
protected function prepareForValidation()
protected function prepareForValidation(): void
{
$this->mergePicture('picture');
}
@ -37,11 +37,11 @@ class StoreProductRequest extends FormRequest
*
* @return array
*/
public function rules()
public function rules(): array
{
$rules = [
'name' => 'required|string|min:3|max:255',
'ean_code' => [
$rules = [
'name' => 'required|string|min:3|max:255',
'ean_code' => [
'required',
'unique:products,ean_code',
'regex:/^[0-9]{7}$|^[0-9]{8}$|^[0-9]{13}$/',
@ -50,11 +50,13 @@ class StoreProductRequest extends FormRequest
'picture_title' => 'nullable|required_with:picture|string|between:3,255',
'range_id' => 'exists:ranges,id'
];
$width = config('theme.models.products.picture_max_width');
$height = config('theme.models.products.picture_max_height');
$min_width = themeConfig()['models']['products']['picture_min_width'];
$min_height = themeConfig()['models']['products']['picture_min_height'];
$max_width = themeConfig()['models']['products']['picture_max_width'];
$max_height = themeConfig()['models']['products']['picture_max_height'];
return \array_merge(
$rules,
$this->pictureRules('picture', $width, $height, $width, $height, true),
$this->pictureRules('picture', $min_width, $min_height, $max_width, $max_height, true),
);
}
@ -66,24 +68,24 @@ class StoreProductRequest extends FormRequest
public function attributes(): array
{
return [
'name' => trans('validation.attributes.name'),
'name' => trans('validation.attributes.name'),
'picture_title' => trans(':field1 :inter1:field2 :inter2:model', [
'field1' => Str::ucfirst(trans('validation.custom.attribute_title')),
'inter1' => trans('validation.custom.of_the.vowel'),
'field2' => trans('validation.attributes.image'),
'inter2' => trans('validation.custom.of_the.male'),
'model' => trans('models.classes.product'),
'model' => trans('models.classes.product'),
]),
'picture_alt' => trans(':field1 :inter1:field2 :inter2:model', [
'picture_alt' => trans(':field1 :inter1:field2 :inter2:model', [
'field1' => Str::ucfirst(trans('validation.custom.attribute_alt')),
'inter1' => trans('validation.custom.of_the.vowel'),
'field2' => trans('validation.attributes.image'),
'inter2' => trans('validation.custom.of_the.male'),
'model' => trans('models.classes.product'),
'model' => trans('models.classes.product'),
]),
'picture' => trans('validation.attributes.image'),
'ean_code' => trans('validation.custom.ean_code'),
'range_id' => trans('models.classes.range'),
'picture' => trans('validation.attributes.image'),
'ean_code' => trans('validation.custom.ean_code'),
'range_id' => trans('models.classes.range'),
];
}
}

View file

@ -12,7 +12,7 @@ class UpdateProductRequest extends StoreProductRequest
*
* @return boolean
*/
public function authorize()
public function authorize(): bool
{
return Gate::check('update', $this->route('product'));
}
@ -22,7 +22,7 @@ class UpdateProductRequest extends StoreProductRequest
*
* @return array
*/
public function rules()
public function rules(): array
{
/** @var \App\Models\Product */
$productModel = $this->route('product');

View file

@ -38,16 +38,18 @@ class StoreRangeRequest extends FormRequest
*/
public function rules()
{
$rules = [
$rules = [
'name' => 'required|string|min:2|max:255',
'picture_alt' => 'nullable|required_with:picture|string|between:3,255',
'picture_title' => 'nullable|required_with:picture|string|between:3,255',
];
$width = config('theme.models.ranges.picture_max_width');
$height = config('theme.models.ranges.picture_max_height');
$min_width = themeConfig()['models']['ranges']['picture_min_width'];
$min_height = themeConfig()['models']['ranges']['picture_min_height'];
$max_width = themeConfig()['models']['ranges']['picture_max_width'];
$max_height = themeConfig()['models']['ranges']['picture_max_height'];
return \array_merge(
$rules,
$this->pictureRules('picture', $width, $height, $width, $height, false),
$this->pictureRules('picture', $min_width, $min_height, $max_width, $max_height, false),
);
}
}

View file

@ -4,6 +4,7 @@ namespace App\Http\Requests\Bo\Settings;
use App\Enums\CodeType;
use App\Lib\Helpers\ToolboxHelper;
use App\Models\Settings;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Gate;
@ -20,7 +21,8 @@ class UpdateSettingsRequest extends FormRequest
*/
public function authorize(): bool
{
return Gate::check('update', $this->route('settings'));
$settingsModel = Settings::query()->where('tenant_id', tenant('id'))->firstOrFail();
return Gate::check('update', $settingsModel);
}
/**
@ -82,7 +84,9 @@ class UpdateSettingsRequest extends FormRequest
'discounts_site' => 'nullable|required_if:discounts_activated,true,1|string|min:3|max:255',
'discounts_campaign' => 'nullable|required_if:discounts_activated,true,1|string|min:3|max:255',
'web_coupons' => [
'present', 'array', function ($attribute, $value, $fail) {
'present',
'array',
function ($attribute, $value, $fail) {
if ($this->post('discounts_activated') and !collect($value)->filter()->count()) {
$fail(trans('validation.min.array', [
'attribute' => Arr::get($this->attributes(), $attribute),
@ -103,7 +107,8 @@ class UpdateSettingsRequest extends FormRequest
'web_coupons.*.face_value' => 'required|numeric|min:10|max:300',
'web_coupons.*.valid_on' => 'required|string|min:3|max:255',
'web_coupons.*.picture' => [
'required', function (string $attribute, $value, callable $fail) {
'required',
function (string $attribute, $value, callable $fail) {
ToolboxHelper::validatePicture(
$attribute,
$value,

View file

@ -0,0 +1,49 @@
<?php
namespace App\Http\Requests\Bo\Tenants;
use App\Models\Tenant;
use App\Traits\Requests\HasPicture;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Gate;
class StoreTenantRequest extends FormRequest
{
use HasPicture;
/**
* Determine if the user is authorized to make this request.
*
* @return boolean
*/
public function authorize(): bool
{
return Gate::check('create', Tenant::class);
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, string>
*/
public function rules(): array
{
return [
'theme' => 'required|string|min:3|max:255|unique:tenants,theme',
'domain' => 'required|string|min:3|max:255|unique:domains,domain',
];
}
/**
* Get custom attributes for validator errors.
*
* @return array<string, string>
*/
public function attributes(): array
{
return [
'theme' => trans('validation.custom.theme'),
'domain' => trans('validation.custom.domain'),
];
}
}

View file

@ -0,0 +1,46 @@
<?php
namespace App\Http\Requests\Bo\Tenants;
use Illuminate\Support\Facades\Gate;
use Illuminate\Validation\Rule;
class UpdateTenantRequest extends StoreTenantRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return boolean
*/
public function authorize(): bool
{
return Gate::check('update', $this->route('tenant'));
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, string>
*/
public function rules(): array
{
/** @var \App\Models\Tenant */
$tenantModel = $this->route('tenant');
return array_merge(parent::rules(), [
'theme' => [
'required',
'string',
'min:3',
'max:255',
Rule::unique('tenants', 'theme')->ignore($tenantModel->getRouteKey())
],
'domain' => [
'required',
'string',
'min:3',
'max:255',
Rule::unique('domains', 'domain')->ignore($tenantModel->domains->first()->getKey())
],
]);
}
}

View file

@ -0,0 +1,34 @@
<?php
namespace App\Http\Requests\Bo;
use App\Enums\Theme\BootstrapThemeEnum;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rules\Enum;
class ThemeRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string,\Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'theme' => ['required', new Enum(BootstrapThemeEnum::class)],
];
}
/**
* Get custom attributes for validator errors.
*
* @return array<string,\Illuminate\Contracts\Translation\Translator|string|array<mixed>|null>
*/
public function attributes(): array
{
return [
'theme' => trans('validation.custom.theme'),
];
}
}

View file

@ -6,8 +6,9 @@ use App\Enums\Users\RoleEnum;
use App\Models\User;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Str;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Enum;
use Illuminate\Validation\Rules\Password;
class StoreUserRequest extends FormRequest
{
@ -16,7 +17,7 @@ class StoreUserRequest extends FormRequest
*
* @return boolean
*/
public function authorize()
public function authorize(): bool
{
return Gate::check('create', User::class);
}
@ -26,10 +27,11 @@ class StoreUserRequest extends FormRequest
*
* @return void
*/
protected function prepareForValidation()
protected function prepareForValidation(): void
{
$this->merge([
'published' => $this->boolean('published')
'published' => $this->boolean('published'),
'tenants' => ($this->input('role') == RoleEnum::conceptor->value()) ? null : $this->input('tenants'),
]);
}
@ -40,20 +42,20 @@ class StoreUserRequest extends FormRequest
*/
public function rules(): array
{
$isAdmin = $this->input('role') == RoleEnum::admin->value();
return [
'first_name' => 'required|string|min:3|max:255',
'last_name' => 'required|string|min:3|max:255',
'email' => 'required|email:rfc,strict,dns,spoof,filter|unique:users,email',
'password' => [
'required', 'required_with:password_confirmation', 'confirmed', 'max:255', Password::min(8)
->letters()
->mixedCase()
->numbers()
->symbols()
->uncompromised()
'first_name' => 'required|string|min:3|max:255',
'last_name' => 'required|string|min:3|max:255',
'email' => [
'required',
'email:rfc,strict,dns,spoof,filter',
Rule::unique('users', 'email')
],
'role' => ['required', new Enum(RoleEnum::class)],
'published' => 'required|boolean',
'role' => ['required', new Enum(RoleEnum::class)],
'tenants' => $isAdmin ? 'required|array' : 'nullable|array',
'tenants.*' => $isAdmin ? 'required|array' : 'nullable|array',
'tenants.*.id' => $isAdmin ? 'required|exists:tenants,id' : 'nullable|exists:tenants,id',
'published' => 'required|boolean',
];
}
@ -66,11 +68,11 @@ class StoreUserRequest extends FormRequest
{
return [
'first_name' => trans('validation.attributes.first_name'),
'last_name' => trans('validation.attributes.last_name'),
'email' => trans('validation.attributes.email'),
'password' => trans('validation.attributes.password'),
'role' => trans('validation.attributes.role'),
'published' => trans('validation.custom.publication')
'last_name' => trans('validation.attributes.last_name'),
'email' => trans('validation.attributes.email'),
'role' => trans('validation.attributes.role'),
'tenants' => Str::of(trans('models.classes.tenant'))->plural(),
'published' => trans('validation.attributes.published'),
];
}
}

View file

@ -2,9 +2,9 @@
namespace App\Http\Requests\Bo\Users;
use App\Enums\Users\RoleEnum;
use Illuminate\Support\Facades\Gate;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Password;
use Illuminate\Validation\Rules\Enum;
class UpdateUserRequest extends StoreUserRequest
{
@ -13,31 +13,11 @@ class UpdateUserRequest extends StoreUserRequest
*
* @return boolean
*/
public function authorize()
public function authorize(): bool
{
return Gate::check('update', $this->route('user'));
}
/**
* Prepare the data for validation.
*
* @return void
*/
protected function prepareForValidation()
{
/** @var \App\Models\User */
$userModel = $this->route('user');
$this->merge([
'published' => $this->boolean('published'),
'password' => $this->input(
'password',
) ?? $userModel->password,
'password_confirmation' => $this->input(
'password_confirmation'
) ?? $userModel->password
]);
}
/**
* Get the validation rules that apply to the request.
*
@ -45,22 +25,18 @@ class UpdateUserRequest extends StoreUserRequest
*/
public function rules(): array
{
/** @var \App\Models\User */
$userModel = $this->route('user');
return array_merge(parent::rules(), [
'email' => [
/** @var \App\Models\User $userModel */
$userModel = request()->route()->parameter('user');
$rules = [
'email' => [
'required',
'string',
'unique:users,email,' . $userModel->getKey(),
'email:rfc,strict,dns,spoof,filter',
Rule::unique('users', 'email')->ignore($userModel->getRouteKey())
'max:255'
],
'password' => [
'required', 'required_with:password_confirmation', 'confirmed', 'max:255', Password::min(8)
->letters()
->mixedCase()
->numbers()
->symbols()
->uncompromised()
],
]);
'role' => ['sometimes', new Enum(RoleEnum::class)],
];
return \array_merge(parent::rules(), $rules);
}
}

View file

@ -2,15 +2,14 @@
namespace App\Http\Requests\Fo\Customers;
use App\Models\Settings;
use App\Repositories\Fo\CrmRepository;
use App\Rules\IsAdult;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Enum;
use Illuminate\Validation\Rules\Password;
use Kwaadpepper\Enum\Rules\EnumIsValidRule;
use LDC\LDCCRM\Enums\Country;
use LDC\LDCCRM\Models\Customer as CrmCustomer;
@ -48,7 +47,7 @@ class CreateAccountRequest extends FormRequest
public function rules(): array
{
/** @var \App\Models\Settings $settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
/** @var \App\Models\Customer|null */
$authUser = auth('frontend')->user();
@ -58,18 +57,14 @@ class CreateAccountRequest extends FormRequest
$this->integer('country') : ($authUser ?
(new CrmRepository())->fetchCrmCustomer($authUser)->country->value : 0);
$countryRules = match ($countryCode) {
Country::belgium->value => [
Country::belgium()->value => [
'phone' => 'phone:BE',
'postal_code' => 'postal_code:BE',
],
Country::luxembourg->value => [
Country::luxembourg()->value => [
'phone' => 'phone:LU',
'postal_code' => 'postal_code:LU',
],
Country::germany->value => [
'phone' => 'phone:DE',
'postal_code' => 'postal_code:DE',
],
default => [
'phone' => 'phone:FR',
'postal_code' => 'postal_code:FR',
@ -96,8 +91,8 @@ class CreateAccountRequest extends FormRequest
'birth_date' => ['required', new IsAdult(trans('Vous devez être majeur pour vous inscrire.'))],
'country' => [
'required',
new Enum(Country::class),
Rule::in($settings->getAuthorizedCountries()->pluck('value')->toArray()),
new EnumIsValidRule(Country::class),
Rule::in($settings->getAuthorizedCountries()),
],
'email' => [
'required',
@ -108,16 +103,9 @@ class CreateAccountRequest extends FormRequest
function (string $attribute, $value, \Closure $fail) {
if (CrmCustomer::findWithEmail(\strval($value))) {
$fail('Un compte existe déjà avec cette adresse.');
} else {
// ! Si le compte n'existe pas en CRM mais existe en local.
// ! On le soft-delete pour permettre l'inscription et la restauration propre.
$localCustomer = \App\Models\Customer::where('email', \strval($value))->first();
if ($localCustomer) {
$localCustomer->delete();
}
}
},
Rule::unique('customers', 'email')->withoutTrashed(),
'unique:customers,email',
],
'password' => [
'required',
@ -175,33 +163,24 @@ class CreateAccountRequest extends FormRequest
];
$messages = match ($this->integer('country')) {
Country::belgium->value => array_merge(
Country::belgium()->value => array_merge(
$messages,
[
'postal_code' => trans('validation.postal_code', [
'countries' => Country::belgium->label(),
'countries' => Country::belgium()->label,
'examples' => 1000
]),
]
),
Country::luxembourg->value => array_merge(
Country::luxembourg()->value => array_merge(
$messages,
[
'postal_code' => trans('validation.postal_code', [
'countries' => Country::luxembourg->label(),
'countries' => Country::luxembourg()->label,
'examples' => 1111
]),
]
),
Country::germany->value => array_merge(
$messages,
[
'postal_code' => trans('validation.postal_code', [
'countries' => Country::germany->label(),
'examples' => 10115
]),
]
),
default => array_merge(
$messages,
[
@ -209,16 +188,15 @@ class CreateAccountRequest extends FormRequest
'countries' => \implode(', ', Arr::except(
Country::getValidCountriesLabel(),
[
array_search(Country::belgium->label(), Country::getValidCountriesLabel()),
array_search(Country::luxembourg->label(), Country::getValidCountriesLabel()),
array_search(Country::germany->label(), Country::getValidCountriesLabel()),
array_search(Country::belgium()->label, Country::getValidCountriesLabel()),
array_search(Country::luxembourg()->label, Country::getValidCountriesLabel()),
]
)),
'examples' => 72000
]),
]
),
}; //end match
}; // end match
return $messages;
}

View file

@ -11,7 +11,7 @@ class SingleOptinRequest extends FormRequest
*
* @return boolean
*/
public function authorize()
public function authorize(): bool
{
return true;
}
@ -21,7 +21,7 @@ class SingleOptinRequest extends FormRequest
*
* @return array
*/
public function rules()
public function rules(): array
{
return [
'email' => 'required|email:rfc,dns,spoof',

View file

@ -6,7 +6,6 @@ use App\Enums\CodeType;
use App\Models\Code;
use App\Models\Participation;
use App\Models\Product;
use App\Models\Settings;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Http\FormRequest;
@ -42,7 +41,7 @@ class ParticipateRequest extends FormRequest
protected function prepareForValidation(): void
{
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
if ($settings->code_type->equals(CodeType::unique) || $settings->code_type->equals(CodeType::both)) {
try {
$this->merge([
@ -94,10 +93,10 @@ class ParticipateRequest extends FormRequest
public function rules(): array
{
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
$rules = [
'game_rules' => 'required|boolean|accepted',
'game_rules' => 'required|boolean|accepted',
];
// ? Does the game use unique Codes ?
@ -108,7 +107,7 @@ class ParticipateRequest extends FormRequest
function (string $attribute, $value, callable $fail) {
// ? Le Code unique est resolved ?
if ($value === false or !\is_object($value) or \get_class($value) !== Code::class) {
$fail(trans('front.messages.unique_code_invalid'));
$fail(trans('Code unique incorrect, veuillez réessayer.'));
return;
}
@ -118,11 +117,11 @@ class ParticipateRequest extends FormRequest
/** @var \App\Models\Code $value */
// * Check si l'utilisateur n'a pas déjà utilisé ce code.
$query = Participation::query()
->whereHas('code', fn (Builder $q) => $q->where('id', $value->id))
->whereHas('customer', fn (Builder $q) => $q->where('id', $customer->id));
->whereHas('code', fn(Builder $q) => $q->where('id', $value->id))
->whereHas('customer', fn(Builder $q) => $q->where('id', $customer->id));
// ! Une seule participation avec un code donné par joueur
if ($query->exists()) {
$fail(trans('front.messages.unique_code_already_used'));
$fail(trans('Vous avez déjà utilisé ce code unique.'));
return;
}
@ -130,7 +129,7 @@ class ParticipateRequest extends FormRequest
// ? Le code unique à été trop utilisé ?
if ($value->has_been_used_too_many_times) {
// * Ne pas laisser d'indices, message générique
$fail(trans('front.messages.unique_code_invalid'));
$fail(trans('Code unique incorrect, veuillez réessayer.'));
return;
}
}
@ -150,7 +149,7 @@ class ParticipateRequest extends FormRequest
empty($product) or !is_object($product) or
!($product instanceof Model) or !$product->exists
) {
$fail(trans('front.messages.barcode_invalid'));
$fail(trans('Le code barre entré est incorrect, veuillez réessayer.'));
}
}
]]);

View file

@ -3,10 +3,8 @@
namespace App\Http\Requests\Fo;
use App\Http\Requests\Fo\Customers\CreateAccountRequest;
use App\Repositories\Fo\CrmRepository;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Gate;
use LDC\LDCCRM\Enums\Country;
class SubmitWinningProofRequest extends CreateAccountRequest
{
@ -17,7 +15,7 @@ class SubmitWinningProofRequest extends CreateAccountRequest
*/
public function authorize(): bool
{
return auth('frontend')->check() &&
return auth('frontend')->check() and
Gate::check('submitProof', $this->route('participation'));
}
@ -28,55 +26,24 @@ class SubmitWinningProofRequest extends CreateAccountRequest
*/
public function rules(): array
{
$authUser = auth('frontend')->user();
$countryCode = $this->integer('country') != 0 ?
$this->integer('country') : ($authUser ?
(new CrmRepository())->fetchCrmCustomer($authUser)->country->value : 0);
$countryRules = match ($countryCode) {
Country::belgium->value => ['phone' => 'phone:BE'],
Country::luxembourg->value => ['phone' => 'phone:LU'],
Country::germany->value => ['phone' => 'phone:DE'],
default => ['phone' => 'phone:FR'],
};
return \array_merge(
Arr::only(
parent::rules(),
[
'lastname',
'firstname',
'address',
'address2',
'postal_code',
'city',
'country',
]
),
return \array_merge(Arr::only(
parent::rules(),
[
'phone' => [
'required',
'max:255',
$countryRules['phone'],
],
],
$this->proofRules()
);
}
/**
* Rules of winning proof.
*
* @return array<string, string>
*/
private function proofRules(): array
{
// * Min 10 KB, Max 2MB
$fileRules = 'required|mimes:jpeg,jpg,png,pdf|min:10|max:2048';
return collect(['sticker', 'ticket', 'barcode'])
->filter(fn (string $proof) => config("proofs.$proof"))
->mapWithKeys(fn (string $proof) => [$proof => $fileRules])
->all();
'lastname',
'firstname',
'address',
'address2',
'postal_code',
'city',
'country'
]
), [
'phone' => 'required|phone:FR',
// * Min 10 KB, Max 2MB
'sticker' => 'required|mimes:jpeg,jpg,png,pdf|min:10|max:2048',
'ticket' => 'required|mimes:jpeg,jpg,png,pdf|min:10|max:2048',
'barcode' => 'required|mimes:jpeg,jpg,png,pdf|min:10|max:2048',
]);
}
/**
@ -90,7 +57,7 @@ class SubmitWinningProofRequest extends CreateAccountRequest
parent::attributes(),
[
'sticker' => trans('validation.custom.sticker'),
'ticket' => trans('validation.custom.ticket'),
'ticket' => trans('validation.custom.ticket'),
'barcode' => trans('validation.custom.barcode'),
]
);

View file

@ -5,6 +5,7 @@ namespace App\Jobs;
use App\Mail\Jobs\CodeExportSucceed;
use App\Mail\Jobs\JobFailed;
use App\Models\Code;
use App\Models\Settings;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
@ -38,19 +39,29 @@ class ProcessExportCodesUniques implements ShouldQueue, ShouldBeUnique
*/
protected $exportFileName = null;
/**
* Setting of the current model.
*
* @var \App\Models\Settings|null $settingModel
*/
protected $settingModel = null;
/**
* Create a new job instance.
*
* @param integer $nbCodeFic Nombre de codes par fichiers.
* @param integer $nbCodeTot Nombre total de codes à exporter.
* @param integer $nbCodeLigne Nombre de codes par ligne.
* @param integer $nbCodeFic Nombre de codes par fichiers.
* @param integer $nbCodeTot Nombre total de codes à exporter.
* @param integer $nbCodeLigne Nombre de codes par ligne.
* @param Settings $settings Setting of the current tenant.
* @return void
*/
public function __construct(
protected int $nbCodeFic,
protected int $nbCodeTot,
protected int $nbCodeLigne
protected int $nbCodeLigne,
protected Settings $settings,
) {
$this->settingModel = $settings;
}
/**
@ -58,7 +69,7 @@ class ProcessExportCodesUniques implements ShouldQueue, ShouldBeUnique
*
* @return void
*/
public function handle()
public function handle(): void
{
DB::transaction(function () {
$this->exportFileName = sprintf(
@ -70,6 +81,7 @@ class ProcessExportCodesUniques implements ShouldQueue, ShouldBeUnique
try {
$lastExportedCodeId = Code::query()
->where('tenant_id', $this->settingModel->tenant_id)
->where('code_exported', true)
->orderBy('id', 'desc')->first()->id ?? null;
@ -172,7 +184,10 @@ class ProcessExportCodesUniques implements ShouldQueue, ShouldBeUnique
}
// ? Have we reached pagination limit for mass saving ?
if (count($exportedCodesId) === $paginate) {
Code::query()->whereIn('id', $exportedCodesId)->update(['code_exported' => true]);
Code::query()
->where('tenant_id', $this->settingModel->tenant_id)
->whereIn('id', $exportedCodesId)
->update(['code_exported' => true]);
$exportedCodesId = [];
}
} //end if
@ -180,7 +195,10 @@ class ProcessExportCodesUniques implements ShouldQueue, ShouldBeUnique
// ? Are there exported codes to save ?
if (count($exportedCodesId)) {
Code::query()->whereIn('id', $exportedCodesId)->update(['code_exported' => true]);
Code::query()
->where('tenant_id', $this->settingModel->tenant_id)
->whereIn('id', $exportedCodesId)
->update(['code_exported' => true]);
}
return $outPaths;
}
@ -192,12 +210,12 @@ class ProcessExportCodesUniques implements ShouldQueue, ShouldBeUnique
* @param \Throwable $exception
* @return void
*/
public function failed(\Throwable $exception)
public function failed(\Throwable $exception): void
{
Mail::to(config('mail.admin'))->send(
new JobFailed(__CLASS__, [
'message' => $exception->getMessage(),
'trace' => $exception->getTraceAsString()
'trace' => $exception->getTraceAsString()
])
);
}

View file

@ -32,15 +32,24 @@ class ProcessUniqueCode implements ShouldQueue, ShouldBeUnique
*/
public $timeout = 7200;
/**
* Setting of the current model.
*
* @var \App\Models\Settings|null $settingModel
*/
protected $settingModel = null;
/**
* Create a new job instance.
*
* @param integer $amount Amount of code to generate.
* @param integer $length Length of each code to generate.
* @param integer $amount Amount of code to generate.
* @param integer $length Length of each code to generate.
* @param Settings $settings Setting of the current tenant.
* @return void
*/
public function __construct(protected int $amount, protected int $length)
public function __construct(protected int $amount, protected int $length, protected Settings $settings)
{
$this->settingModel = $settings;
}
/**
@ -48,15 +57,12 @@ class ProcessUniqueCode implements ShouldQueue, ShouldBeUnique
*
* @return void
*/
public function handle()
public function handle(): void
{
DB::transaction(function () {
// ! Le premier code commence à 1
$last_id = (Code::query()->max('id') ?? 0) + 1;
/** @var \App\Models\Settings $settings */
$settings = app(Settings::class);
$maxSQLPlaceholders = 65535;
$insertColumns = collect(DB::getSchemaBuilder()
@ -66,18 +72,10 @@ class ProcessUniqueCode implements ShouldQueue, ShouldBeUnique
return !in_array($name, ['id', 'code_exported']);
})->count() + 1;
/**
* Nombre d'insertions max sur un seule requète
*
* @var integer $perPage
*/
/** @var integer $perPage Nombre d'insertions max sur un seule requète. */
$perPage = \floor($maxSQLPlaceholders / $insertColumns);
/**
* Nombre de page totale à insérer.
*
* @var integer $totalPages
*/
/** @var integer $totalPages Nombre de page totale à insérer. */
$totalPages = \ceil($this->amount / $perPage);
$totalGeneratedInserts = 0;
@ -87,7 +85,8 @@ class ProcessUniqueCode implements ShouldQueue, ShouldBeUnique
$insertToGenerate = min($perPage, $this->amount - $totalGeneratedInserts);
do {
$inserts[] = [
'id' => $last_id++,
'id' => $last_id++,
'tenant_id' => $this->settingModel->tenant_id,
'date_creation' => now()->format('Y-m-d'),
];
} while (($totalGeneratedInserts < $this->amount) && --$insertToGenerate);
@ -101,23 +100,23 @@ class ProcessUniqueCode implements ShouldQueue, ShouldBeUnique
// * Fin de la génération.
Mail::to(config('mail.admin'))->send(new CodeGenerationSucceed(
$this->amount,
$settings->name
$this->settingModel->name,
));
});
}
/**
* In case of job failure
* In case of job failure.
*
* @param \Throwable $exception
* @return void
*/
public function failed(\Throwable $exception)
public function failed(\Throwable $exception): void
{
Mail::to(config('mail.admin'))->send(
new JobFailed(__CLASS__, [
'message' => $exception->getMessage(),
'trace' => $exception->getTraceAsString()
'trace' => $exception->getTraceAsString()
])
);
}

View file

@ -26,11 +26,11 @@ class Discount extends \stdClass implements Jsonable, Arrayable, \JsonSerializab
* @var array<string>
*/
private static array $propertiesList = [
'picture',
'valid_on',
'face_value',
'percentage',
'web_coupon_identifiant',
'percentage',
'face_value',
'valid_on',
'picture',
];
/**
@ -53,28 +53,28 @@ class Discount extends \stdClass implements Jsonable, Arrayable, \JsonSerializab
/**
* Make and instance
*
* @param string $picture Image locale du Coupon.
* @param string $valid_on Text valable sur.. (duplicat de ce qui est inscrit dans MesBr)
* Pour affichage sur la page de gain est dans le mail.
* @param integer $face_value Valeur faciale en centimes.
* @param integer $percentage Pourcentage de chance de gagner le lot nombre de 1 à 100.
* @param integer $web_coupon_identifiant EAN 13 format (Mais ne représente pas un EAN 13),
* format utilisé dans MesBr.
* @param string $web_coupon_identifiant EAN 13 format (Mais ne représente pas un EAN 13),
* Format utilisé dans MesBr.
* @param string $percentage Pourcentage de chance de gagner le lot nombre de 1 à 100.
* @param string $face_value Valeur faciale en centimes.
* @param string $valid_on Text valable sur.. (duplicat de ce qui est inscrit dans MesBr)
* Pour affichage sur la page de gain est dans le mail.
* @param string $picture Image locale du Coupon.
*
* @return \App\Lib\Discount
* @throws \RuntimeException If $type or $data is wrong.
*/
public static function make(
string $picture,
string $web_coupon_identifiant,
string $percentage,
string $face_value,
string $valid_on,
int $face_value,
int $percentage,
int $web_coupon_identifiant,
string $picture
): self {
$ipTypeData = new self();
$ipTypeData->web_coupon_identifiant = $web_coupon_identifiant;
$ipTypeData->percentage = $percentage;
$ipTypeData->face_value = $face_value;
$ipTypeData->web_coupon_identifiant = (int) $web_coupon_identifiant;
$ipTypeData->percentage = (int) $percentage;
$ipTypeData->face_value = (int) $face_value;
$ipTypeData->valid_on = $valid_on;
$ipTypeData->picture = $picture;
self::assertIsInputTypeData($ipTypeData);

View file

@ -105,7 +105,7 @@ class FileStorageHelper
Model $model,
$file,
bool $slugify = false,
string $filename = null,
string|null $filename = null,
bool $private = false
): string {
// phpcs:enable
@ -166,7 +166,7 @@ class FileStorageHelper
public static function storeModelFilesFromHtml(
Model $model,
string $htmlString,
string $oldHtmlString = null
string|null $oldHtmlString = null
): string {
\collect(self::onlyUploadedFilesWithFileManager(self::findFilesInHtml($htmlString)))
->each(function (string $path) use ($model, &$htmlString) {

View file

@ -2,7 +2,6 @@
namespace App\Lib\Helpers;
use App\Models\Settings;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
@ -61,7 +60,7 @@ class ToolboxHelper
public static function assertGameIsNotOppened(): void
{
/** @var \App\Models\Settings */
$settings = app(Settings::class);
$settings = \tenant()->setting;
if ($settings->game_is_open) {
throw new \RuntimeException('Cannot delete prize while game is oppened');
}
@ -98,7 +97,7 @@ class ToolboxHelper
Validator::validate($request->all(), [
'g-recaptcha-response' => [
'required', 'string',
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed, Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
function ($attribute, $value, $fail) use ($isV3) {
try {
$response = Http::asForm()->post('https://www.google.com/recaptcha/api/siteverify', [
@ -292,7 +291,7 @@ class ToolboxHelper
* @param string $table
* @param string $field
* @param string|integer|float|boolean|null|array $value
* @param integer|null $id
* @param integer|string|null $id
* @param callable|null $query
* @return void
* @throws \Illuminate\Validation\ValidationException If the field is not unique.
@ -301,7 +300,7 @@ class ToolboxHelper
string $table,
string $field,
string|int|float|bool|null|array $value,
?int $id = null,
int|string|null $id = null,
?callable $query = null
) {
if (!$query) {

View file

@ -0,0 +1,18 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.json]
indent_size = 4
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2

View file

@ -0,0 +1,3 @@
crm.token=qsdqsd
crm.password=qsdqsdqsds
crm.endpoint=localhost

View file

@ -0,0 +1,5 @@
workspace.code-workspace
vendor
node_modules
.phpdoc
.phive

View file

@ -0,0 +1,26 @@
# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Composer.gitlab-ci.yml
# Publishes a tag/branch to Composer Packages of the current project
package-publish:
image: curlimages/curl:latest
stage: build
variables:
URL: "$CI_SERVER_PROTOCOL://$CI_SERVER_HOST:$CI_SERVER_PORT/api/v4/projects/$CI_PROJECT_ID/packages/composer?job_token=$CI_JOB_TOKEN"
script:
- insecure=$([ "$CI_SERVER_PROTOCOL" = "http" ] && echo "--insecure" || echo "")
- response=$(curl -s -w "\n%{http_code}" $insecure --data tag=$CI_COMMIT_TAG $URL)
- code=$(echo "$response" | tail -n 1)
- body=$(echo "$response" | head -n 1)
# Output state information
- if [ $code -eq 201 ]; then
echo "Package created - Code $code - $body";
else
echo "Could not create package - Code $code - $body";
exit 1;
fi
rules:
- if: '$CI_COMMIT_TAG =~ /^\d+.\d+.\d+/'

View file

@ -0,0 +1,22 @@
{
// Utilisez IntelliSense pour en savoir plus sur les attributs possibles.
// Pointez pour afficher la description des attributs existants.
// Pour plus d'informations, visitez : https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}

View file

@ -0,0 +1,6 @@
{
"version": "3.0.6",
"timestampTimeout": 30,
"apiRequestRatePerMinute": 256,
"servicesDBCache": 10
}

View file

@ -0,0 +1,92 @@
# Changelog
### All notable changes to `CRM CLient V2` will be documented in this file.
# version 3.0.6
- Added: SingleOptin::unsetStatusWithHashcode to allow customers to unsubscribe using a hashcode, now single optins do have hashcodes.
# version 3.0.5
- Bumped to follow CRM updates
# version 3.0.4
- Added CI configuration
# version 3.0.3
- Update Country enum
- Fixed : request merge method of data to query (Request.php)
- Fixed : validate json check should check if really false (Response.php)
- Bumped composer deps
# version 3.0.2
- Regen documentation with php documentor
# version 3.0.1
- Fixed : Customer do not call update if there are no updated fields
- Fixed : WPCrm bootSessionIfNeeded trying to access $_SESSION['wpcrm'] before session was started
- Fixed : WPCrm now only returns a boolean
- Fixed : get crm info when client used in laravel
- Changed : WpCrm::makeApiV2Call Change LogLevel on error from Emerge to Critical
- Changed : WPCrm readd forceLogin()
# version 3.0.0
This removes api authentication with token in favor of signature method.
Refactored code and clean up. It add more unit test plus code coverage
in test/coverage.
- Added : mardown documentation.
- Changed : WPCrm::login now only returns a boolean
- Changed : model Stats::getQuestionStats to pass question as route parameter
- Changed : now requests need to have a signature generated with a private key (crm password) using hmac sha256 wrapping url, method and parameters
- Changed : now timestamp will timeout if request is slower than "timestampTimeout", this means crm will reject the request
- Changed : throw ValidationException s instead of TypeErrors
- Changed : timestamp has to be send in request with a DateTime format, it also has to a UTC value
- Fixed : Change WPCRM dynamic session key, this could prevent spoofing session in some cases.
- Fixed : closure validation
- Fixed : model mutator not catching reflectionException
- Fixed : really send json request using Guzzle internal lib methods.
- Removed : Api AUTH system with api token
- Removed : ApiError::needAuth
- Removed : composer vlucas/dotenv, .env file is not handled any more.
- Removed : LoginException
- Removed : memcached dependency
- Removed : need of memcached
- Removed : unused service provider
- Removed : WpCrm::forceLogin
- Removed : WpCrm::sendArcadiaMailDefault
- Removed : WpCrm::sendArcadiaMailGame
- Updated : PHPCS rules, phpcs fixes and refactored code
# version 2.3.2
- Hotfixed arcadia order
# version 2.3.1
- Fixed Consider fill attributes as can be nullable
- Fixed Respect sometimes validation
# version 2.3.0
- Added Stats call by brand and by question
- Added min rule valdation for integers as well as for strings in Utils
# version 2.2.3
- Changed for bool casting for response parse field 'status' when is int 1 or 0
- Changed, properties are filled from CRM after a save or update action, this will allow for props to be set on model as it is on the crm, after all checks and casts (firstname capitalized, ... etc)
# version 2.2.2
- Fixed Arcadia mail where sending parameters as query instead of Data
# version 2.2.1
- Fixed fill methods on models to handle all enums + arrays
- Changed validation on customer, city minimum is now 2 chars,
firstname and lastname min are now 1 char, phone min 10 has been removed,
other validations are made on backend side such as limit countries,
right now limit is FR, BE, NL.
Anyway dont forget to handle ValidationException which returns crm message.
- Include Drom Com to allowed countries
- Update Country enum to remove '-' chars
# version 2.2.0
- Fixed Utils.php getResquest method
- Changed Arcadia mails, add customer parameters for these calls
# version 2.1.9
- Fixed method CrmClientModel::fill now validates data and put value to updatedValues array

View file

@ -0,0 +1,47 @@
{
"name": "ldc/ldccrmv2client",
"type": "library",
"description": "LDC CRM Client V2",
"license": "MIT",
"version": "3.0.6",
"authors": [
{
"name": "Jérémy Munsch",
"email": "jeremy.munsch@ldc.fr",
"homepage": "https://jeremydev.ovh"
}
],
"homepage": "https://github.com/kwaadpepper",
"keywords": [
"Laravel",
"CRM",
"Client",
"LDC"
],
"require": {
"kwaadpepper/enum": "^2.1",
"guzzlehttp/guzzle": "^7.4",
"respect/validation": "^2.2"
},
"require-dev": {
"phpunit/phpunit": "~9.0",
"squizlabs/php_codesniffer": "^3.5",
"orchestra/testbench": "^6.13",
"slevomat/coding-standard": "^7.0"
},
"autoload": {
"psr-4": {
"LDC\\LDCCRM\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"LDC\\LDCCRM\\Tests\\": "tests"
}
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
}
}
}

8082
app/Lib/vendor/crm-client-3.0.6/composer.lock generated vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,807 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
CrmApiV2
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/CrmApiV2.php"><a href="files/src-crmapiv2.html"><abbr title="src/CrmApiV2.php">CrmApiV2.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">15</span>
</aside>
<p class="phpdocumentor-summary">This is the main class to interact with the CRM</p>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -property -private">
<a href="classes/LDC-LDCCRM-CrmApiV2.html#property_apiInterface">$apiInterface</a>
<span>
&nbsp;: <abbr title="\LDC\LDCCRM\Transport\ApiInterface">ApiInterface</abbr> </span>
</dt>
<dd>The Api object that will handle requests and responses</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method___construct">__construct()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>CrmApiV2</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_getCustomer">getCustomer()</a>
<span>
&nbsp;: <a href="classes/LDC-LDCCRM-Models-Customer.html"><abbr title="\LDC\LDCCRM\Models\Customer">Customer</abbr></a>|null </span>
</dt>
<dd>Get a customer from its hashcode or email
If it does not exists a new instance
will be returned. You would have
to call its save method later on.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_getCustomerOrNew">getCustomerOrNew()</a>
<span>
&nbsp;: <a href="classes/LDC-LDCCRM-Models-Customer.html"><abbr title="\LDC\LDCCRM\Models\Customer">Customer</abbr></a> </span>
</dt>
<dd>Get a customer from its hashcode or email
If it does not exists a new instance
will be returned. You would have
to call its save method later on.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_login">login()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Test a customer credentials to see if it can login</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_ping">ping()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Use this the ping the crm and know its current status</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_setStatus">setStatus()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Set the single optin status for an email</dd>
</dl>
<section class="phpdocumentor-properties">
<h3 class="phpdocumentor-elements__header" id="properties">
Properties
<a href="classes/LDC-LDCCRM-CrmApiV2.html#properties" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="
phpdocumentor-element
-property
-private
-static "
>
<h4 class="phpdocumentor-element__name" id="property_apiInterface">
$apiInterface
<a href="classes/LDC-LDCCRM-CrmApiV2.html#property_apiInterface" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/CrmApiV2.php"><a href="files/src-crmapiv2.html"><abbr title="src/CrmApiV2.php">CrmApiV2.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">22</span>
</aside>
<p class="phpdocumentor-summary">The Api object that will handle requests and responses</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__type"><abbr title="\LDC\LDCCRM\Transport\ApiInterface">ApiInterface</abbr></span>
<span class="phpdocumentor-signature__name">$apiInterface</span>
</code>
</article>
</section>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-CrmApiV2.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___construct">
__construct()
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method___construct" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/CrmApiV2.php"><a href="files/src-crmapiv2.html"><abbr title="src/CrmApiV2.php">CrmApiV2.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">31</span>
</aside>
<p class="phpdocumentor-summary">CrmApiV2</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__construct</span><span>(</span><span class="phpdocumentor-signature__argument"><span>[</span><span class="phpdocumentor-signature__argument__return-type">string|null&nbsp;</span><span class="phpdocumentor-signature__argument__name">$endpoint</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">null</span><span> ]</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type">string|null&nbsp;</span><span class="phpdocumentor-signature__argument__name">$bearerToken</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">null</span><span> ]</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type">string|null&nbsp;</span><span class="phpdocumentor-signature__argument__name">$bearerPwd</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">null</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$endpoint</span>
: <span class="phpdocumentor-signature__argument__return-type">string|null</span>
= <span class="phpdocumentor-signature__argument__default-value">null</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$bearerToken</span>
: <span class="phpdocumentor-signature__argument__return-type">string|null</span>
= <span class="phpdocumentor-signature__argument__default-value">null</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$bearerPwd</span>
: <span class="phpdocumentor-signature__argument__return-type">string|null</span>
= <span class="phpdocumentor-signature__argument__default-value">null</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">mixed</span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_getCustomer">
getCustomer()
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_getCustomer" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/CrmApiV2.php"><a href="files/src-crmapiv2.html"><abbr title="src/CrmApiV2.php">CrmApiV2.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">87</span>
</aside>
<p class="phpdocumentor-summary">Get a customer from its hashcode or email
If it does not exists a new instance
will be returned. You would have
to call its save method later on.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">getCustomer</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$identification</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/LDC-LDCCRM-Models-Customer.html"><abbr title="\LDC\LDCCRM\Models\Customer">Customer</abbr></a>|null</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$identification</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
<section class="phpdocumentor-description"><p>The customer hashcode or email.</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-CrmException.html"><abbr title="\LDC\LDCCRM\Exceptions\CrmException">CrmException</abbr></a></span>
<section class="phpdocumentor-description"><p>If an error occurs on server side or on getting response.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html"><abbr title="\LDC\LDCCRM\Exceptions\ApiErrorException">ApiErrorException</abbr></a></span>
<section class="phpdocumentor-description"><p>If any error or \LDC\LDCCRM\Enums\ApiError occurs.
Possibles are : - modelNotFound, If this customer hashcode could not be found.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">phpcs:ignore</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>Squiz.Commenting.FunctionCommentThrowTag.WrongNumber</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/LDC-LDCCRM-Models-Customer.html"><abbr title="\LDC\LDCCRM\Models\Customer">Customer</abbr></a>|null</span>
&mdash;
<section class="phpdocumentor-description"><p>Return null if the customer was not found</p>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_getCustomerOrNew">
getCustomerOrNew()
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_getCustomerOrNew" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/CrmApiV2.php"><a href="files/src-crmapiv2.html"><abbr title="src/CrmApiV2.php">CrmApiV2.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">69</span>
</aside>
<p class="phpdocumentor-summary">Get a customer from its hashcode or email
If it does not exists a new instance
will be returned. You would have
to call its save method later on.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">getCustomerOrNew</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$identification</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/LDC-LDCCRM-Models-Customer.html"><abbr title="\LDC\LDCCRM\Models\Customer">Customer</abbr></a></span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$identification</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
<section class="phpdocumentor-description"><p>The customer hashcode or email.</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-CrmException.html"><abbr title="\LDC\LDCCRM\Exceptions\CrmException">CrmException</abbr></a></span>
<section class="phpdocumentor-description"><p>If an error occurs on server side or on getting response.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html"><abbr title="\LDC\LDCCRM\Exceptions\ApiErrorException">ApiErrorException</abbr></a></span>
<section class="phpdocumentor-description"><p>If any error or \LDC\LDCCRM\Enums\ApiError occurs.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">phpcs:ignore</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>Squiz.Commenting.FunctionComment.EmptyThrows</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/LDC-LDCCRM-Models-Customer.html"><abbr title="\LDC\LDCCRM\Models\Customer">Customer</abbr></a></span>
&mdash;
<section class="phpdocumentor-description"><p>A client Customer model.</p>
</section>
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_login">
login()
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_login" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/CrmApiV2.php"><a href="files/src-crmapiv2.html"><abbr title="src/CrmApiV2.php">CrmApiV2.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">120</span>
</aside>
<p class="phpdocumentor-summary">Test a customer credentials to see if it can login</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">login</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$email</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$password</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$email</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$password</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-CrmException.html"><abbr title="\LDC\LDCCRM\Exceptions\CrmException">CrmException</abbr></a></span>
<section class="phpdocumentor-description"><p>If an error occurs on server side or on getting response.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html"><abbr title="\LDC\LDCCRM\Exceptions\ApiErrorException">ApiErrorException</abbr></a></span>
<section class="phpdocumentor-description"><p>If any error or \LDC\LDCCRM\Enums\ApiError occurs.
Possibles are : - authFailed, If credentials are not valid.
- customerNotActivated, If the account is not activated.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">phpcs:ignore</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>Squiz.Commenting.FunctionCommentThrowTag.WrongNumber</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_ping">
ping()
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_ping" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/CrmApiV2.php"><a href="files/src-crmapiv2.html"><abbr title="src/CrmApiV2.php">CrmApiV2.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">48</span>
</aside>
<p class="phpdocumentor-summary">Use this the ping the crm and know its current status</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">ping</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-CrmException.html"><abbr title="\LDC\LDCCRM\Exceptions\CrmException">CrmException</abbr></a></span>
<section class="phpdocumentor-description"><p>If an error occurs
on server side or on getting response.</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_setStatus">
setStatus()
<a href="classes/LDC-LDCCRM-CrmApiV2.html#method_setStatus" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/CrmApiV2.php"><a href="files/src-crmapiv2.html"><abbr title="src/CrmApiV2.php">CrmApiV2.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">103</span>
</aside>
<p class="phpdocumentor-summary">Set the single optin status for an email</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">setStatus</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$email</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">bool&nbsp;</span><span class="phpdocumentor-signature__argument__name">$opt_in</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$email</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$opt_in</span>
: <span class="phpdocumentor-signature__argument__return-type">bool</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-CrmException.html"><abbr title="\LDC\LDCCRM\Exceptions\CrmException">CrmException</abbr></a></span>
<section class="phpdocumentor-description"><p>If an error occurs on server side or on getting response.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html"><abbr title="\LDC\LDCCRM\Exceptions\ApiErrorException">ApiErrorException</abbr></a></span>
<section class="phpdocumentor-description"><p>If any error or \LDC\LDCCRM\Enums\ApiError occurs.
Possibles are : - singleOptinCustomerExists, If a customer exists with this email.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">phpcs:ignore</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>Squiz.Commenting.FunctionCommentThrowTag.WrongNumber</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
&mdash;
<section class="phpdocumentor-description"><p>true if succeeded</p>
</section>
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-CrmApiV2.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,906 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-enums.html">Enums</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
ApiError
<span class="phpdocumentor-element__extends">
extends <abbr title="\Kwaadpepper\Enum\BaseEnum">BaseEnum</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-enums.html">enums</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">65</span>
</aside>
<p class="phpdocumentor-summary">This describes an API error.</p>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>enums</p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_apiAuthFailed">apiAuthFailed()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_authFailed">authFailed()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_authorizationException">authorizationException()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_customerAlreadyActive">customerAlreadyActive()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_customerExists">customerExists()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_customerNotActivated">customerNotActivated()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_labels">labels()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Libellés des possibilités de cet énumération (label)</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_methodNotAllowed">methodNotAllowed()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_missingParameter">missingParameter()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_modelNotFound">modelNotFound()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_singleOptinCustomerExists">singleOptinCustomerExists()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_throttleRequestsException">throttleRequestsException()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_validationFailed">validationFailed()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_values">values()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Valeurs des possibilités de cet énumération (value)</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_wrongTimeStamp">wrongTimeStamp()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_apiAuthFailed">
apiAuthFailed()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_apiAuthFailed" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">apiAuthFailed</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>The authentification to the api failed. You may have to
check into config or .env file for your service credentials</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_authFailed">
authFailed()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_authFailed" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">authFailed</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>The authentification for this customer failed because of wrong credentials</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_authorizationException">
authorizationException()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_authorizationException" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">authorizationException</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>You are maybe trying to access data that is out of your range.
This should not happen normally, it is here to allow you to handle this case.
If this happens fill a ticket on https://supportweb.ldc.fr
with some technical details</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_customerAlreadyActive">
customerAlreadyActive()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_customerAlreadyActive" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">customerAlreadyActive</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>You have requested to activate a customer account,
but it is already active</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_customerExists">
customerExists()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_customerExists" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">customerExists</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>The customer already exists</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_customerNotActivated">
customerNotActivated()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_customerNotActivated" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">customerNotActivated</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>The customer account is not activated and cannot perform
this action</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_labels">
labels()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_labels" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">96</span>
</aside>
<p class="phpdocumentor-summary">Libellés des possibilités de cet énumération (label)</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">labels</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_methodNotAllowed">
methodNotAllowed()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_methodNotAllowed" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">methodNotAllowed</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>This http method is not allowed</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_missingParameter">
missingParameter()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_missingParameter" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">missingParameter</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>The request is missing some parameters</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_modelNotFound">
modelNotFound()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_modelNotFound" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">modelNotFound</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>The request model was not found (typically the customer)</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_singleOptinCustomerExists">
singleOptinCustomerExists()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_singleOptinCustomerExists" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">singleOptinCustomerExists</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>You have requested to create a single optin for an email,
but it already exists</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_throttleRequestsException">
throttleRequestsException()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_throttleRequestsException" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">throttleRequestsException</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>Too many requests have been attempted. The is a throttle security.
Normally you should not trigger this.
If this happens fill a ticket on https://supportweb.ldc.fr
with some technical details</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_validationFailed">
validationFailed()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_validationFailed" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">validationFailed</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>This means some data could not be validated,
you may have to look into message to get the details</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_values">
values()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_values" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">72</span>
</aside>
<p class="phpdocumentor-summary">Valeurs des possibilités de cet énumération (value)</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">values</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_wrongTimeStamp">
wrongTimeStamp()
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#method_wrongTimeStamp" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiError.php"><a href="files/src-enums-apierror.html"><abbr title="src/Enums/ApiError.php">ApiError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">wrongTimeStamp</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>The timestamp given is wrong. This would happen in case if
a replay attack scenario. Timestamps are provided in headers
and in the http body</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Enums-ApiError.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,357 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-enums.html">Enums</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
ApiStatus
<span class="phpdocumentor-element__extends">
extends <abbr title="\Kwaadpepper\Enum\BaseEnum">BaseEnum</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-enums.html">enums</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiStatus.php"><a href="files/src-enums-apistatus.html"><abbr title="src/Enums/ApiStatus.php">ApiStatus.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">14</span>
</aside>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>enums</p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiStatus.html#method_KO">KO()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ApiStatus.html#method_OK">OK()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Enums-ApiStatus.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_KO">
KO()
<a href="classes/LDC-LDCCRM-Enums-ApiStatus.html#method_KO" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiStatus.php"><a href="files/src-enums-apistatus.html"><abbr title="src/Enums/ApiStatus.php">ApiStatus.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">KO</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_OK">
OK()
<a href="classes/LDC-LDCCRM-Enums-ApiStatus.html#method_OK" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ApiStatus.php"><a href="files/src-enums-apistatus.html"><abbr title="src/Enums/ApiStatus.php">ApiStatus.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">OK</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Enums-ApiStatus.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,397 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-enums.html">Enums</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
ArcadiaMailType
<span class="phpdocumentor-element__extends">
extends <abbr title="\Kwaadpepper\Enum\BaseEnum">BaseEnum</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-enums.html">enums</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ArcadiaMailType.php"><a href="files/src-enums-arcadiamailtype.html"><abbr title="src/Enums/ArcadiaMailType.php">ArcadiaMailType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">14</span>
</aside>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>enums</p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ArcadiaMailType.html#method_default">default()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ArcadiaMailType.html#method_game">game()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ArcadiaMailType.html#method_values">values()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Valeurs des possibilités de cet énumération (value)</dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Enums-ArcadiaMailType.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_default">
default()
<a href="classes/LDC-LDCCRM-Enums-ArcadiaMailType.html#method_default" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ArcadiaMailType.php"><a href="files/src-enums-arcadiamailtype.html"><abbr title="src/Enums/ArcadiaMailType.php">ArcadiaMailType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">default</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_game">
game()
<a href="classes/LDC-LDCCRM-Enums-ArcadiaMailType.html#method_game" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ArcadiaMailType.php"><a href="files/src-enums-arcadiamailtype.html"><abbr title="src/Enums/ArcadiaMailType.php">ArcadiaMailType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">game</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_values">
values()
<a href="classes/LDC-LDCCRM-Enums-ArcadiaMailType.html#method_values" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ArcadiaMailType.php"><a href="files/src-enums-arcadiamailtype.html"><abbr title="src/Enums/ArcadiaMailType.php">ArcadiaMailType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">21</span>
</aside>
<p class="phpdocumentor-summary">Valeurs des possibilités de cet énumération (value)</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">values</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Enums-ArcadiaMailType.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,397 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-enums.html">Enums</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
ArcadiaOrderType
<span class="phpdocumentor-element__extends">
extends <abbr title="\Kwaadpepper\Enum\BaseEnum">BaseEnum</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-enums.html">enums</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ArcadiaOrderType.php"><a href="files/src-enums-arcadiaordertype.html"><abbr title="src/Enums/ArcadiaOrderType.php">ArcadiaOrderType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">14</span>
</aside>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>enums</p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ArcadiaOrderType.html#method_cb">cb()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ArcadiaOrderType.html#method_check">check()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-ArcadiaOrderType.html#method_values">values()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Valeurs des possibilités de cet énumération (value)</dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Enums-ArcadiaOrderType.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_cb">
cb()
<a href="classes/LDC-LDCCRM-Enums-ArcadiaOrderType.html#method_cb" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ArcadiaOrderType.php"><a href="files/src-enums-arcadiaordertype.html"><abbr title="src/Enums/ArcadiaOrderType.php">ArcadiaOrderType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">cb</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_check">
check()
<a href="classes/LDC-LDCCRM-Enums-ArcadiaOrderType.html#method_check" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ArcadiaOrderType.php"><a href="files/src-enums-arcadiaordertype.html"><abbr title="src/Enums/ArcadiaOrderType.php">ArcadiaOrderType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">check</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_values">
values()
<a href="classes/LDC-LDCCRM-Enums-ArcadiaOrderType.html#method_values" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/ArcadiaOrderType.php"><a href="files/src-enums-arcadiaordertype.html"><abbr title="src/Enums/ArcadiaOrderType.php">ArcadiaOrderType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">21</span>
</aside>
<p class="phpdocumentor-summary">Valeurs des possibilités de cet énumération (value)</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">values</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Enums-ArcadiaOrderType.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,647 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-enums.html">Enums</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
LogLevel
<span class="phpdocumentor-element__extends">
extends <abbr title="\Kwaadpepper\Enum\BaseEnum">BaseEnum</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-enums.html">enums</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">20</span>
</aside>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>enums</p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_ALERT">ALERT()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_CRIT">CRIT()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_DEBUG">DEBUG()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_EMERG">EMERG()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_ERR">ERR()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_INFO">INFO()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_NOTICE">NOTICE()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_WARNING">WARNING()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -protected">
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_values">values()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Valeurs des possibilités de cet énumération (value)</dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_ALERT">
ALERT()
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_ALERT" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">ALERT</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>action must be taken immediately</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_CRIT">
CRIT()
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_CRIT" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">CRIT</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>critical conditions</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_DEBUG">
DEBUG()
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_DEBUG" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">DEBUG</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>debug-level message</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_EMERG">
EMERG()
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_EMERG" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">EMERG</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>system is unusable</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_ERR">
ERR()
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_ERR" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">ERR</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>critical conditions</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_INFO">
INFO()
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_INFO" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">INFO</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>informational message</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_NOTICE">
NOTICE()
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_NOTICE" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">NOTICE</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>normal, but significant, condition</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_WARNING">
WARNING()
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_WARNING" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">WARNING</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<section class="phpdocumentor-description"><p>critical conditions</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="method_values">
values()
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#method_values" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/LogLevel.php"><a href="files/src-enums-loglevel.html"><abbr title="src/Enums/LogLevel.php">LogLevel.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">27</span>
</aside>
<p class="phpdocumentor-summary">Valeurs des possibilités de cet énumération (value)</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">values</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Enums-LogLevel.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,436 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-enums.html">Enums</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
QuestionType
<span class="phpdocumentor-element__extends">
extends <abbr title="\Kwaadpepper\Enum\BaseEnum">BaseEnum</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-enums.html">enums</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/QuestionType.php"><a href="files/src-enums-questiontype.html"><abbr title="src/Enums/QuestionType.php">QuestionType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">15</span>
</aside>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>enums</p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#method_checkbox">checkbox()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#method_radio">radio()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#method_select">select()</a>
<span>
&nbsp;: <a href=""><abbr title=""></abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#method_values">values()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Valeurs des possibilités de cet énumération (value)</dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_checkbox">
checkbox()
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#method_checkbox" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/QuestionType.php"><a href="files/src-enums-questiontype.html"><abbr title="src/Enums/QuestionType.php">QuestionType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">checkbox</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_radio">
radio()
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#method_radio" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/QuestionType.php"><a href="files/src-enums-questiontype.html"><abbr title="src/Enums/QuestionType.php">QuestionType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">radio</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_select">
select()
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#method_select" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/QuestionType.php"><a href="files/src-enums-questiontype.html"><abbr title="src/Enums/QuestionType.php">QuestionType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">select</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href=""><abbr title=""></abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_values">
values()
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#method_values" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Enums/QuestionType.php"><a href="files/src-enums-questiontype.html"><abbr title="src/Enums/QuestionType.php">QuestionType.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">22</span>
</aside>
<p class="phpdocumentor-summary">Valeurs des possibilités de cet énumération (value)</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">values</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Enums-QuestionType.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,341 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-exceptions.html">Exceptions</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
AccessError
<span class="phpdocumentor-element__extends">
extends <abbr title="\Error">Error</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-exceptions.html">exceptions</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/AccessError.php"><a href="files/src-exceptions-accesserror.html"><abbr title="src/Exceptions/AccessError.php">AccessError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">13</span>
</aside>
<p class="phpdocumentor-summary">This is thrown when trying to set a value on an object property that does not exist.</p>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>exceptions</p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Exceptions-AccessError.html#method___construct">__construct()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>AccessError</dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Exceptions-AccessError.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___construct">
__construct()
<a href="classes/LDC-LDCCRM-Exceptions-AccessError.html#method___construct" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/AccessError.php"><a href="files/src-exceptions-accesserror.html"><abbr title="src/Exceptions/AccessError.php">AccessError.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">21</span>
</aside>
<p class="phpdocumentor-summary">AccessError</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__construct</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$objectName</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$propertyName</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$objectName</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
<section class="phpdocumentor-description"><p>The object name where the property does not exist.</p>
</section>
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$propertyName</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
<section class="phpdocumentor-description"><p>The property name that does not exist.</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">mixed</span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Exceptions-AccessError.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,630 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-exceptions.html">Exceptions</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
ApiErrorException
<span class="phpdocumentor-element__extends">
extends <abbr title="\Exception">Exception</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-exceptions.html">exceptions</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ApiErrorException.php"><a href="files/src-exceptions-apierrorexception.html"><abbr title="src/Exceptions/ApiErrorException.php">ApiErrorException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">22</span>
</aside>
<p class="phpdocumentor-summary">This would be thrown if any of the case
referenced in \LDC\LDCCRM\Enums\ApiError would
occur within the crm</p>
<section class="phpdocumentor-description"><p>On the client an ApiErrorException would
also be throw with the ApiError corresponding to
the situation</p>
</section>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>exceptions</p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#property_error">$error</a>
<span>
&nbsp;: <a href="classes/LDC-LDCCRM-Enums-ApiError.html"><abbr title="\LDC\LDCCRM\Enums\ApiError">ApiError</abbr></a> </span>
</dt>
<dd>Api Error
This value makes the error more explicit.</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#property_httpCode">$httpCode</a>
<span>
&nbsp;: int </span>
</dt>
<dd>This is the http code returned by the crm.</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#property_message">$message</a>
<span>
&nbsp;: string </span>
</dt>
<dd>This is an explicit error message,
ou may print this to the front or not depending
on $error value</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#method___construct">__construct()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Create a new exception base on ApiError enum.</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#method_getApiError">getApiError()</a>
<span>
&nbsp;: <a href="classes/LDC-LDCCRM-Enums-ApiError.html"><abbr title="\LDC\LDCCRM\Enums\ApiError">ApiError</abbr></a> </span>
</dt>
<dd>Get the Api Error</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#method_getStatusCode">getStatusCode()</a>
<span>
&nbsp;: int </span>
</dt>
<dd>Get the http code</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#method_report">report()</a>
<span>
&nbsp;: void </span>
</dt>
<dd>This is used by laravel only.</dd>
</dl>
<section class="phpdocumentor-properties">
<h3 class="phpdocumentor-elements__header" id="properties">
Properties
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#properties" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_error">
$error
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#property_error" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ApiErrorException.php"><a href="files/src-exceptions-apierrorexception.html"><abbr title="src/Exceptions/ApiErrorException.php">ApiErrorException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">32</span>
</aside>
<p class="phpdocumentor-summary">Api Error
This value makes the error more explicit.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type"><a href="classes/LDC-LDCCRM-Enums-ApiError.html"><abbr title="\LDC\LDCCRM\Enums\ApiError">ApiError</abbr></a></span>
<span class="phpdocumentor-signature__name">$error</span>
</code>
<section class="phpdocumentor-description"><p>Handling these errors are normal as inputs or
request may be undesired or refused by the crm.</p>
</section>
</article>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_httpCode">
$httpCode
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#property_httpCode" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ApiErrorException.php"><a href="files/src-exceptions-apierrorexception.html"><abbr title="src/Exceptions/ApiErrorException.php">ApiErrorException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">50</span>
</aside>
<p class="phpdocumentor-summary">This is the http code returned by the crm.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type">int</span>
<span class="phpdocumentor-signature__name">$httpCode</span>
</code>
<section class="phpdocumentor-description"><p>This value could be used to handle errors.
But please take in consideration $error first</p>
</section>
</article>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_message">
$message
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#property_message" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ApiErrorException.php"><a href="files/src-exceptions-apierrorexception.html"><abbr title="src/Exceptions/ApiErrorException.php">ApiErrorException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">41</span>
</aside>
<p class="phpdocumentor-summary">This is an explicit error message,
ou may print this to the front or not depending
on $error value</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type">string</span>
<span class="phpdocumentor-signature__name">$message</span>
</code>
</article>
</section>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___construct">
__construct()
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#method___construct" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ApiErrorException.php"><a href="files/src-exceptions-apierrorexception.html"><abbr title="src/Exceptions/ApiErrorException.php">ApiErrorException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">60</span>
</aside>
<p class="phpdocumentor-summary">Create a new exception base on ApiError enum.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__construct</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type"><a href="classes/LDC-LDCCRM-Enums-ApiError.html"><abbr title="\LDC\LDCCRM\Enums\ApiError">ApiError</abbr></a>&nbsp;</span><span class="phpdocumentor-signature__argument__name">$error</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$httpCode</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">400</span><span> ]</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$message</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">&#039;&#039;</span><span> ]</span></span><span class="phpdocumentor-signature__argument"><span>[</span><span>, </span><span class="phpdocumentor-signature__argument__return-type"><abbr title="\Throwable">Throwable</abbr>|null&nbsp;</span><span class="phpdocumentor-signature__argument__name">$previous</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">null</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$error</span>
: <span class="phpdocumentor-signature__argument__return-type"><a href="classes/LDC-LDCCRM-Enums-ApiError.html"><abbr title="\LDC\LDCCRM\Enums\ApiError">ApiError</abbr></a></span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$httpCode</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
= <span class="phpdocumentor-signature__argument__default-value">400</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$message</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
= <span class="phpdocumentor-signature__argument__default-value">&#039;&#039;</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$previous</span>
: <span class="phpdocumentor-signature__argument__return-type"><abbr title="\Throwable">Throwable</abbr>|null</span>
= <span class="phpdocumentor-signature__argument__default-value">null</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">mixed</span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_getApiError">
getApiError()
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#method_getApiError" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ApiErrorException.php"><a href="files/src-exceptions-apierrorexception.html"><abbr title="src/Exceptions/ApiErrorException.php">ApiErrorException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">77</span>
</aside>
<p class="phpdocumentor-summary">Get the Api Error</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">getApiError</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type"><a href="classes/LDC-LDCCRM-Enums-ApiError.html"><abbr title="\LDC\LDCCRM\Enums\ApiError">ApiError</abbr></a></span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type"><a href="classes/LDC-LDCCRM-Enums-ApiError.html"><abbr title="\LDC\LDCCRM\Enums\ApiError">ApiError</abbr></a></span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_getStatusCode">
getStatusCode()
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#method_getStatusCode" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ApiErrorException.php"><a href="files/src-exceptions-apierrorexception.html"><abbr title="src/Exceptions/ApiErrorException.php">ApiErrorException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">87</span>
</aside>
<p class="phpdocumentor-summary">Get the http code</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">getStatusCode</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">int</span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">int</span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_report">
report()
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#method_report" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ApiErrorException.php"><a href="files/src-exceptions-apierrorexception.html"><abbr title="src/Exceptions/ApiErrorException.php">ApiErrorException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">99</span>
</aside>
<p class="phpdocumentor-summary">This is used by laravel only.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">report</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">void</span></code>
<section class="phpdocumentor-description"><p>It uses Log class to print the error.</p>
</section>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">codeCoverageIgnore</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">void</span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,332 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-exceptions.html">Exceptions</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
CrmException
<span class="phpdocumentor-element__extends">
extends <abbr title="\Exception">Exception</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-exceptions.html">exceptions</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/CrmException.php"><a href="files/src-exceptions-crmexception.html"><abbr title="src/Exceptions/CrmException.php">CrmException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">17</span>
</aside>
<p class="phpdocumentor-summary">This is a critical error.</p>
<section class="phpdocumentor-description"><p>The request could not be handled. You may dump any value you can
get before submitting a ticker to https://supportweb.ldc.fr</p>
</section>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>exceptions</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">codeCoverageIgnore</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Exceptions-CrmException.html#method_report">report()</a>
<span>
&nbsp;: void </span>
</dt>
<dd>This is used by laravel only.</dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Exceptions-CrmException.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_report">
report()
<a href="classes/LDC-LDCCRM-Exceptions-CrmException.html#method_report" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/CrmException.php"><a href="files/src-exceptions-crmexception.html"><abbr title="src/Exceptions/CrmException.php">CrmException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">25</span>
</aside>
<p class="phpdocumentor-summary">This is used by laravel only.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">report</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">void</span></code>
<section class="phpdocumentor-description"><p>It uses Log class to print the error.</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">void</span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Exceptions-CrmException.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,267 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-exceptions.html">Exceptions</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
SkipValidationException
<span class="phpdocumentor-element__extends">
extends <abbr title="\Exception">Exception</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-exceptions.html">exceptions</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/SkipValidationException.php"><a href="files/src-exceptions-skipvalidationexception.html"><abbr title="src/Exceptions/SkipValidationException.php">SkipValidationException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">13</span>
</aside>
<p class="phpdocumentor-summary">Used only for internal validator</p>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>exceptions</p>
</section>
</dd>
</dl>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Exceptions-SkipValidationException.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,330 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-exceptions.html">Exceptions</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
ValidationException
<span class="phpdocumentor-element__extends">
extends <abbr title="\Exception">Exception</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-exceptions.html">exceptions</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ValidationException.php"><a href="files/src-exceptions-validationexception.html"><abbr title="src/Exceptions/ValidationException.php">ValidationException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">16</span>
</aside>
<p class="phpdocumentor-summary">This would be thrown if a data could not be validated
on any models</p>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>exceptions</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">codeCoverageIgnore</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Exceptions-ValidationException.html#method_report">report()</a>
<span>
&nbsp;: void </span>
</dt>
<dd>This is used by laravel only.</dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Exceptions-ValidationException.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_report">
report()
<a href="classes/LDC-LDCCRM-Exceptions-ValidationException.html#method_report" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/ValidationException.php"><a href="files/src-exceptions-validationexception.html"><abbr title="src/Exceptions/ValidationException.php">ValidationException.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">24</span>
</aside>
<p class="phpdocumentor-summary">This is used by laravel only.</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">report</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">void</span></code>
<section class="phpdocumentor-description"><p>It uses Log class to print the error.</p>
</section>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">void</span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Exceptions-ValidationException.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,332 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-exceptions.html">Exceptions</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
WpCrmInvalidJsonUserInfo
<span class="phpdocumentor-element__extends">
extends <abbr title="\Error">Error</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-exceptions.html">exceptions</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/WpCrmInvalidJsonUserInfo.php"><a href="files/src-exceptions-wpcrminvalidjsonuserinfo.html"><abbr title="src/Exceptions/WpCrmInvalidJsonUserInfo.php">WpCrmInvalidJsonUserInfo.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">15</span>
</aside>
<p class="phpdocumentor-summary">This is thrown when trying to read WP customer from DB json data.</p>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>exceptions</p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Exceptions-WpCrmInvalidJsonUserInfo.html#method___construct">__construct()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>WpCrmInvalidJsonUserInfo</dd>
</dl>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Exceptions-WpCrmInvalidJsonUserInfo.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___construct">
__construct()
<a href="classes/LDC-LDCCRM-Exceptions-WpCrmInvalidJsonUserInfo.html#method___construct" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Exceptions/WpCrmInvalidJsonUserInfo.php"><a href="files/src-exceptions-wpcrminvalidjsonuserinfo.html"><abbr title="src/Exceptions/WpCrmInvalidJsonUserInfo.php">WpCrmInvalidJsonUserInfo.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">22</span>
</aside>
<p class="phpdocumentor-summary">WpCrmInvalidJsonUserInfo</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__construct</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$message</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$message</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
<section class="phpdocumentor-description"><p>The error message.</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">mixed</span>
&mdash;
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Exceptions-WpCrmInvalidJsonUserInfo.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View file

@ -0,0 +1,867 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CRM V2</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">CRM V2</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -four phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="namespaces/ldc.html">LDC</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/ldc-ldccrm.html">LDCCRM</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/LDCCrmClient-enums.html">enums</a>
</li>
<li>
<a href="packages/LDCCrmClient-exceptions.html">exceptions</a>
</li>
<li>
<a href="packages/LDCCrmClient-models.html">models</a>
</li>
<li>
<a href="packages/LDCCrmClient-transport.html">transport</a>
</li>
<li>
<a href="packages/LDCCrmClient-utilities.html">utilities</a>
</li>
<li>
<a href="packages/LDCCrmClient-Wordpress.html">Wordpress</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace"><a href="packages/None.html">None</a></h4>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -eight phpdocumentor-content">
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc.html">LDC</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm.html">LDCCRM</a></li>
<li class="phpdocumentor-breadcrumb"><a href="namespaces/ldc-ldccrm-models.html">Models</a></li>
</ul>
<article class="phpdocumentor-element -class">
<h2 class="phpdocumentor-content__title">
Answer
<span class="phpdocumentor-element__extends">
extends <abbr title="\LDC\LDCCRM\Models\CrmClientModel">CrmClientModel</abbr>
</span>
<div class="phpdocumentor-element__package">
in package
<ul class="phpdocumentor-breadcrumbs">
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient.html">LDCCrmClient</a></li>
<li class="phpdocumentor-breadcrumb"><a href="packages/LDCCrmClient-models.html">models</a></li>
</ul>
</div>
</h2>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">25</span>
</aside>
<p class="phpdocumentor-summary">This class represents an answer
It has a method to submit answers</p>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">category</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>Api Models</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">subpackage</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>models</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">author</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>Jérémy Munsch <a href="mailto:jeremy.munsch@ldc.fr">jeremy.munsch@ldc.fr</a></p>
</section>
</dd>
</dl>
<h3 id="toc">
Table of Contents
<a href="#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -property -public">
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_answers">$answers</a>
<span>
&nbsp;: array&lt;string|int, <a href="classes/LDC-LDCCRM-Models-Answer.html"><abbr title="\LDC\LDCCRM\Models\Answer">Answer</abbr></a>&gt; </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -property -public">
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_id">$id</a>
<span>
&nbsp;: string </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -property -public">
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_question">$question</a>
<span>
&nbsp;: string </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -property -public">
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_type">$type</a>
<span>
&nbsp;: <a href="classes/LDC-LDCCRM-Enums-QuestionType.html"><abbr title="\LDC\LDCCRM\Enums\QuestionType">QuestionType</abbr></a> </span>
</dt>
<dd></dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_modelFields">$modelFields</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>The crm customer fields</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -protected">
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_validation">$validation</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Validation rules</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -private">
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_answer">$answer</a>
<span>
&nbsp;: string </span>
</dt>
<dd>The actual answer as a string</dd>
<dt class="phpdocumentor-table-of-contents__entry -property -private">
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_id">$id</a>
<span>
&nbsp;: int </span>
</dt>
<dd>The question id</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Models-Answer.html#method___construct">__construct()</a>
<span>
&nbsp;: mixed </span>
</dt>
<dd>Answer</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Models-Answer.html#method_jsonSerialize">jsonSerialize()</a>
<span>
&nbsp;: array&lt;string|int, mixed&gt; </span>
</dt>
<dd>Serialize this object to an array</dd>
<dt class="phpdocumentor-table-of-contents__entry -method -public">
<a href="classes/LDC-LDCCRM-Models-Answer.html#method_setQuestionAnswers">setQuestionAnswers()</a>
<span>
&nbsp;: bool </span>
</dt>
<dd>Set unanswered question for a specific customer</dd>
</dl>
<section class="phpdocumentor-properties">
<h3 class="phpdocumentor-elements__header" id="properties">
Properties
<a href="classes/LDC-LDCCRM-Models-Answer.html#properties" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="
phpdocumentor-element
-property
-public
"
>
<h4 class="phpdocumentor-element__name" id="property_answers">
$answers
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_answers" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">array&lt;string|int, <a href="classes/LDC-LDCCRM-Models-Answer.html"><abbr title="\LDC\LDCCRM\Models\Answer">Answer</abbr></a>&gt;</span>
<span class="phpdocumentor-signature__name">$answers</span>
</code>
<section class="phpdocumentor-description"><p>An array with answers</p>
</section>
<section class="phpdocumentor-description"></section>
</article>
<article
class="
phpdocumentor-element
-property
-public
"
>
<h4 class="phpdocumentor-element__name" id="property_id">
$id
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_id" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">string</span>
<span class="phpdocumentor-signature__name">$id</span>
</code>
<section class="phpdocumentor-description"><p>The answer id</p>
</section>
<section class="phpdocumentor-description"></section>
</article>
<article
class="
phpdocumentor-element
-property
-public
"
>
<h4 class="phpdocumentor-element__name" id="property_question">
$question
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_question" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type">string</span>
<span class="phpdocumentor-signature__name">$question</span>
</code>
<section class="phpdocumentor-description"><p>The actual question as a string</p>
</section>
<section class="phpdocumentor-description"></section>
</article>
<article
class="
phpdocumentor-element
-property
-public
"
>
<h4 class="phpdocumentor-element__name" id="property_type">
$type
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_type" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">0</span>
</aside>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__type"><a href="classes/LDC-LDCCRM-Enums-QuestionType.html"><abbr title="\LDC\LDCCRM\Enums\QuestionType">QuestionType</abbr></a></span>
<span class="phpdocumentor-signature__name">$type</span>
</code>
<section class="phpdocumentor-description"><p>The question type to display,
it also hints wether it can accept one or multiple responses,
so only checkbox allows multiple responses</p>
</section>
<section class="phpdocumentor-description"></section>
</article>
<article
class="
phpdocumentor-element
-property
-protected
"
>
<h4 class="phpdocumentor-element__name" id="property_modelFields">
$modelFields
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_modelFields" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">53</span>
</aside>
<p class="phpdocumentor-summary">The crm customer fields</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__type">array&lt;string|int, mixed&gt;</span>
<span class="phpdocumentor-signature__name">$modelFields</span>
= <span class="phpdocumentor-signature__default-value">[&#039;id&#039;, &#039;answer&#039;]</span></code>
</article>
<article
class="
phpdocumentor-element
-property
-protected
-static "
>
<h4 class="phpdocumentor-element__name" id="property_validation">
$validation
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_validation" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">62</span>
</aside>
<p class="phpdocumentor-summary">Validation rules</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">protected</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__type">array&lt;string|int, mixed&gt;</span>
<span class="phpdocumentor-signature__name">$validation</span>
= <span class="phpdocumentor-signature__default-value">[&#039;id&#039; =&gt; &#039;required|int&#039;, &#039;answer&#039; =&gt; &#039;required|string|max:255&#039;]</span></code>
</article>
<article
class="
phpdocumentor-element
-property
-private
"
>
<h4 class="phpdocumentor-element__name" id="property_answer">
$answer
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_answer" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">46</span>
</aside>
<p class="phpdocumentor-summary">The actual answer as a string</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__type">string</span>
<span class="phpdocumentor-signature__name">$answer</span>
= <span class="phpdocumentor-signature__default-value">null</span></code>
<section class="phpdocumentor-description"><p>Required
Max length 255
Field Type varchar</p>
</section>
</article>
<article
class="
phpdocumentor-element
-property
-private
"
>
<h4 class="phpdocumentor-element__name" id="property_id">
$id
<a href="classes/LDC-LDCCRM-Models-Answer.html#property_id" class="headerlink"><i class="fas fa-link"></i></a>
<span class="phpdocumentor-element__modifiers">
</span>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">35</span>
</aside>
<p class="phpdocumentor-summary">The question id</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">private</span>
<span class="phpdocumentor-signature__type">int</span>
<span class="phpdocumentor-signature__name">$id</span>
</code>
<section class="phpdocumentor-description"><p>Required
Field Type bigInt</p>
</section>
</article>
</section>
<section class="phpdocumentor-methods">
<h3 class="phpdocumentor-elements__header" id="methods">
Methods
<a href="classes/LDC-LDCCRM-Models-Answer.html#methods" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method___construct">
__construct()
<a href="classes/LDC-LDCCRM-Models-Answer.html#method___construct" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">73</span>
</aside>
<p class="phpdocumentor-summary">Answer</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">__construct</span><span>(</span><span class="phpdocumentor-signature__argument"><span>[</span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$properties</span><span> = </span><span class="phpdocumentor-signature__argument__default-value">[]</span><span> ]</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">mixed</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$properties</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
= <span class="phpdocumentor-signature__argument__default-value">[]</span> </dt>
<dd class="phpdocumentor-argument-list__definition">
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-ValidationException.html"><abbr title="\LDC\LDCCRM\Exceptions\ValidationException">ValidationException</abbr></a></span>
<section class="phpdocumentor-description"><p>If a field could not be validated.</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">mixed</span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
"
>
<h4 class="phpdocumentor-element__name" id="method_jsonSerialize">
jsonSerialize()
<a href="classes/LDC-LDCCRM-Models-Answer.html#method_jsonSerialize" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">127</span>
</aside>
<p class="phpdocumentor-summary">Serialize this object to an array</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__name">jsonSerialize</span><span>(</span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span></code>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">array&lt;string|int, mixed&gt;</span>
&mdash;
</article>
<article
class="phpdocumentor-element
-method
-public
-static "
>
<h4 class="phpdocumentor-element__name" id="method_setQuestionAnswers">
setQuestionAnswers()
<a href="classes/LDC-LDCCRM-Models-Answer.html#method_setQuestionAnswers" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/Models/Answer.php"><a href="files/src-models-answer.html"><abbr title="src/Models/Answer.php">Answer.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">96</span>
</aside>
<p class="phpdocumentor-summary">Set unanswered question for a specific customer</p>
<code class="phpdocumentor-code phpdocumentor-signature ">
<span class="phpdocumentor-signature__visibility">public</span>
<span class="phpdocumentor-signature__static">static</span> <span class="phpdocumentor-signature__name">setQuestionAnswers</span><span>(</span><span class="phpdocumentor-signature__argument"><span class="phpdocumentor-signature__argument__return-type">string&nbsp;</span><span class="phpdocumentor-signature__argument__name">$hashcode</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">int&nbsp;</span><span class="phpdocumentor-signature__argument__name">$questionId</span></span><span class="phpdocumentor-signature__argument"><span>, </span><span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;&nbsp;</span><span class="phpdocumentor-signature__argument__name">$answersId</span></span><span>)</span><span> : </span><span class="phpdocumentor-signature__response_type">bool</span></code>
<h5 class="phpdocumentor-argument-list__heading">Parameters</h5>
<dl class="phpdocumentor-argument-list">
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$hashcode</span>
: <span class="phpdocumentor-signature__argument__return-type">string</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
<section class="phpdocumentor-description"><p>The customer hashcode.</p>
</section>
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$questionId</span>
: <span class="phpdocumentor-signature__argument__return-type">int</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
<section class="phpdocumentor-description"><p>The question id.</p>
</section>
</dd>
<dt class="phpdocumentor-argument-list__entry">
<span class="phpdocumentor-signature__argument__name">$answersId</span>
: <span class="phpdocumentor-signature__argument__return-type">array&lt;string|int, mixed&gt;</span>
</dt>
<dd class="phpdocumentor-argument-list__definition">
<section class="phpdocumentor-description"><p>An array with answers id.</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-tag-list__heading" id="tags">
Tags
<a href="#tags" class="headerlink"><i class="fas fa-link"></i></a>
</h5>
<dl class="phpdocumentor-tag-list">
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-ValidationException.html"><abbr title="\LDC\LDCCRM\Exceptions\ValidationException">ValidationException</abbr></a></span>
<section class="phpdocumentor-description"><p>If a hashcode is not a valid UUID.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><abbr title="\LDC\LDCCRM\Models\LDC\LDCCRM\Exceptions\ValidationException">ValidationException</abbr></span>
<section class="phpdocumentor-description"><p>If any of the provided ids are invalid.</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-ApiErrorException.html"><abbr title="\LDC\LDCCRM\Exceptions\ApiErrorException">ApiErrorException</abbr></a></span>
<section class="phpdocumentor-description"><p>If any error \LDC\LDCCRM\Enums\ApiError occurs.
Possibles are : - validationFailed, If given ids are wrong(CRM side).</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">throws</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<span class="phpdocumentor-tag-link"><a href="classes/LDC-LDCCRM-Exceptions-CrmException.html"><abbr title="\LDC\LDCCRM\Exceptions\CrmException">CrmException</abbr></a></span>
<section class="phpdocumentor-description"><p>If an error occurs on server side or on getting response.</p>
</section>
</dd>
</dl>
<h5 class="phpdocumentor-return-value__heading">Return values</h5>
<span class="phpdocumentor-signature__response_type">bool</span>
&mdash;
<section class="phpdocumentor-description"><p>true if succeeded</p>
</section>
</article>
</section>
<script type="text/javascript">
function loadExternalCodeSnippets(line) {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach((pre) => {
var src = pre.getAttribute('data-src').replace( /\\/g, '/');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist, is empty or trying to view from localhost';
}
}
};
xhr.send(null);
});
}
var modals = document.querySelectorAll("[data-modal]");
modals.forEach(function (trigger) {
trigger.addEventListener("click", function (event) {
//event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippets(trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
</script>
</article>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
</div>
<a href="classes/LDC-LDCCRM-Models-Answer.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more