diff --git a/cmd/cc-backend/main.go b/cmd/cc-backend/main.go index daf3ca9..8d39a25 100644 --- a/cmd/cc-backend/main.go +++ b/cmd/cc-backend/main.go @@ -295,12 +295,12 @@ func main() { } secured.Handle("/query", graphQLEndpoint) - // Send a searchId and then reply with a redirect to a user or job. + // Send a searchId and then reply with a redirect to a user or job. // IMPROVE HERE secured.HandleFunc("/search", func(rw http.ResponseWriter, r *http.Request) { if search := r.URL.Query().Get("searchId"); search != "" { job, username, err := api.JobRepository.FindJobOrUser(r.Context(), search) if err == repository.ErrNotFound { - http.Redirect(rw, r, "/monitoring/jobs/?jobId="+url.QueryEscape(search), http.StatusTemporaryRedirect) + http.Redirect(rw, r, "/monitoring/jobs/?jobId="+url.QueryEscape(search), http.StatusTemporaryRedirect) // Directly to table! -> Running Jobs probably return } else if err != nil { http.Error(rw, err.Error(), http.StatusInternalServerError) diff --git a/internal/repository/job.go b/internal/repository/job.go index d1b2af2..73b3517 100644 --- a/internal/repository/job.go +++ b/internal/repository/job.go @@ -360,9 +360,14 @@ func (r *JobRepository) Archive( var ErrNotFound = errors.New("no such job or user") -// FindJobOrUser returns a job database ID or a username if a job or user machtes the search term. +// FindJobOrUser returns a job database ID or a username if a job or user matches the search term. // As 0 is a valid job id, check if username is "" instead in order to check what machted. // If nothing matches the search, `ErrNotFound` is returned. + +// TO BE IMPROVED; SHOW ALL MATCHES (eg: multiple clusters with matching jobId) + Search by JobNAME +// Plan: Parent-Method: Solves Searchtag or, if no searchtag, tries to find by hierarical searchId +// Plan: Nested methods for jobid, jobname (?), username, project, tag [dependent on roles of user, do not forget api!] + func (r *JobRepository) FindJobOrUser(ctx context.Context, searchterm string) (job int64, username string, err error) { user := auth.GetUser(ctx) if id, err := strconv.Atoi(searchterm); err == nil {