mirror of
https://codeberg.org/flpolyaplus/aplus.git
synced 2024-11-21 17:00:30 -05:00
first commit
This commit is contained in:
parent
3da2c17e49
commit
41a98cfe60
82
main.go
Normal file
82
main.go
Normal file
@ -0,0 +1,82 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func get_courses(token string, link string) []CanvasCourse {
|
||||
resp, err := http.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) string {
|
||||
resp, err := http.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() {
|
||||
|
||||
// https://canvas.instructure.com/api/v1/courses?access_token={}&per_page=100", canvas_token
|
||||
base_link := "https://floridapolytechnic.instructure.com/api/v1"
|
||||
token := "instructure api key"
|
||||
//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)
|
||||
//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)
|
||||
fmt.Println(aplus)
|
||||
|
||||
resp, err := http.Get(aplus)
|
||||
|
||||
if err != nil {
|
||||
// handle error
|
||||
}
|
||||
|
||||
//fmt.Println(resp)
|
||||
|
||||
defer resp.Body.Close()
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
|
||||
fmt.Println(string(body))
|
||||
}
|
56
structs.go
Normal file
56
structs.go
Normal file
@ -0,0 +1,56 @@
|
||||
package main
|
||||
|
||||
import "time"
|
||||
|
||||
type Aplus struct {
|
||||
URL string `json:"url"`
|
||||
}
|
||||
|
||||
type CanvasCourse struct {
|
||||
ID uint64 `json:"id"`
|
||||
Name string `json:"name"`
|
||||
AccountID uint64 `json:"account_id"`
|
||||
UUID string `json:"uuid"`
|
||||
StartAt *time.Time `json:"start_at,omitempty"`
|
||||
GradingStandardID *uint64 `json:"grading_standard_id,omitempty"`
|
||||
IsPublic bool `json:"is_public"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
CourseCode string `json:"course_code"`
|
||||
DefaultView string `json:"default_view"`
|
||||
RootAccountID uint64 `json:"root_account_id"`
|
||||
EnrollmentTermID uint64 `json:"enrollment_term_id"`
|
||||
License string `json:"license"`
|
||||
GradePassbackSetting *string `json:"grade_passback_setting,omitempty"`
|
||||
EndAt *time.Time `json:"end_at,omitempty"`
|
||||
PublicSyllabus bool `json:"public_syllabus"`
|
||||
PublicSyllabusToAuth bool `json:"public_syllabus_to_auth"`
|
||||
StorageQuotaMB uint64 `json:"storage_quota_mb"`
|
||||
IsPublicToAuthUsers bool `json:"is_public_to_auth_users"`
|
||||
HomeroomCourse bool `json:"homeroom_course"`
|
||||
CourseColor *string `json:"course_color,omitempty"`
|
||||
FriendlyName *string `json:"friendly_name,omitempty"`
|
||||
ApplyAssignmentGroupWeights bool `json:"apply_assignment_group_weights"`
|
||||
Locale string `json:"locale"`
|
||||
Calendar Calendar `json:"calendar"`
|
||||
TimeZone string `json:"time_zone"`
|
||||
Blueprint bool `json:"blueprint"`
|
||||
Template bool `json:"template"`
|
||||
Enrollments []Enrollment `json:"enrollments"`
|
||||
HideFinalGrades bool `json:"hide_final_grades"`
|
||||
WorkflowState string `json:"workflow_state"`
|
||||
RestrictEnrollmentsToCourseDates bool `json:"restrict_enrollments_to_course_dates"`
|
||||
OverriddenCourseVisibility string `json:"overridden_course_visibility"`
|
||||
}
|
||||
|
||||
type Calendar struct {
|
||||
Ics string `json:"ics"`
|
||||
}
|
||||
|
||||
type Enrollment struct {
|
||||
Type string `json:"type_"`
|
||||
Role string `json:"role"`
|
||||
RoleID uint64 `json:"role_id"`
|
||||
UserID uint64 `json:"user_id"`
|
||||
EnrollmentState string `json:"enrollment_state"`
|
||||
LimitPrivilegesToCourseSection bool `json:"limit_privileges_to_course_section"`
|
||||
}
|
Loading…
Reference in New Issue
Block a user