Skip to content

某学務情報システムの API クライアントライブラリ

Notifications You must be signed in to change notification settings

szpp-dev-team/gakujo-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gakujo-api

これはなに

某の api を go で書いたやつです。
ログイン API がようやく動いたので少しずつ実装していきます。

Installation

$ go get -u github.com/szpp-dev-team/gakujo-api

Documentation

import

以下のようにインポートしてください。

import "github.com/szpp-dev-team/gakujo-api/gakujo"

Declartion & Login

基本的にクライアントを作成するときは NewClientLogin を同時に行ってください。特に Login をしないと何もできないので注意してください。

client := gakujo.NewClient() // api -> gakujo でもいいかも・・?
if err := client.Login(username, password); err != nil {
    // ログイン失敗
}

Home

ホーム画面から お知らせ未提出課題一覧 を取得します。
これで事足りるとは思っていますが、追加で欲しいものがある場合は issue に投げてください。

homeInfo, _ := client.Home()
for _, task := range homeInfo.TaskRows {
    fmt.Println(task)
}
for _, notice := range homeInfo.NoticeRows {
    fmt.Println(notice)
}

model

  • 課題
type TaskRow struct {
    Type     TaskType  // 課題のタイプ
    Deadline time.Time // 締め切り日時
    Name     string    // 課題名
    Index    int       // index
}
  • お知らせ
type NoticeRow struct {
    Type        NoticeType    // お知らせのタイプ
    SubType     SubNoticeType // お知らせのサブタイプ
    Important   bool          // 重要ラベルの有無
    Date        time.Time     // お知らせが届いた日
    Title       string        // タイトル
    Affiliation string        // 所属
    Index       int           // index
}

test

  • login API
$ echo -e 'J_USERNAME=学情のID\nJ_PASSWORD=学情のPSWD' > ./.env
$ go test -timeout 30s -run ^TestLogin$ github.com/szpp-dev-team/gakujo-api/gakujo -v
.
.
--- PASS: TestLogin (8.25s)
PASS
ok      github.com/szpp-dev-team/gakujo-api/gakujo 8.731s

About

某学務情報システムの API クライアントライブラリ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages