Skip to content

Commit 5c9490b

Browse files
committed
broken legs
1 parent 135bfbe commit 5c9490b

File tree

13 files changed

+143
-5
lines changed

13 files changed

+143
-5
lines changed

src/CodeBuilder/PHPCodeBuilder.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Yaoi\Schema\CodeBuilder\Templates\ClassStructurePhp;
66
use Yaoi\Schema\Exception;
7+
use Yaoi\Schema\Logic\AllOf;
78
use Yaoi\Schema\ObjectFlavour\Properties;
89
use Yaoi\Schema\Ref;
910
use Yaoi\Schema\Schema;
@@ -44,10 +45,18 @@ public function getTypeHint(Schema $schema)
4445

4546
public function getPhpDocType(Schema $schema)
4647
{
48+
if (!$contraints = $schema->getConstraints()) {
49+
return '';
50+
}
51+
4752
if ($ref = Ref::getFromSchema($schema)) {
4853
return $this->getPhpDocType($ref->constraintSchema);
4954
}
5055

56+
if ($allOf = AllOf::getFromSchema($schema)) {
57+
return 'bitch';
58+
}
59+
5160
switch (true) {
5261
case StringType::getFromSchema($schema):
5362
return 'string';
@@ -64,7 +73,9 @@ public function getPhpDocType(Schema $schema)
6473
return 'object';
6574
}
6675

67-
//throw new Exception("Please im");
76+
print_r($schema->getPath());
77+
print_r($schema->getSchemaData());
78+
throw new Exception("Please im");
6879
return '';
6980
}
7081

src/Logic/AllOf.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ public function __construct($schemaValue, Schema $ownerSchema = null)
3232

3333
public function import($data)
3434
{
35+
foreach ($this->composition as $item) {
36+
37+
}
3538
// @todo implement
3639
return $data;
3740
}

src/NumberFlavour/Minimum.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,8 @@
66

77
class Minimum extends AbstractFlavour
88
{
9-
9+
public static function getSchemaKey()
10+
{
11+
return 'minimum';
12+
}
1013
}

src/Schema.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@
66
use Yaoi\Schema\ArrayFlavour\Items;
77
use Yaoi\Schema\ArrayFlavour\MinItems;
88
use Yaoi\Schema\Logic\AllOf;
9+
use Yaoi\Schema\NumberFlavour\Minimum;
910
use Yaoi\Schema\ObjectFlavour\AdditionalProperties;
1011
use Yaoi\Schema\ObjectFlavour\Properties;
1112
use Yaoi\Schema\StringFlavour\Format;
13+
use Yaoi\Schema\StringFlavour\MaxLength;
14+
use Yaoi\Schema\StringFlavour\MinLength;
1215

1316
/**
1417
* @method static Schema create($schemaValue = null, Schema $parentSchema = null)
@@ -176,6 +179,9 @@ public static function initConstraintKeys()
176179
AllOf::getSchemaKey() => AllOf::className(),
177180
MinItems::getSchemaKey() => MinItems::className(),
178181
Format::getSchemaKey() => Format::className(),
182+
Minimum::getSchemaKey() => Minimum::className(),
183+
MinLength::getSchemaKey() => MinLength::className(),
184+
MaxLength::getSchemaKey() => MaxLength::className(),
179185
);
180186

181187
}

src/StringFlavour/Format.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,16 @@
66

77
class Format extends AbstractFlavour
88
{
9+
const FORMAT_URI = 'uri';
10+
911
public static function getSchemaKey()
1012
{
1113
return 'format';
1214
}
15+
16+
public function validate($data)
17+
{
18+
19+
20+
}
1321
}

src/StringFlavour/FormatDateTime.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Yaoi\Schema\StringFlavour;
4+
5+
6+
use Yaoi\Schema\Exception;
7+
8+
class FormatDateTime
9+
{
10+
const REGEX = '/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(\.\d+)?(Z|([+-]\d{2}):?(\d{2}))/';
11+
12+
public static function validate($data)
13+
{
14+
if (!preg_match(self::REGEX, strtoupper($data), $matches)) {
15+
throw new Exception('Invalid date-time', Exception::INVALID_VALUE);
16+
}
17+
}
18+
}

src/StringFlavour/FormatUri.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace Yaoi\Schema\StringFlavour;
4+
5+
6+
class FormatUri
7+
{
8+
public static function validate($data)
9+
{
10+
11+
}
12+
13+
}

src/StringFlavour/MaxLength.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
namespace Yaoi\Schema\StringFlavour;
4+
5+
6+
use Yaoi\Schema\AbstractFlavour;
7+
8+
class MaxLength extends AbstractFlavour
9+
{
10+
public static function getSchemaKey()
11+
{
12+
return 'maxLength';
13+
}
14+
15+
16+
}

src/StringFlavour/MinLength.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Yaoi\Schema\StringFlavour;
4+
5+
6+
use Yaoi\Schema\AbstractFlavour;
7+
8+
class MinLength extends AbstractFlavour
9+
{
10+
public static function getSchemaKey()
11+
{
12+
return 'minLength';
13+
}
14+
}

src/StringFlavour/Pattern.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Yaoi\Schema\StringFlavour;
4+
5+
6+
use Yaoi\Schema\AbstractFlavour;
7+
8+
class Pattern extends AbstractFlavour
9+
{
10+
public static function getSchemaKey()
11+
{
12+
return 'pattern';
13+
}
14+
}

0 commit comments

Comments
 (0)