Skip to content

Commit

Permalink
(feat) bring back types
Browse files Browse the repository at this point in the history
  • Loading branch information
kevincobain2000 committed May 24, 2024
1 parent fd8b056 commit 7eb1a7d
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 26 deletions.
59 changes: 38 additions & 21 deletions app/frontend/src/components/ReadmeDashboard.astro
Original file line number Diff line number Diff line change
Expand Up @@ -8,62 +8,62 @@ const baseURL = import.meta.env.PUBLIC_BASE_URL;
class="hidden select-none lg:block lg:w-1/6 bg-slate-800 p-4 mt-20 rounded-lg sticky top-5 self-start"
>
<!-- Sidebar content here -->
<p class="text-lg font-semibold pb-6">Contents</p>
<ul>
<li class="pt-2">
<p class="text-lg font-semibold">Contents</p>
<ul class="mt-2">
<li class="pt-1">
<a
href="#quick-docs"
class="text-violet-400 font-semibold hover:text-violet-300"
><span class="text-slate-500">#</span> Quick Docs</a
>
</li>
<li class="pt-2">
<li class="pt-1">
<a
href="#badges"
class="text-violet-400 font-semibold hover:text-violet-300"
><span class="text-slate-500">#</span> Badges</a
>
</li>
<li class="pt-2">
<li class="pt-1">
<a
href="#mini-charts"
class="text-violet-400 font-semibold hover:text-violet-300"
><span class="text-slate-500">#</span> Mini Charts</a
>
</li>
<li class="pt-2">
<li class="pt-1">
<a
href="#full-charts"
class="text-violet-400 font-semibold hover:text-violet-300"
><span class="text-slate-500">#</span> Full Charts</a
>
</li>
<li class="pt-2">
<li class="pt-1">
<a
href="#comparison-charts-types"
class="text-violet-400 font-semibold hover:text-violet-300"
><span class="text-slate-500">#</span> Comparison Charts for Types</a
><span class="text-slate-500">#</span> Charts for Types</a
>
</li>
<li class="pt-2">
<li class="pt-1">
<a
href="#comparison-charts-branches"
class="text-violet-400 font-semibold hover:text-violet-300"
><span class="text-slate-500">#</span> Comparison Charts for Branches</a
><span class="text-slate-500">#</span> Charts for Branches</a
>
</li>
<li class="pt-2">
<li class="pt-1">
<a
href="#comparison-charts-users"
class="text-violet-400 font-semibold hover:text-violet-300"
><span class="text-slate-500">#</span> Comparison Charts for Users</a
><span class="text-slate-500">#</span> Charts for Users</a
>
</li>
</ul>
<hr class="w-24 h-0.5 mx-auto bg-gray-500 border-0 rounded my-10" />
<form class="text-left text-black select-none">
<label for="countries" class="block mt-2 text-slate-400 text-sm"
>Change branch. Total <span x-text="branches.length"></span>.</label
<label for="countries" class="block mt-2 text-slate-500 text-sm"
>Switch from <span x-text="branches.length"></span> branches</label
>

