diff --git a/lib/lib.go b/lib/lib.go
index 617e84e..41e9aba 100644
--- a/lib/lib.go
+++ b/lib/lib.go
@@ -55,9 +55,9 @@ func Map_args(array ...string) map[string]string {
return result
}
-// func Map_of_string_to_josn(array map[string]string) string {
-// jData, err := json.Marshal(array)
-// lib.Handle_err(err, lib.Map_args())
+func Map_of_string_to_josn(array map[string]string) string {
+ jData, err := json.Marshal(array)
+ Handle_err(err, Map_args())
-// return string(jData)
-// }
+ return string(jData)
+}
diff --git a/web/api/apis b/web/api/apis
index 009e9c1..a495505 100644
--- a/web/api/apis
+++ b/web/api/apis
@@ -1,5 +1,5 @@
{
"main":{"body":"message"},
- "sec":"/api/sec",
- "thi":"/api/thi"
+ "sec":"second",
+ "thi":"third"
}
\ No newline at end of file
diff --git a/web/manager/manager.go b/web/manager/manager.go
index 68f6bc9..2e63525 100644
--- a/web/manager/manager.go
+++ b/web/manager/manager.go
@@ -15,33 +15,24 @@ func Add_api(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, "good")
}
-func Show_apis(w http.ResponseWriter, req *http.Request) {
- apis := api.Apis()
- eval := "
"
- for tag, varr := range apis {
- eval_group := ""
- eval_group += fmt.Sprintf("%v", varr)
- eval_group += "-"
- eval_group += tag
- eval_group += "
"
- eval += render.Template_of_tag(eval_group, "text")
- }
- eval += "
"
-
- fmt.Fprint(w, render.Template_with_string(eval))
-}
-
func Render_apis(w http.ResponseWriter, req *http.Request) {
apis := api.Apis()
- eval := ""
+ eval := ""
+ i := 0
for tag, varr := range apis {
eval_group := ""
eval_group += tag
- eval_group += "-"
+ eval_group += "
-"
eval_group += fmt.Sprintf("%v", varr)
eval_group += "
"
- eval += eval_group
+
+ eval += render.Put_vars_to_template(
+ render.Template_of_tag("li"),
+ lib.Map_args("li_id", fmt.Sprint(i), "content", eval_group))
+ i++
}
- eval += "
"
- fmt.Fprint(w, render.Put_vars_to_template(render.Template_with_part("json_out"), lib.Map_args("json_code", eval)))
+ fmt.Fprint(w,
+ render.Put_vars_to_template(
+ render.Template_of_part("json_out_as_list"),
+ lib.Map_args("li_from_json_code", eval)))
}
diff --git a/web/render/render.go b/web/render/render.go
index 716e38a..5988a5a 100644
--- a/web/render/render.go
+++ b/web/render/render.go
@@ -1,87 +1,77 @@
package render
+// light renderer package that used for generating html templates
+// loading the template files from views folder
+// using part folder as template parts
+// using tag folder as templates of html tags
+
import (
"api_manager/lib"
- "fmt"
"os"
"strings"
)
+// loading default head and foot template and adding custom string in the middle
func Template_with_string(str string) string {
+ // loading head.html and foot.html
head, err := os.ReadFile("web/views/head.html")
foot, err := os.ReadFile("web/views/foot.html")
+ // handling error by lib function and exiting if it occures
+ lib.Handle_err(err, lib.Map_args("die", "1"))
+
+ // combining html parts
template := "" + string(head) + str + string(foot)
- fmt.Println(err)
return template
}
+// loading default head and foot template and adding html template from file in the middle
func Template_with_page(str string) string {
+ // loading head.html and foot.html
head, err := os.ReadFile("web/views/head.html")
- lib.Handle_err(err, lib.Map_args("die", "1"))
foot, err := os.ReadFile("web/views/foot.html")
- lib.Handle_err(err, lib.Map_args("die", "1"))
+ // loading custom html template file
page, err := os.ReadFile("web/views/" + str + ".html")
+ // handling error by lib function and exiting if it occures
lib.Handle_err(err, lib.Map_args("die", "1"))
- template := "" + string(head) + string(page) + string(foot)
- fmt.Println(err)
-
- return template
-}
-
-func Template_with_page_vars(str string, tags_and_variables map[string]string) string {
- head, err := os.ReadFile("web/views/head.html")
- lib.Handle_err(err, lib.Map_args("die", "1"))
- foot, err := os.ReadFile("web/views/foot.html")
- lib.Handle_err(err, lib.Map_args("die", "1"))
-
- page := ""
- for tag, varr := range tags_and_variables {
- page = templating(str, tag, varr)
- }
+ // combining html parts
template := "" + string(head) + string(page) + string(foot)
return template
}
-func Template_of_tag(str string, html_tag string) string {
+// loading default head and foot template and adding html template from tag file in the middle
+func Template_of_tag(html_tag string) string {
+ // loading head.html and foot.html
tag, err := os.ReadFile("web/views/tag/" + html_tag + ".html")
- result := strings.Replace(string(tag), "{{fnr}}", str, 1)
+ // handling error by lib function and exiting if it occures
lib.Handle_err(err, lib.Map_args("die", "1"))
- return result
+ return string(tag)
}
-func Template_with_part(part_name string) string {
+// loading default head and foot template and adding html template from part file in the middle
+func Template_of_part(part_name string) string {
+ // loading head.html and foot.html
head, err := os.ReadFile("web/views/head.html")
- lib.Handle_err(err, lib.Map_args("die", "1"))
page, err := os.ReadFile("web/views/part/" + part_name + ".html")
- lib.Handle_err(err, lib.Map_args("die", "1"))
foot, err := os.ReadFile("web/views/foot.html")
+ // handling error by lib function and exiting if it occures
lib.Handle_err(err, lib.Map_args("die", "1"))
+ // combining html parts
template := "" + string(head) + string(page) + string(foot)
- fmt.Println(err)
return template
}
-func templating(file string, tag string, variable string) string {
- content, err := os.ReadFile("web/views/" + file + ".html")
- lib.Handle_err(err, lib.Map_args("die", "1"))
-
- find_tag := `{{` + tag + `}}`
-
- template_result := strings.Replace(string(content), find_tag, variable, 1)
-
- return template_result
-}
-
+// getting template string and replacing templating tags with variables
func Put_vars_to_template(template string, vars map[string]string) string {
- for key, value := range vars {
- fmt.Print(key, value)
- template = strings.Replace(template, "{{"+key+"}}", value, 1)
+ // run through vars array gettin key as tag to find in template and value as value to replace it with
+ for tag, value := range vars {
+ // find the tag and replace it with value
+ template = strings.Replace(template, "{{"+tag+"}}", value, 1)
}
return template
diff --git a/web/views/part/json_out.html b/web/views/part/json_out.html
deleted file mode 100644
index 0ea5a0f..0000000
--- a/web/views/part/json_out.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
- {{json_code}}
-
\ No newline at end of file
diff --git a/web/views/part/json_out_as_list.html b/web/views/part/json_out_as_list.html
new file mode 100644
index 0000000..d28d26c
--- /dev/null
+++ b/web/views/part/json_out_as_list.html
@@ -0,0 +1,3 @@
+
+ {{li_from_json_code}}
+
\ No newline at end of file
diff --git a/web/views/main.html b/web/views/part/main.html
similarity index 100%
rename from web/views/main.html
rename to web/views/part/main.html
diff --git a/web/views/tag/li.html b/web/views/tag/li.html
new file mode 100644
index 0000000..3fc1b7a
--- /dev/null
+++ b/web/views/tag/li.html
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/web/web.go b/web/web.go
index 5099e61..f42b701 100644
--- a/web/web.go
+++ b/web/web.go
@@ -21,5 +21,5 @@ func Server() {
// wellcoming main web page
func main_page(w http.ResponseWriter, req *http.Request) {
templ := map[string]string{"welcome_message": "hello world! this is api server with easy web menagment"}
- fmt.Fprint(w, render.Template_with_page_vars("main", templ))
+ fmt.Fprint(w, render.Put_vars_to_template(render.Template_of_part("main"), templ))
}