diff --git a/funcs.go b/funcs.go new file mode 100644 index 0000000..5e334ff --- /dev/null +++ b/funcs.go @@ -0,0 +1,128 @@ +package main + +import ( + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "strings" +) + +/* +func get_courses(token string, link string, client http.Client) []CanvasCourse { + resp, err := client.Get(link) + if err != nil { + fmt.Println("Error performing GET request to get courses.") + } + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + + if err != nil { + fmt.Println("Error trying to read html body for courses.") + } + + var canvas_courses []CanvasCourse + err2 := json.Unmarshal(body, &canvas_courses) + if err2 != nil { + fmt.Println(err2) + return nil + } + + return canvas_courses +} + +// Need to change this to grab both ID and name, return as pairs. +func get_course_id_name_pair(canvas_courses []CanvasCourse) []uint64 { + var courses []uint64 + + for _, course := range canvas_courses { + courses = append(courses, course.ID%10000) + } + return courses +} + +func select_course() int { + // course selection by user happens below + //favorites := fmt.Sprintf("%s/users/self/favorites/courses?access_token=%s&per_page=100", base_link, token) + //all_courses := fmt.Sprintf("%s/courses?access_token=%s&per_page=100", base_link,token) + // var canvas_courses []CanvasCourse + //canvas_courses = get_courses(token, favorites, client) + //var course_ids []uint64 + //course_ids = get_course_ids(canvas_courses) + //selected := 1 // course_ids[selected] + // course selection by user happens above + return 0 +} +*/ + +func get_aplus(token string, link string, client http.Client) string { + resp, err := client.Get(link) + + if err != nil { + fmt.Println("Error performing GET request to initial link.") + } + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + + if err != nil { + fmt.Println("Error reading body of initial aplus html response " + + "which is supposed to contain a one-time link for getting the form.") + } + + var aplus Aplus + json.Unmarshal(body, &aplus) + + return aplus.URL +} + +func get_form_from_request_body(req_body []byte) string { + body_str := string(req_body) + form_start := strings.Index(body_str, "