From 1905b19ee7fcc5622ad3ad4d85cc8fc2e81a0b56 Mon Sep 17 00:00:00 2001 From: Joe Chen Date: Sun, 30 Oct 2022 23:04:24 +0800 Subject: refactor(db): migrate methods off `user.go` (#7219) --- internal/db/org_users.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 internal/db/org_users.go (limited to 'internal/db/org_users.go') diff --git a/internal/db/org_users.go b/internal/db/org_users.go new file mode 100644 index 00000000..5c4add26 --- /dev/null +++ b/internal/db/org_users.go @@ -0,0 +1,38 @@ +// Copyright 2022 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package db + +import ( + "context" + + "gorm.io/gorm" +) + +// OrgUsersStore is the persistent interface for organization-user relations. +// +// NOTE: All methods are sorted in alphabetical order. +type OrgUsersStore interface { + // CountByUser returns the number of organizations the user is a member of. + CountByUser(ctx context.Context, userID int64) (int64, error) +} + +var OrgUsers OrgUsersStore + +var _ OrgUsersStore = (*orgUsers)(nil) + +type orgUsers struct { + *gorm.DB +} + +// NewOrgUsersStore returns a persistent interface for organization-user +// relations with given database connection. +func NewOrgUsersStore(db *gorm.DB) OrgUsersStore { + return &orgUsers{DB: db} +} + +func (db *orgUsers) CountByUser(ctx context.Context, userID int64) (int64, error) { + var count int64 + return count, db.WithContext(ctx).Model(&OrgUser{}).Where("uid = ?", userID).Count(&count).Error +} -- cgit v1.2.3