mirror of
https://codeberg.org/flpolyaplus/aplus.git
synced 2024-11-22 01:10:29 -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