<?php
namespace nur\ldap\io;

use nur\A;
use nur\ldap\LdapObject;
use nur\yaml;

/**
 * Class YamlWriter
 */
class YamlWriter extends LdapWriter {
  function write(?LdapObject $object, ?array $names=null): self {
    if ($object !== null) {
      if ($names === null) $names = $object->keys();
      if (!in_array("dn", $names)) {
        A::insert($names, 0, "dn");
      }
      $values = [];
      foreach ($names as $name) {
        $value = $object->all($name);
        if (count($value) == 1) $value = $value[0];
        $values[$name] = $value;
      }
      $writer = $this->writer;
      $writer->wnl(yaml::with($values));
    }
    return $this;
  }
}