persistence

package
v0.0.0-...-2f87fcc Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2023 License: GPL-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EtagPrefix     string = "Etag"
	EtagTimeToLive        = 3600000 * time.Millisecond
)
View Source
const (
	JoinGroupInvitationPrefix     string = "JoinGroupInvitation"
	JoinGroupInvitationTimeToLive        = 3600000 * time.Millisecond
)
View Source
const LAYOUT = "2006-01-02"

Variables

View Source
var DB *gorm.DB

Functions

func GetDB

func GetDB(dbConfig string) *gorm.DB

func GetMailClient

func GetMailClient() (*mailjet.Client, error)

func GetRedisClient

func GetRedisClient(serviceConfig *config.Config) *redis.Client

func NewDB

func NewDB(config *config.Config) *gorm.DB

Types

type Auditable

type Auditable struct {
	ID            int64     `db:"id"`
	CreatedAt     time.Time `db:"created_at"`
	UpdatedAt     time.Time `db:"updated_at"`
	Activity      string    `db:"activity"`
	Originator    string    `db:"originator"`
	ProjectID     int64     `db:"project_id"`
	ActivityTime  time.Time `db:"activity_time"`
	Action        int64     `db:"action"`
	ProjectItemID int64     `db:"project_item_id"`
}

Auditable ...Map to table name auditables

type BaseDbDao

type BaseDbDao struct {
	Ctx context.Context
	Db  *gorm.DB
}

func (*BaseDbDao) GetDbDao

func (b *BaseDbDao) GetDbDao(ctx context.Context, serviceConfig *config.Config) (dbDao *BaseDbDao)

GetDbDao... Get dao instance from Context and Config

type Etag

type Etag struct {
	Index string `json:"index"`
	Etag  string `json:"etag"`
}

func GenerateEtag

func GenerateEtag(username string, eType EtagType, etag string) *Etag

func NewEtag

func NewEtag(username string, eTypeStr string, etag string) *Etag

type EtagDao

type EtagDao struct {
	Ctx context.Context
	Rdb *redis.Client
}

func NewEtagDao

func NewEtagDao(ctx context.Context, redisClient *redis.Client) *EtagDao

func (*EtagDao) BatchCache

func (e *EtagDao) BatchCache(etags []*Etag)

func (*EtagDao) DeleteByKey

func (e *EtagDao) DeleteByKey(key string)

func (*EtagDao) DeleteEtagByUserName

func (e *EtagDao) DeleteEtagByUserName(username string)

func (*EtagDao) DeleteEtagByUserNameAndEtagType

func (e *EtagDao) DeleteEtagByUserNameAndEtagType(username string, eType EtagType)

func (*EtagDao) FindEtagByIndex

func (e *EtagDao) FindEtagByIndex(index string) *Etag

func (*EtagDao) FindEtagByUserName

func (e *EtagDao) FindEtagByUserName(username string, eType EtagType) *Etag

func (*EtagDao) SingleCache

func (e *EtagDao) SingleCache(etag *Etag)

type EtagType

type EtagType int
const (
	NotificationType EtagType = iota
	GroupType
	UserGroupType
	NotificationDeleteType
	GroupDeleteType
)

Specific constant definition for EtagType

func (EtagType) String

func (et EtagType) String() string

type GoogleCalendarProject

type GoogleCalendarProject struct {
	ID         string         `db:"id"`
	CreatedAt  time.Time      `db:"created_at"`
	UpdatedAt  time.Time      `db:"updated_at"`
	Channel    string         `db:"channel"`
	ChannelID  string         `db:"channel_id"`
	ProjectID  uint           `db:"project_id"`
	Token      sql.NullString `db:"token"`
	Owner      string         `db:"owner"`
	Expiration time.Time      `db:"expiration"`
}

GoogleCalendarProject ...Map to table name google_calendar_projects

type Group

type Group struct {
	ID           int64     `db:"id"`
	CreatedAt    time.Time `db:"created_at"`
	UpdatedAt    time.Time `db:"updated_at"`
	Name         string    `db:"name"`
	Owner        string    `db:"owner"`
	DefaultGroup string    `db:"default_group"`
}

type GroupDao

type GroupDao struct {
	Ctx context.Context
	// contains filtered or unexported fields
}

