summaryrefslogtreecommitdiff
path: root/main.go
blob: a33e192f7111bf1823f7969c14b0306a61ec5922 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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)

}