From 37e2bc4f55eed597cf61b9513df097d1850691e6 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Mon, 13 Dec 2021 21:15:46 +0100 Subject: Add composer and routes --- src/App.php | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/App.php (limited to 'src/App.php') diff --git a/src/App.php b/src/App.php new file mode 100644 index 0000000..c0df751 --- /dev/null +++ b/src/App.php @@ -0,0 +1,79 @@ + '', + ]; + $contentRoot = dirname(__DIR__) . '/content'; + + $method = $request->getMethod(); + $path = $request->getPathInfo(); + + // GET + if ($method == 'GET') { + if (str_ends_with($path, '/fields')) { + $content['data'] = Toml::parseFile($contentRoot . $path . '/_fields.toml'); + } + else { + $content['data'] = Toml::parseFile($contentRoot . $path . '.toml'); + } + } + + // POST + else if ($method == 'POST') { + if (str_ends_with($path, 'submit')) { + $formPath = $contentRoot . str_replace('/submit', '', $path); + + // build fields + $fields = $this->buildFields($formPath); + + foreach ($fields as $field) { + if ($field['required'] ?? false) { + $content['error'] = 'REQUIRED!'; + } + } + + $content['data'] = $fields; + $content['POST'] = $_POST; + } + } + + $response->headers->set('Content-Type', 'application/json'); + $response->setContent(json_encode($content)); + $response->send(); + } + + /** + * @param string $formPath + */ + public function buildFields($formPath) + { + $fields = Toml::parseFile($formPath . '/fields/_fields.toml')['field'] ?? []; + foreach ($fields as $key => $field) { + $field = array_merge($field, Toml::parseFile($formPath . '/fields/' . $field['file'])); + $fields[$key] = $field; + } + + return $fields; + } +} + -- cgit v1.2.3