Documentation ¶
Index ¶
Constants ¶
View Source
const ( UserRole int = iota // ユーザー AdminRole // 管理者 DeveloperRole // 開発者 OperatorRole // 運用者 )
ユーザ権限
View Source
const ( UnkownGender int = iota // 未選択 MaleGender // 男性 FemaleGender // 女性 NotApplicableGender // 適用不能 )
ユーザ性別
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Follow ¶
type Follow struct { FollowID string `gorm:"<-:false"` Username string `gorm:"<-:false"` ThumbnailURL string `gorm:"<-:false"` SelfIntroduction string `gorm:"<-:false"` IsFollowing bool `gorm:"-"` IsFollowed bool `gorm:"-"` FollowCount int `gorm:"-"` FollowerCount int `gorm:"-"` }
Follow - フォローしているUserのエンティティ
type Follower ¶
type Follower struct { FollowerID string `gorm:"<-:false"` Username string `gorm:"<-:false"` ThumbnailURL string `gorm:"<-:false"` SelfIntroduction string `gorm:"<-:false"` IsFollowing bool `gorm:"-"` IsFollowed bool `gorm:"-"` FollowCount int `gorm:"-"` FollowerCount int `gorm:"-"` }
Follower - フォローされているUserのエンティティ
type Relationship ¶
type Relationship struct { ID int `gorm:"default:null;primaryKey;autoIncrement;<-:create"` FollowID string `gorm:"default:null"` FollowerID string `gorm:"default:null"` CreatedAt time.Time `gorm:"default:null"` UpdatedAt time.Time `gorm:"default:null"` }
Relationship - Relationshipエンティティ (中間テーブル)
type Repository ¶
type Repository interface { Authentication(ctx context.Context) (string, error) List(ctx context.Context, q *database.ListQuery) (Users, error) ListFollow(ctx context.Context, q *database.ListQuery) (Follows, error) ListFollower(ctx context.Context, q *database.ListQuery) (Followers, error) ListInstanceID(ctx context.Context, q *database.ListQuery) ([]string, error) ListFollowID(ctx context.Context, userID string, userIDs ...string) ([]string, error) ListFollowerID(ctx context.Context, userID string, userIDs ...string) ([]string, error) Count(ctx context.Context, q *database.ListQuery) (int, error) CountRelationship(ctx context.Context, q *database.ListQuery) (int, error) MultiGet(ctx context.Context, userIDs []string) (Users, error) Get(ctx context.Context, userID string) (*User, error) GetAdmin(ctx context.Context, userID string) (*User, error) GetRelationship(ctx context.Context, followID string, followerID string) (*Relationship, error) GetUserIDByEmail(ctx context.Context, email string) (string, error) GetRelationshipIDByUserID(ctx context.Context, followID string, followerID string) (int, error) Create(ctx context.Context, u *User) error CreateWithOAuth(ctx context.Context, u *User) error CreateRelationship(ctx context.Context, r *Relationship) error Update(ctx context.Context, u *User) error UpdatePassword(ctx context.Context, userID string, password string) error Delete(ctx context.Context, userID string) error DeleteRelationship(ctx context.Context, relationshipID int) error }
Repository - Userレポジトリ
type Uploader ¶
type Uploader interface {
Thumbnail(ctx context.Context, userID string, data []byte) (string, error)
}
Uploader - Userアップローダ
type User ¶
type User struct { ID string `gorm:"default:null;primaryKey;<-:create"` Username string `gorm:"default:null"` Gender int `gorm:"default:null"` Email string `gorm:"default:null"` PhoneNumber string `gorm:"default:null"` Role int `gorm:"default:null"` Password string `gorm:"-"` ThumbnailURL string `gorm:"default:null"` SelfIntroduction string `gorm:"default:null"` LastName string `gorm:"default:null"` FirstName string `gorm:"default:null"` LastNameKana string `gorm:"default:null"` FirstNameKana string `gorm:"default:null"` PostalCode string `gorm:"default:null"` Prefecture string `gorm:"default:null"` City string `gorm:"default:null"` AddressLine1 string `gorm:"default:null"` AddressLine2 string `gorm:"default:null"` InstanceID string `gorm:"default:null"` CreatedAt time.Time `gorm:"default:null;<-:create"` UpdatedAt time.Time `gorm:"default:null"` DeletedAt gorm.DeletedAt `gorm:"default:null"` Follows []*Follow `gorm:"foreignKey:FollowID"` Followers []*Follower `gorm:"foreignKey:FollowerID"` IsFollowing bool `gorm:"-"` IsFollowed bool `gorm:"-"` FollowCount int `gorm:"-"` FollowerCount int `gorm:"-"` }
User - Userエンティティ
func (*User) Profile ¶
func (u *User) Profile() *user.UserProfile
type Validation ¶
type Validation interface { User(ctx context.Context, u *User) error Relationship(ctx context.Context, r *Relationship) error }
Validation - Userドメインバリデーション
Click to show internal directories.
Click to hide internal directories.