Documentation ¶
Overview ¶
データベースのエラーコードを定義する場所
Index ¶
- Constants
- func NewDB(ctx context.Context, cfg *config.Config) (*sqlx.DB, func(), error)
- type Beginner
- type CacheType
- type Execer
- type GetAllWithCursorParam
- type GetUsersParam
- type KVS
- func (k *KVS) Delete(ctx context.Context, key string) error
- func (k *KVS) Expire(ctx context.Context, key string, minitue time.Duration) error
- func (k *KVS) Load(ctx context.Context, key string) (string, error)
- func (k *KVS) Publish(ctx context.Context, channel, palyload string) error
- func (k *KVS) Save(ctx context.Context, key, value string, minute time.Duration) error
- func (k *KVS) Subscribe(ctx *gin.Context, channel string) (<-chan string, error)
- type Preparer
- type Queryer
- type Repository
- func (r *Repository) CheckNotification(ctx context.Context, db Execer, uid model.UserID, nid model.NotificationID) error
- func (r *Repository) CreateNotification(ctx context.Context, db Execer, n customentities.Notification) (customentities.Notification, error)
- func (r *Repository) DeleteUserByID(ctx context.Context, db Execer, ID model.UserID) (int64, error)
- func (r *Repository) FindUserByEmail(ctx context.Context, db Queryer, email string, columns ...string) (entities.User, error)
- func (r *Repository) GetAll(ctx context.Context, db Queryer, columns ...string) ([]*entities.User, error)
- func (r *Repository) GetAllWithCursor(ctx context.Context, db Queryer, param GetAllWithCursorParam) ([]*entities.User, error)
- func (r *Repository) GetAquistionPoint(ctx context.Context, db Queryer, userIDs []model.UserID) (map[model.UserID]int, error)
- func (r *Repository) GetByToUserByStartIdOrderByLatest(ctx context.Context, db Queryer, uid model.UserID, ...) ([]*customentities.Notification, error)
- func (r *Repository) GetByToUserOrderByLatest(ctx context.Context, db Queryer, uid model.UserID, size int, columns ...string) ([]*customentities.Notification, error)
- func (r *Repository) GetNotificationByID(ctx context.Context, db Queryer, uid model.UserID, nid model.NotificationID) (customentities.Notification, error)
- func (r *Repository) GetUncheckedNotificationCount(ctx context.Context, db Queryer, uid model.UserID) (int, error)
- func (r *Repository) GetUserByID(ctx context.Context, db Queryer, ID model.UserID) (entities.User, error)
- func (r *Repository) GetUsers(ctx context.Context, db Queryer, param GetUsersParam) ([]*entities.User, error)
- func (r *Repository) RegisterPointTransaction(ctx context.Context, db Execer, fromUserID, toUserId model.UserID, ...) error
- func (r *Repository) RegisterUser(ctx context.Context, db Execer, u *entities.User) error
- func (r *Repository) UpdateAccount(ctx context.Context, db Execer, ...) error
- func (r *Repository) UpdateAllSendablePoint(ctx context.Context, db Execer, point int) error
- func (r *Repository) UpdateEmail(ctx context.Context, db Execer, userID model.UserID, newEmail string) error
- func (r *Repository) UpdatePassword(ctx context.Context, db Execer, email, pass *string) error
- func (r *Repository) UpdateSendablePoint(ctx context.Context, db Execer, fromUserID model.UserID, point int) error
Constants ¶
const ( // ErrCodeMySQLDuplicateEntry はMySQL系のDUPLICATEエラーコード // https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html // Error number: 1062; Symbol: ER_DUP_ENTRY; SQLSTATE: 23000 ErrCodeMySQLDuplicateEntry = 1062 ErrCodeMySQLNoReferencedRow = 1452 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Execer ¶
type Execer interface { ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) NamedExecContext(ctx context.Context, query string, arg interface{}) (sql.Result, error) }
書き込み系メソッド類
type GetAllWithCursorParam ¶
type GetUsersParam ¶
type GetUsersParam struct {
Size int
}
type KVS ¶
type KVS struct {
Cli *redis.Client
}
type Queryer ¶
type Queryer interface { Preparer QueryxContext(ctx context.Context, query string, args ...any) (*sqlx.Rows, error) QueryRowxContext(ctx context.Context, query string, args ...any) *sqlx.Row GetContext(ctx context.Context, dest interface{}, query string, args ...any) error SelectContext(ctx context.Context, dest interface{}, query string, args ...any) error }
読み取り系メソッド類
type Repository ¶
func NewRepository ¶
func NewRepository(clocker clock.Clocker) *Repository
func (*Repository) CheckNotification ¶
func (r *Repository) CheckNotification(ctx context.Context, db Execer, uid model.UserID, nid model.NotificationID) error
お知らせチェックフラグをONにする @params ctx context db dbインスタンス uid ユーザID nie お知らせID
func (*Repository) CreateNotification ¶
func (r *Repository) CreateNotification(ctx context.Context, db Execer, n customentities.Notification) (customentities.Notification, error)
お知らせ登録 @params ctx context db dbインスタンス n 登録するお知らせ情報
@returns お知らせ
func (*Repository) DeleteUserByID ¶
削除
func (*Repository) FindUserByEmail ¶
func (r *Repository) FindUserByEmail(ctx context.Context, db Queryer, email string, columns ...string) (entities.User, error)
メールでユーザが存在するか検索する @params ctx context db dbインスタンス email email columns カラム(無指定の場合は全て)
@returns entities.User ユーザ情報
func (*Repository) GetAll ¶
func (r *Repository) GetAll(ctx context.Context, db Queryer, columns ...string) ([]*entities.User, error)
ユーザ一覧
@params ctx context db db columns 取得カラム(無指定の場合は全て)
@returns Users ユーザ一覧
func (*Repository) GetAllWithCursor ¶
func (r *Repository) GetAllWithCursor(ctx context.Context, db Queryer, param GetAllWithCursorParam) ([]*entities.User, error)
GetAllWithCursor ポイント順にユーザを取得する カーソルページネーションを使用して取得する ソート順は以下の通り
1. ポイントが多い順 2. ポイントが同じ場合は登録日が古い順 3. ポイントと登録日が同じ場合はユーザIDが大きい順
func (*Repository) GetAquistionPoint ¶
func (r *Repository) GetAquistionPoint(ctx context.Context, db Queryer, userIDs []model.UserID) (map[model.UserID]int, error)
GetAquistionPoint は、指定ユーザーの取得ポイントを取得する
func (*Repository) GetByToUserByStartIdOrderByLatest ¶
func (r *Repository) GetByToUserByStartIdOrderByLatest(ctx context.Context, db Queryer, uid model.UserID, startID model.NotificationID, size int, columns ...string) ([]*customentities.Notification, error)
お知らせ一覧取得 @params ctx context db dbインスタンス uid 受信者ユーザID startID 開始するお知らせID size 取得件数
@returns お知らせ一覧
func (*Repository) GetByToUserOrderByLatest ¶
func (r *Repository) GetByToUserOrderByLatest(ctx context.Context, db Queryer, uid model.UserID, size int, columns ...string) ([]*customentities.Notification, error)
指定した受信者ユーザーIDを元にお知らせ一覧を取得
func (*Repository) GetNotificationByID ¶
func (r *Repository) GetNotificationByID(ctx context.Context, db Queryer, uid model.UserID, nid model.NotificationID) (customentities.Notification, error)
お知らせ詳細取得 @params ctx context db dbインスタンス uid ユーザID nid お知らせID
@returns entities.Notification お知らせ
func (*Repository) GetUncheckedNotificationCount ¶
func (r *Repository) GetUncheckedNotificationCount(ctx context.Context, db Queryer, uid model.UserID) (int, error)
チェックしていないお知らせ総数 @params ctx context db dbインスタンス ID ユーザID
@returns お知らせ数
func (*Repository) GetUserByID ¶
func (r *Repository) GetUserByID(ctx context.Context, db Queryer, ID model.UserID) (entities.User, error)
ユーザIDでユーザが存在するか検索する @params ctx context db dbインスタンス ID ユーザID
@returns entities.User ユーザ情報
func (*Repository) GetUsers ¶
func (r *Repository) GetUsers(ctx context.Context, db Queryer, param GetUsersParam) ([]*entities.User, error)
GetUsers ポイント順にユーザを取得する
ソート順は以下の通り
1. ポイントが多い順 2. ポイントが同じ場合は登録日が古い順 3. ポイントと登録日が同じ場合はユーザIDが大きい順
func (*Repository) RegisterPointTransaction ¶
func (r *Repository) RegisterPointTransaction(ctx context.Context, db Execer, fromUserID, toUserId model.UserID, sendPoint int) error
ポイントの取引履歴の保存
@params ctx コンテキスト db dbの値(インスタンス) fromUserID 送信元ユーザ toUserId 送信先ユーザ sendPoint 送付ポイント
func (*Repository) UpdateAccount ¶
func (r *Repository) UpdateAccount(ctx context.Context, db Execer, email, familyName, familyNameKana, firstName, firstNameKana *string) error
アカウント情報を上書きする @params ctx context db dbインスタンス email email familyName familyName familyNameKana familyNameKana firstName firstName firstNameKana firstNameKana
@returns error
func (*Repository) UpdateAllSendablePoint ¶
UpdateAllSendablePoint は、全ユーザの送付可能ポイントを更新する
func (*Repository) UpdateEmail ¶
func (r *Repository) UpdateEmail(ctx context.Context, db Execer, userID model.UserID, newEmail string) error
メールアドレスを上書きする @params ctx context db dbインスタンス userID 更新するユーザーID newEmail 上書きするメールアドレス
@returns error
func (*Repository) UpdatePassword ¶
パスワードを上書き @params ctx context db dbインスタンス email email pass password
@returns error
func (*Repository) UpdateSendablePoint ¶
func (r *Repository) UpdateSendablePoint(ctx context.Context, db Execer, fromUserID model.UserID, point int) error
ポイント可能額の更新
@params ctx コンテキスト db db_instanc fromUserID 送付者ユーザのID point ポイント残高
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package mock_repository is a generated GoMock package.
|
Package mock_repository is a generated GoMock package. |
Package entities contains generated code for schema 'point_app'.
|
Package entities contains generated code for schema 'point_app'. |