server

package
v0.0.0-...-e4a9a5f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 13, 2021 License: MIT Imports: 11 Imported by: 0

README

monikatsu_server

概要
  • LINE サーバーからのリクエストを具体的に処理する package です。main.go から JudgeEvent が呼ばれ、これがこの package のエントリポイントになります。

  • LINE から送られたイベントによって後続の処理を切り分けます。

  • はじめ routing.go で全ての処理を捌きますが、その後イベント毎に別々の処理が走ります(file 分けた)

  • LINE の token を Redis に保存し、セッションとして利用します。この部分は session package に依存しています。セッションは会話のコンテキストを判別するのに利用されます。

  • 特定の会話処理によっては、line サーバーからのリクエストを db へ保存する操作も含まれます。

todo
  • session server と gRPC で通信できる事。session 保存、取り出しができる事。
  • https://app.diagrams.net/#G1GuzbG3DYwBPoyNBTnjiMk-KnH4dsLaFD に習って、会話 bot を作成する
  • LINE サーバーからのリクエスト、session、レスポンス、エラー発生時、それぞれのタイミングで log を生成させる

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetContext

func GetContext(userid string) string

デモ関数。実際はここはgRPCのメソッドに挿しかわる。

func JudgeEvent

func JudgeEvent(w http.ResponseWriter, r *http.Request)

JudgeEventはLINE MessagingAPIから渡されたイベントを判別します。 後続処理はそれぞれのイベントの関数に移譲させます。 TODO: errハンドリングどうするか

func Serve

func Serve()

Types

type AppErr

type AppErr struct {
	// contains filtered or unexported fields
}

type LineConn

type LineConn struct {
	// contains filtered or unexported fields
}

LineConn はMessagingAPIとの接続を管理する構造体です。 MessagingAPIのイベントオブジェクトとClient構造体をラップしています。

type SessionCode

type SessionCode string

SessionCode はsession codeを管理します。

var (
	DefaultState           SessionCode = "0"
	MonikatsuFlag          SessionCode = "2.1"
	MonikatsuSetWakeupTime SessionCode = "2.2"
)

TODO: もっとマシな定数名にしたい

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL