From da4110a47bbe76b5cf133a3a69395d0338e68975 Mon Sep 17 00:00:00 2001 From: "pakintada@gmail.com" Date: Thu, 21 Sep 2023 13:52:00 +0700 Subject: [PATCH] add `requester` to api --- .../app/features/merge/merge.component.html | 4 ++-- .../src/app/features/merge/merge.component.ts | 17 ++++++++++---- server/python_api/merge_recipe.py | 17 +++++++++++++- server/server.go | 22 +++++++++---------- 4 files changed, 41 insertions(+), 19 deletions(-) diff --git a/client/src/app/features/merge/merge.component.html b/client/src/app/features/merge/merge.component.html index 2aece9f..54b864f 100644 --- a/client/src/app/features/merge/merge.component.html +++ b/client/src/app/features/merge/merge.component.html @@ -36,13 +36,13 @@
- +
- +
diff --git a/client/src/app/features/merge/merge.component.ts b/client/src/app/features/merge/merge.component.ts index dee98d7..3dcaa22 100644 --- a/client/src/app/features/merge/merge.component.ts +++ b/client/src/app/features/merge/merge.component.ts @@ -25,12 +25,22 @@ export class MergeComponent { changelog_path: "" }); + mergeLogs: Map | void | undefined constructor( private targets: MergeServiceService, private formBuilder: FormBuilder, private httpClient: HttpClient, - ){} + ){ + // Default fetching logs + + // fetch html + // this.fetchLogsToDisplay("", true, false); + // // fetch log file + // this.fetchLogsToDisplay("", false, false); + // // fetch json + // this.mergeLogs = this.fetchLogsToDisplay("", false, true); + } private isException(value: any){ return this.exceptionValues.includes(value) @@ -46,7 +56,6 @@ export class MergeComponent { this.targets.changelog_path = this.mergeForm.value.changelog_path!; // TODO: Fetch merge. Modify this to websocket - let mergeLogs; this.httpClient.post(environment.api+"/merge", { master: this.targets.master_version, dev: this.targets.dev_version, @@ -64,14 +73,14 @@ export class MergeComponent { // fetch log file this.fetchLogsToDisplay("", false, false); // fetch json - mergeLogs = this.fetchLogsToDisplay("", false, true); + this.mergeLogs = this.fetchLogsToDisplay("", false, true); } } }, }) } - fetchLogsToDisplay(query: string, isDisplayOnly: boolean, requestJson: boolean){ + fetchLogsToDisplay(query: string, isDisplayOnly: boolean, requestJson: boolean) : Map | void{ let additionalParams:string = "?query="; if(query != ""){ additionalParams += query diff --git a/server/python_api/merge_recipe.py b/server/python_api/merge_recipe.py index 83f6101..6b74d3c 100644 --- a/server/python_api/merge_recipe.py +++ b/server/python_api/merge_recipe.py @@ -117,6 +117,10 @@ def merge(args): global debug debug = args[4] if args[4] != None else False + if len(args) > 5: + global requester + requester = args[5] if args[5] != None else "" + # if (os.path.exists(master_path) == False) and str(master_path).isdigit(): master_path = CoffeeRecipeDirectory + "/coffeethai02_" + str(master_path) + ".json" @@ -135,6 +139,17 @@ def merge(args): print("Master file size => ",os.stat(master_path).st_size) print("Dev file size => ",os.stat(dev_path).st_size) # + + # Requester + events_json.append(create_map( + events_action="REQUESTER", + log="GetRequestFrom", + additional=[{ + "timestamp": GetDateTimeString(), + "requester": requester + }])) + events.append(GetDateTimeString()+"\t[REQUEST]\t\tget request from \""+requester+"\"\n") + events_json.append(create_map(events_action="MERGE", log=devName.split("/")[-1]+" into "+masterName.split("/")[-1])) events.append(GetDateTimeString()+"\t[MERGE]\t\tMerging "+devName.split("/")[-1]+" into "+masterName.split("/")[-1]+"\n") # print(GetDateTimeString()+"\tMerging "+dev_file.name.split("/")[-1]+" into "+master_file.name.split("/")[-1]+"\n") @@ -187,7 +202,7 @@ def merge(args): # log json file - if os.stat(file_path+".json").st_size == 0: + if not os.path.exists(file_path+".json") or os.stat(file_path+".json").st_size == 0: with open(file_path+".json", "w+",encoding="utf-8") as outlogfile: json.dump({"logs"+GetDateTimeString()+"*": events_json}, outlogfile, indent=2, ensure_ascii=False) else: diff --git a/server/server.go b/server/server.go index 1f9da85..0cf1e11 100644 --- a/server/server.go +++ b/server/server.go @@ -103,7 +103,7 @@ func (s *Server) createHandler() { } // verify token by request to google api - res, err := http.Get("https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=" + url.QueryEscape(cookie.Value)) + res, err := http.Get("https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=" + url.QueryEscape(cookie.Value)) if err != nil { w.WriteHeader(http.StatusUnauthorized) @@ -112,11 +112,12 @@ func (s *Server) createHandler() { defer res.Body.Close() + log.Println("res: ", res) var tokenInfo map[string]interface{} json.NewDecoder(res.Body).Decode(&tokenInfo) context := context.WithValue(r.Context(), "user", tokenInfo) - + log.Println("decode res: ", tokenInfo["email"]) next.ServeHTTP(w, r.WithContext(context)) }) }) @@ -152,13 +153,9 @@ func (s *Server) createHandler() { master_path := repo_path + master_version + ".json" dev_path := repo_path + dev_version + ".json" - // // output path - // output_path := "" - - // // changelog path - // changelog_path := "" - - // TODO: Call merge api if found + // Get who's requesting + user := r.Context().Value("user").(map[string]interface{}) + log.Println("User: ", user["email"].(string)) // lookup for python exec py_exec, err := exec.LookPath("python") @@ -176,7 +173,7 @@ func (s *Server) createHandler() { } defer merge_api.Close() log.Println("Locate python api", merge_api.Name()) - cmd := exec.Command(py_exec, merge_api.Name(), "merge", master_path, dev_path, output_path, changelog_path) + cmd := exec.Command(py_exec, merge_api.Name(), "merge", master_path, dev_path, output_path, changelog_path, "", user["email"].(string)) log.Println("Run merge command", cmd) out, err := cmd.CombinedOutput() @@ -206,12 +203,13 @@ func (s *Server) createHandler() { if rj, ok := postRequest["requestJson"].(bool); ok { if rj { file_ext = ".json" + } else if !rb && !rj { + file_ext = ".log" } - } else if !rb { - file_ext = ".log" } } + log.Println("Log file ext: ", file_ext) changelog_path := "cofffeemachineConfig/changelog/testlog" + file_ext logFile, err := os.Open(changelog_path) if err != nil {