Dingo\Blueprint\Blueprint::generateContentsFromResources PHP Method

generateContentsFromResources() protected method

Generate the documentation contents from the resources collection.
protected generateContentsFromResources ( Collection $resources, string $name ) : string
$resources Illuminate\Support\Collection
$name string
return string
    protected function generateContentsFromResources(Collection $resources, $name)
    {
        $contents = '';
        $contents .= $this->getFormat();
        $contents .= $this->line(2);
        $contents .= sprintf('# %s', $name);
        $contents .= $this->line(2);
        $resources->each(function ($resource) use(&$contents) {
            if ($resource->getActions()->isEmpty()) {
                return;
            }
            $contents .= $resource->getDefinition();
            if ($description = $resource->getDescription()) {
                $contents .= $this->line();
                $contents .= $description;
            }
            if (($parameters = $resource->getParameters()) && !$parameters->isEmpty()) {
                $this->appendParameters($contents, $parameters);
            }
            $resource->getActions()->each(function ($action) use(&$contents, $resource) {
                $contents .= $this->line(2);
                $contents .= $action->getDefinition();
                if ($description = $action->getDescription()) {
                    $contents .= $this->line();
                    $contents .= $description;
                }
                if (($attributes = $action->getAttributes()) && !$attributes->isEmpty()) {
                    $this->appendAttributes($contents, $attributes);
                }
                if (($parameters = $action->getParameters()) && !$parameters->isEmpty()) {
                    $this->appendParameters($contents, $parameters);
                }
                if ($request = $action->getRequest()) {
                    $this->appendRequest($contents, $request, $resource);
                }
                if ($response = $action->getResponse()) {
                    $this->appendResponse($contents, $response, $resource);
                }
                if ($transaction = $action->getTransaction()) {
                    foreach ($transaction->value as $value) {
                        if ($value instanceof Annotation\Request) {
                            $this->appendRequest($contents, $value, $resource);
                        } elseif ($value instanceof Annotation\Response) {
                            $this->appendResponse($contents, $value, $resource);
                        } else {
                            throw new RuntimeException('Unsupported annotation type given in transaction.');
                        }
                    }
                }
            });
            $contents .= $this->line(2);
        });
        return stripslashes(trim($contents));
    }