diff --git a/src/actions.go b/src/actions.go index afa8a9a..8139ede 100644 --- a/src/actions.go +++ b/src/actions.go @@ -38,17 +38,26 @@ func createPackage(packageName string) { fmt.Printf("Verify the password for %s: ", packageName) ReadPassword(&pswV) if psw != pswV { - fmt.Printf("Passwords do not match\n") + fmt.Printf("Passwords do not match\n\r") return } fmt.Printf("Enter the repo for %s: ", packageName) fmt.Scanln(&repo) fmt.Printf("Enter the latest version for %s: ", packageName) fmt.Scanln(&version) + fmt.Println() jsonBody := []byte(fmt.Sprintf(`{"name": "%v", "psw": "%v", "repo": "%v", "latest": "%v"}`, packageName, psw, repo, version)) - _, err := sendRequest(http.MethodPost, URL, jsonBody) + req, err := sendRequest(http.MethodPost, URL, jsonBody) if err != nil { fmt.Println(err) + return + } + err = getMessage(req) + if err != nil { + fmt.Printf("Error: %v\n\r", err) + return + } else { + fmt.Printf("Done\n\r") } } @@ -64,19 +73,19 @@ func editPackage(packageName string) { var newPsw string var newPackageName string = packageName - fmt.Printf("Enter the password for %s: ", packageName) + fmt.Printf("\rEnter the password for %s: ", packageName) ReadPassword(&psw) newPsw = psw for true { clear() - fmt.Println("Choose what you want to modify") - fmt.Printf(" 1 -> package name: %s\n", newPackageName) - fmt.Printf(" 2 -> password: %s\n", newPsw) - fmt.Printf(" 3 -> repo: %s\n", repo) - fmt.Printf(" 4 -> latest version: %s\n", version) - fmt.Println("Type in 'quit'/'q'/'exit' to discard your changes") - fmt.Println("Type in anything else to confirm your changes") + fmt.Printf("Choose what you want to modify\n\r") + fmt.Printf(" 1 -> package name : %s\n\r", newPackageName) + fmt.Printf(" 2 -> password : %s\n\r", newPsw) + fmt.Printf(" 3 -> repo : %s\n\r", repo) + fmt.Printf(" 4 -> latest version: %s\n\r", version) + fmt.Printf("Type in 'quit'/'q'/'exit' to discard your changes\n\r") + fmt.Printf("Type in anything else to confirm your changes\n\r") var option string fmt.Print("\n> ") fmt.Scanln(&option) @@ -104,8 +113,15 @@ func editPackage(packageName string) { req, err := sendRequest(http.MethodPut, URL, jsonBody) if err != nil { fmt.Printf("Error while editing %s: %v", packageName, err) + return + } + err = getMessage(req) + if err != nil { + fmt.Printf("Error: %v\n\r", err) + return + } else { + fmt.Printf("Done\n\r") } - fmt.Printf(string(req.Body)) return } @@ -117,5 +133,16 @@ func deletePackage(packageName string) { var psw string ReadPassword(&psw) jsonBody := []byte(fmt.Sprintf(`{"name": "%s", "psw": "%v"}`, packageName, psw)) - sendRequest(http.MethodDelete, URL, jsonBody) + req, err := sendRequest(http.MethodDelete, URL, jsonBody) + if err != nil { + fmt.Println(err) + return + } + err = getMessage(req) + if err != nil { + fmt.Printf("Error: %v\n\r", err) + return + } else { + fmt.Printf("Done\n\r") + } } diff --git a/src/fetcher.go b/src/fetcher.go index 2e0f5db..6dc7e91 100644 --- a/src/fetcher.go +++ b/src/fetcher.go @@ -26,6 +26,10 @@ type PackageIndex struct { Message string `json:"message"` } +type Message struct { + Message string `json:"message"` +} + func sendRequest(method, url string, jsonBody []byte) (Request, error) { bodyReader := bytes.NewReader(jsonBody) req, err := http.NewRequest(method, url, bodyReader) @@ -62,3 +66,15 @@ func getPackage(packageName string) (PackageIndex, error) { } return pkgidx, nil } + +func getMessage(req Request) error { + var msg Message + err := json.Unmarshal(req.Body, &msg) + if err != nil { + return fmt.Errorf("JsonError: %v", err) + } + if msg.Message != "ok" { + return fmt.Errorf(msg.Message) + } + return nil +} diff --git a/src/utils.go b/src/utils.go index 7c99930..e91eb56 100644 --- a/src/utils.go +++ b/src/utils.go @@ -66,6 +66,8 @@ func ReadPassword(buff *string) error { fmt.Print("\033[1D \033[1D") *buff = string(*buff)[:len(*buff)-1] } + } else if b[0] == 3 { + os.Exit(0) } else { *buff += chr if safeChar == "off" {