2019-04-27 13:57:39 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Traits;
|
|
|
|
|
|
|
|
use App\Models\Zone;
|
|
|
|
|
|
|
|
trait ParseNodes
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Parse a seenby or path list and return node models
|
|
|
|
*/
|
|
|
|
protected function parse_nodes(Zone $zone,string $line,$create=TRUE)
|
|
|
|
{
|
|
|
|
$net = FALSE;
|
|
|
|
$result = collect();
|
2019-05-06 12:29:29 +00:00
|
|
|
|
2019-04-27 13:57:39 +00:00
|
|
|
foreach (explode(' ',$line) as $node)
|
|
|
|
{
|
|
|
|
if (preg_match('#/#',$node))
|
|
|
|
{
|
|
|
|
list($net,$node) = preg_split('#/#',$node);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (! $net)
|
|
|
|
throw new \Exception('Missing Net?',$node);
|
|
|
|
|
2019-05-06 12:29:29 +00:00
|
|
|
$result->push($this->get_node($zone->id,$net,$node,0,$create));
|
2019-04-27 13:57:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
}
|