From d306d7b27ee1df60bf32f03b6160856e78d1b02c Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Mon, 14 Feb 2022 11:41:12 +0100 Subject: Expose list retrieval by returning a JSON string Signed-off-by: jwijenbergh --- src/server.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/server.go b/src/server.go index 37a8f62..e39f4c7 100644 --- a/src/server.go +++ b/src/server.go @@ -29,13 +29,13 @@ func getFileUrl(url string) ([]byte, error) { // Helper function that gets a disco json // TODO: Verify signature -func getDiscoFile(jsonFile string) ([]byte, error) { +func getDiscoFile(jsonFile string) (string, error) { // Get json data fileUrl := "https://disco.eduvpn.org/v2/" + jsonFile fileBody, error := getFileUrl(fileUrl) if error != nil { - return nil, error + return "", error } // Get signature @@ -43,7 +43,7 @@ func getDiscoFile(jsonFile string) ([]byte, error) { sigBody, error := getFileUrl(sigUrl) if error != nil { - return nil, error + return "", error } // Verify signature @@ -54,19 +54,23 @@ func getDiscoFile(jsonFile string) ([]byte, error) { verifySuccess, verifyErr := Verify(string(sigBody), fileBody, jsonFile, previousSigTime, forcePrehash) if !verifySuccess || verifyErr != nil { - return nil, detailedVPNError{errVerifySigError, "Signature is not valid", verifyErr} + return "", detailedVPNError{errVerifySigError, "Signature is not valid", verifyErr} } - return fileBody, nil + return string(fileBody), nil } // Get the organization list -func GetOrganizationsList() ([]byte, error) { - return getDiscoFile("organization_list.json") +func GetOrganizationsList() (string, error) { + body, err := getDiscoFile("organization_list.json") + if err != nil { + return "", err.(detailedRequestError).ToVerifyError() + } + return body, nil } // Get the server list -func getServersList() ([]byte, error) { +func GetServersList() (string, error) { return getDiscoFile("server_list.json") } -- cgit v1.2.3