aplus/main.go

91 lines
2.1 KiB
Go

package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
)
func get_courses(token string, link string, client http.Client) []CanvasCourse {
resp, err := client.Get(link)
if err != nil {
// handle error
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
var canvas_courses []CanvasCourse
err2 := json.Unmarshal(body, &canvas_courses)
if err2 != nil {
fmt.Println(err2)
return nil
}
return canvas_courses
}
func get_aplus(token string, link string, client http.Client) string {
resp, err := client.Get(link)
if err != nil {
// handle error
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
var aplus Aplus
json.Unmarshal(body, &aplus)
return aplus.URL
}
func get_course_ids(canvas_courses []CanvasCourse) []uint64 {
var courses []uint64
for _, course := range canvas_courses {
courses = append(courses, course.ID%10000)
}
return courses
}
func main() {
client := http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
fmt.Println("Redirected to:", req.URL)
return nil
},
}
// https://canvas.instructure.com/api/v1/courses?access_token={}&per_page=100", canvas_token
base_link := "https://floridapolytechnic.instructure.com/api/v1"
token := "insert api key here"
//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]
aplus_link := fmt.Sprintf("%s/courses/%d/external_tools/sessionless_launch?id=913&access_token=%s", base_link, 7329, token) // 7329 always works
var aplus string
aplus = get_aplus(token, aplus_link, client)
fmt.Println(aplus)
resp, err := client.Get(aplus)
if err != nil {
// handle error
}
//fmt.Println(resp)
defer resp.Body.Close()
//body, err := io.ReadAll(resp.Body)
//fmt.Println(string(body))
//fmt.Println(resp)
}