remove orphan edges
This commit is contained in:
+38
-2
@@ -3,12 +3,16 @@
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Lucent\LucentException;
|
||||
use PDOException;
|
||||
use stdClass;
|
||||
|
||||
class EdgeRepo
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
public static function insert(Edge $edge): void
|
||||
public function insert(Edge $edge): void
|
||||
{
|
||||
try {
|
||||
DB::table("edges")->insert($edge->toDB());
|
||||
@@ -21,7 +25,7 @@ class EdgeRepo
|
||||
|
||||
}
|
||||
|
||||
public static function update(string $from, EdgeCollection $edges): void
|
||||
public function update(string $from, EdgeCollection $edges): void
|
||||
{
|
||||
$edgesDB = collect($edges)->map(fn($e) => $e->toDB())->toArray();
|
||||
DB::table("edges")->where("source", $from)->delete();
|
||||
@@ -29,4 +33,36 @@ class EdgeRepo
|
||||
}
|
||||
|
||||
|
||||
public function findAll(): EdgeCollection
|
||||
{
|
||||
$edges = DB::table("edges")->get();
|
||||
return new EdgeCollection(...$edges->map([$this, 'mapEdge'])->toArray());
|
||||
}
|
||||
|
||||
public function mapEdge(stdClass $edge): Edge
|
||||
{
|
||||
|
||||
return new Edge(
|
||||
source: $edge->source,
|
||||
target: $edge->target,
|
||||
sourceSchema: $edge->sourceSchema,
|
||||
targetSchema: $edge->targetSchema,
|
||||
field: $edge->field,
|
||||
rank: $edge->rank,
|
||||
depth: $edge->depth ?? 0
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
public function remove(Edge $edge): void
|
||||
{
|
||||
DB::table("edges")
|
||||
->where("source", $edge->source)
|
||||
->where("target", $edge->target)
|
||||
->where("sourceSchema", $edge->sourceSchema)
|
||||
->where("targetSchema", $edge->targetSchema)
|
||||
->where("field", $edge->field)
|
||||
->delete();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user