Skip to content

Commit 1ea9ac8

Browse files
authored
DB prefix & model connexion now supported
* Take into account model prefix * Take into account model with connexion different than default one * Proper error exception for bad formated laravel rules
1 parent 27ddbfd commit 1ea9ac8

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

src/Definitions/DefinitionGenerator.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,23 @@ function generateSchemas(): array {
9494
->all();
9595

9696
$table = $obj->getTable();
97-
$list = Schema::getColumnListing($table);
97+
$list = Schema::connection($obj->getConnectionName())->getColumnListing($table);
9898
$list = array_diff($list, $obj->getHidden());
9999

100100
$properties = [];
101101
$required = [];
102102

103-
foreach ($list as $item) {
103+
/**
104+
* @var \Illuminate\Database\Connection
105+
*/
106+
$conn = $obj->getConnection();
107+
$prefix = $conn->getTablePrefix();
104108

105-
/**
106-
* @var object
107-
*/
108-
$conn = DB::connection();
109+
if ($prefix !== '') {
110+
$table = $prefix . $table;
111+
}
112+
113+
foreach ($list as $item) {
109114

110115
/**
111116
* @var \Doctrine\DBAL\Schema\Column

src/Parameters/BodyParametersGenerator.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
<?php namespace Mezatsong\SwaggerDocs\Parameters;
22

3+
use Exception;
34
use Illuminate\Support\Arr;
45
use Mezatsong\SwaggerDocs\Parameters\Traits\GeneratesFromRules;
56
use Mezatsong\SwaggerDocs\Parameters\Interfaces\ParametersGenerator;
7+
use TypeError;
68

79
/**
810
* Class BodyParametersGenerator
@@ -42,12 +44,17 @@ public function getParameters(): array {
4244
$schema = [];
4345

4446
foreach ($this->rules as $parameter => $rule) {
45-
$parameterRules = $this->splitRules($rule);
46-
$nameTokens = explode('.', $parameter);
47-
$this->addToProperties($properties, $nameTokens, $parameterRules);
48-
49-
if ($this->isParameterRequired($parameterRules)) {
50-
$required[] = $parameter;
47+
try {
48+
$parameterRules = $this->splitRules($rule);
49+
$nameTokens = explode('.', $parameter);
50+
$this->addToProperties($properties, $nameTokens, $parameterRules);
51+
52+
if ($this->isParameterRequired($parameterRules)) {
53+
$required[] = $parameter;
54+
}
55+
} catch (TypeError $e) {
56+
$ruleStr = json_encode($rule);
57+
throw new Exception("Rule `$parameter => $ruleStr` is not well formated", 0, $e);
5158
}
5259
}
5360

@@ -159,3 +166,4 @@ protected function createNewPropertyObject(string $type, array $rules): array {
159166
return $propertyObject;
160167
}
161168
}
169+

0 commit comments

Comments
 (0)