func NewGroupDao

func NewGroupDao(ctx context.Context) *GroupDao

func (*GroupDao) Find

func (g *GroupDao) Find(groupId uint64) *Group

func (*GroupDao) FindGroup

func (g *GroupDao) FindGroup(groupId uint64) *Group

type JoinGroupInvitation

type JoinGroupInvitation struct {
	Uid            string `json:"uid"`
	Username       string `json:"username"`
	GroupId        string `json:"groupid"`
	NotificationId string `json:"notificationid"`
}

func NewJoinGroupInvitation

func NewJoinGroupInvitation(uid, username, groupId, notificationId string) *JoinGroupInvitation

type JoinGroupInvitationDao

type JoinGroupInvitationDao struct {
	Ctx context.Context
	Rdb *redis.Client
}

func NewJoinGroupInvitationDao

func NewJoinGroupInvitationDao(ctx context.Context, redisClient *redis.Client) *JoinGroupInvitationDao

func (*JoinGroupInvitationDao) Find

func (*JoinGroupInvitationDao) SingleCache

func (j *JoinGroupInvitationDao) SingleCache(joinGroupInvitation *JoinGroupInvitation)

type MailjetClient

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

func (*MailjetClient) NewClient

func (m *MailjetClient) NewClient()

func (*MailjetClient) SetLogger

func (m *MailjetClient) SetLogger()

func (*MailjetClient) SetMailjetClient

func (m *MailjetClient) SetMailjetClient(publicKey string, privateKey string)

type MailjetClientError

type MailjetClientError struct{}

func (*MailjetClientError) Error

func (e *MailjetClientError) Error() string

type Notification

type Notification struct {
	ID         int64     `db:"id"`
	CreatedAt  time.Time `db:"created_at"`
	UpdatedAt  time.Time `db:"updated_at"`
	Actions    string    `db:"actions"`
	Content    string    `db:"content"`
	ContentID  int64     `db:"content_id"`
	Link       string    `db:"link"`
	Originator string    `db:"originator"`
	TargetUser string    `db:"target_user"`
	Title      string    `db:"title"`
	Type       string    `db:"type"`
}

Notification ...Map to table name notifications

type PublicProjectItem

type PublicProjectItem struct {
	ID             int64     `db:"id"`
	CreatedAt      time.Time `db:"created_at"`
	UpdatedAt      time.Time `db:"updated_at"`
	ExpirationTime time.Time `db:"expiration_time"`
	Username       string    `db:"username"`
	NoteID         int64     `db:"note_id"`
	TaskID         int64     `db:"task_id"`
}

PublicProjectItem ...Map to table name public_project_items

type RedisClient

type RedisClient struct {
}

type SampleTask

type SampleTask struct {
	ID              uint64    `json:"id,omitempty" gorm:"primaryKey;not_null"`
	CreatedAt       time.Time `json:"-" gorm:"index:created_at;PRECISION:6"`
	UpdatedAt       time.Time `json:"-" gorm:"PRECISION:6"`
	Metadata        string    `json:"metadata"`
	Content         string    `json:"content"`
	Name            string    `json:"name" gorm:"type:varchar;size:100"`
	Uid             string    `json:"uid" gorm:"type:varchar;size:500"`
	AvailableBefore time.Time `json:"available_before"`
	DueDate         string    `json:"due_date" gorm:"type:varchar;size:15"`
	DueTime         string    `json:"due_time" gorm:"type:varchar;size:10"`
	TimeZone        string    `json:"time_zone" gorm:"type:varchar;size:100"`
	Pending         bool      `json:"pending"`
	Refreshable     bool      `json:"refreshable"`
	Raw             string    `json:"raw"`
}

func (SampleTask) TableName

func (SampleTask) TableName() string

type SampleTaskDao

type SampleTaskDao struct {
	Ctx context.Context
	Db  *gorm.DB
}

func NewSampleTaskDao

func NewSampleTaskDao(ctx context.Context, db *gorm.DB) (*SampleTaskDao, error)

func (*SampleTaskDao) Upsert

func (s *SampleTaskDao) Upsert(t *SampleTask) (uint64, bool)

*

  • Return true if new record

Jump to

Keyboard shortcuts

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