summaryrefslogtreecommitdiff
path: root/main.go
blob: 0ebd8f74132b76b72a082696f4cfbd0dade83d1d (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
package main

import (
	"flag"
	"fmt"
	"net/http"
	"os"
)

var base_link string
var base_aplus_link string
var external_tools_code int
var token string
var client http.Client

func usage() {
	fmt.Println("Usage: aplus --code attendance_code --course course_code [--list] [--listfav] [--help]")
	fmt.Println("  -c, --code\tfive character attendance code")
	fmt.Println("  -C, --course\tcanvas course ID")
	fmt.Println("  -L, --list\tlists canvas courses with name and ID")
	fmt.Println("  -F, --listfav\tlists favourited canvas courses with name and ID")
	fmt.Println("  -h, --help\tdisplays this help message")
}

func main() {
	initialize()

	var code string
	var course int
	var listall bool
	var listfav bool
	var help bool

	flag.StringVar(&code, "code", "", "5 character attendance code")
	flag.StringVar(&code, "c", "", "5 character attendance code")
	flag.IntVar(&course, "course", -1, "canvas course code")
	flag.IntVar(&course, "C", -1, "canvas course code")
	flag.BoolVar(&listall, "list", false, "list all canvas courses")
	flag.BoolVar(&listall, "L", false, "list all canvas courses")
	flag.BoolVar(&listfav, "listfav", false, "list favorited canvas courses")
	flag.BoolVar(&listfav, "F", false, "list favorited canvas courses")
	flag.BoolVar(&help, "help", false, "view usage message")
	flag.BoolVar(&help, "h", false, "view usage message")

	flag.Parse()

	if code == "" && course == -1 && !listall && !listfav && !help {
		usage()
		os.Exit(1)
	}

	if listall {
		list_all_courses()
		os.Exit(0)
	}

	if listfav {
		list_favorite_courses()
		os.Exit(0)
	}

	if help {
		usage()
		os.Exit(0)
	}

	if len(code) == 5 && course != -1 {
		fmt.Printf("%d %s\n", course, code)
		submit_code(course, code)
	} else if code != "" && course == -1 {
		fmt.Println("Course code not provided")
		usage()
		os.Exit(1)
	} else if code == "" && course != -1 {
		fmt.Println("Attendance code not provided")
		usage()
		os.Exit(1)
	} else if len(code) != 5 {
		fmt.Println("Attendance code must be 5 characters long")
		usage()
		os.Exit(1)
	}
}