<select
Expand All @@ -88,6 +88,9 @@ const baseURL = import.meta.env.PUBLIC_BASE_URL;
id="org-repo-name"
>
</p>
<p class="text-green-600 font-mono mt-3 font-bold text-center text-xl select-none">
<span class="text-slate- font-semibold select-none" x-text="branch"></span>
</p>
<hr class="w-48 h-1 mx-auto bg-gray-500 border-0 rounded my-10" />
<p
class="text-center font-mono text-2xl text-slate-400 font-bold select-none"
Expand Down Expand Up @@ -177,19 +180,33 @@ const baseURL = import.meta.env.PUBLIC_BASE_URL;
>
</tr>
<tr>
<th class="text-slate-400 font-mono text-sm">&branch</th>
<th class="text-slate-400 font-mono text-sm">=</th>
<td class="font-thin text-sm font-mono"
<th class="pt-2 text-slate-400 font-mono text-sm">&branch</th>
<th class="pt-2 text-slate-400 font-mono text-sm">=</th>
<td class="pt-2 font-thin text-sm font-mono"
><code x-text="branch"></code></td
>
</tr>
<tr>
<th class="text-slate-400 font-mono text-sm">&type</th>
<th class="text-slate-500 font-thin font-mono text-sm">&branches</th>
<th class="text-slate-400 font-mono text-sm">=</th>
<td class="font-thin text-sm font-mono"
<td class="text-slate-500 font-thin text-sm font-mono"
><code x-text="branches[0]"></code>,<code x-text="branches[1]"></code>...</td
>
</tr>
<tr>
<th class="pt-2 text-slate-400 font-mono text-sm">&type</th>
<th class="pt-2 text-slate-400 font-mono text-sm">=</th>
<td class="pt-2 font-thin text-sm font-mono"
><code x-text="types[0].name"></code></td
>
</tr>
<tr>
<th class="text-slate-500 font-thin font-mono text-sm">&types</th>
<th class="text-slate-400 font-mono text-sm">=</th>
<td class="text-slate-500 font-thin text-sm font-mono"
><code x-text="types[0].name"></code>,<code x-text="types[1].name"></code>...</td
>
</tr>
</tbody>
</table>
<h3 class="font-bold text-slate-300 pt-3 pb-1">Charts</h3>
Expand Down Expand Up @@ -367,15 +384,15 @@ const baseURL = import.meta.env.PUBLIC_BASE_URL;
<div class="pb-2 select-none flex justify-center items-center">
<img
is:raw
:src="`//${url}/chart?org=${org}&repo=${repo}&branch=${branch}&type=${ts.map(t => t.name).join(',')}&theme=dark`"
:src="`//${url}/chart?org=${org}&repo=${repo}&branch=${branch}&types=${ts.map(t => t.name).join(',')}&theme=dark`"
alt="Chart"
/>
</div>
<code class="font-mono text-slate-500 break-words text-sm">
![<span x-text="ts.map(t => t.name).join(',')"
></span>](https://<span x-text="url"></span>/chart?org=<span
x-text="org"></span>&repo=<span x-text="repo"
></span>&branch=<span x-text="branch"></span>&type=<span
></span>&branch=<span x-text="branch"></span>&types=<span
x-text="ts.map(t => t.name).join(',')"></span>)
</code>
</dd>
Expand Down
12 changes: 7 additions & 5 deletions app/pkg/chart_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ type ChartRequest struct {
Branch string `json:"branch" query:"branch" validate:"ascii" message:"ascii branch is required"`
User string `json:"user" query:"user" validate:"ascii,excludes=/" message:"ascii user is required"`
BaseBranch string `json:"base_branch" query:"base_branch" validate:"ascii" message:"ascii base_branch is required"`
Type string `json:"type" query:"type" validate:"required,ascii" message:"ascii type is required"`
Type string `json:"type" query:"type" validate:"ascii" message:"ascii type is required"`
Types string `json:"types" query:"types" validate:"ascii" message:"ascii types are required"`
Branches string `json:"branches" query:"branches" validate:"ascii" message:"ascii branches is required"`
Users string `json:"users" query:"users" validate:"ascii" message:"ascii users is required"`
PRNum int `json:"pr_num" query:"pr_num"`
Expand All @@ -46,17 +47,18 @@ func (h *ChartHandler) Get(c echo.Context) error {
return echo.NewHTTPError(http.StatusUnprocessableEntity, err)
}
defaults.SetDefaults(req)
TrimStringFields(req)

msgs, err := ValidateRequest(req)
if err != nil {
return echo.NewHTTPError(http.StatusUnprocessableEntity, msgs)
}

typesMany := []string{}
if strings.Contains(req.Type, ",") {
typesMany = strings.Split(req.Type, ",")
if req.Type == "" && req.Types == "" {
return echo.NewHTTPError(http.StatusUnprocessableEntity, "type or types are required")
}

typesMany := strings.Split(req.Types, ",")

if len(typesMany) > 1 {
if req.Branch == "" {
return echo.NewHTTPError(http.StatusUnprocessableEntity, "branch for types is required")
Expand Down
12 changes: 12 additions & 0 deletions app/pkg/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package pkg

import (
"hash/fnv"
"reflect"
"strconv"
"strings"
)
Expand Down Expand Up @@ -70,3 +71,14 @@ func MD5(s string) string {
u := h.Sum32()
return strconv.FormatUint(uint64(u), 16)
}

// TrimStringFields uses reflection to trim all string fields in a struct.
func TrimStringFields(v interface{}) {
val := reflect.ValueOf(v).Elem()
for i := 0; i < val.NumField(); i++ {
field := val.Field(i)
if field.Kind() == reflect.String {
field.SetString(strings.TrimSpace(field.String()))
}
}
}

0 comments on commit 7eb1a7d

Please sign in to comment.