changed db structs to gocnjhelper dbstructs

alpha
alex 2023-02-17 22:49:55 +01:00
parent 27dddbe443
commit 3b59f215c8
8 changed files with 31 additions and 234 deletions

View File

@ -1,100 +0,0 @@
package scylladb
import (
"github.com/scylladb/gocqlx/v2/table"
)
var (
Users = table.New(table.Metadata{
Name: "users",
Columns: []string{
"id",
"username",
"account_name",
"account_name_lc",
"email",
"password",
"description",
"latitude",
"longitude",
"xp_level",
"xp_points",
"followers_count",
"following_count",
"account_status",
"avatar_url",
"public_keys",
"created_at",
"updated_at"},
PartKey: []string{"id"},
})
WebSocketSessions = table.New(table.Metadata{
Name: "ws_sessions",
Columns: []string{
"id",
"user_id",
"user_agent",
"ip",
"last_used",
"created_at"},
PartKey: []string{"id"},
})
UserSignUpProcess = table.New(table.Metadata{
Name: "user_sign_up_process",
Columns: []string{
"x_token",
"email",
"user_agent",
"ip",
"email_verify_code",
"email_verified",
"last_email_resend",
"created_at",
"expires_at",
},
PartKey: []string{"x_token"},
})
Chats = table.New(table.Metadata{
Name: "chats",
Columns: []string{
"user_first_id",
"user_second_id",
"sync_count",
"last_messages",
"blocked_state",
"created_at",
},
PartKey: []string{"user_first_id", "user_second_id"},
})
UserRelationship = table.New(table.Metadata{
Name: "user_relationship",
Columns: []string{
"user_first_id",
"user_second_id",
"user_first_following_state",
"user_second_following_state",
"blocked_state",
"created_at",
"updated_at",
},
PartKey: []string{"user_first_id", "user_second_id"},
})
UserPrivacySettings = table.New(table.Metadata{
Name: "user_privacy_settings",
Columns: []string{
"user_id",
"username",
"avatar",
"description",
"location",
"created_at",
"updated_at",
},
PartKey: []string{"user_id"},
})
)

View File

@ -1,18 +1,8 @@
package structs
// TABLE chats
type Chat struct {
UserFirstId string
UserSecondId string
// Represents the current number of message activities in a chat. This includes reactions to messages, replying to messages, deleting messages, and more
SyncCount int
// Contains number X of last message activities. Needed e.g. for web
LastMessages []string
BlockedState uint8
CreatedAt int64
}
import "git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper/dbstructs"
// swagger:model ChatsResponse
type ChatsResponse struct {
Chats []Chat
Chats []dbstructs.Chat
}

View File

@ -1,111 +1,23 @@
package structs
import (
"reflect"
"github.com/gocql/gocql"
"github.com/scylladb/gocqlx/v2"
)
type User struct {
Id string
Username string
AccountName string
AccountNameLc string
Email string
Password string
Description string
Latitude float64
Longitude float64
XpLevel int
XpPoints int
FollowersCount int
FollowingCount int
AccountStatus uint8
AvatarUrl string
PublicKeys []UserPublicKeys
CreatedAt int64
UpdatedAt int64
}
// swagger:model UserResponse
/*
type UserResponse struct {
Username string
AccountName string
Email string
Description string
AccountStatus uint8
AvatarUrl string
} */
type UserPublicKeys struct {
gocqlx.UDT
Id string
PublicKey string
}
// needed to store into database
func (u UserPublicKeys) MarshalUDT(name string, info gocql.TypeInfo) ([]byte, error) {
f := gocqlx.DefaultMapper.FieldByName(reflect.ValueOf(u), name)
return gocql.Marshal(info, f.Interface())
}
// needed to take from database
func (u *UserPublicKeys) UnmarshalUDT(name string, info gocql.TypeInfo, data []byte) error {
f := gocqlx.DefaultMapper.FieldByName(reflect.ValueOf(u), name)
return gocql.Unmarshal(info, data, f.Addr().Interface())
}
import "git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper/dbstructs"
// swagger:model UsersResponse
type UsersResponse struct {
Users []User
}
type UserSignUpProcess struct {
XToken string
Email string
UserAgent string
Ip string
EmailVerifyCode string
EmailVerified bool
LastEmailResend int64
CreatedAt int64
ExpiresAt int64
Users []dbstructs.User
}
// swagger:model UserSignUpProcessesResponse
type UserSignUpProcessesResponse struct {
UserSignUpProcesses []UserSignUpProcess
}
type UserRelationship struct {
UserFirstId string
UserSecondId string
UserFirstFollowingState uint8
UserSecondFollowingState uint8
BlockedState uint8
CreatedAt int64
UpdatedAt int64
UserSignUpProcesses []dbstructs.UserSignUpProcess
}
// swagger:model UserRelationshipsResponse
type UserRelationshipsResponse struct {
Relationships []UserRelationship
}
// TABLE user_privacy_settings
type UserPrivacySettings struct {
UserId string
Username uint8
Avatar uint8
Description uint8
Location uint8
CreatedAt int64
UpdatedAt int64
Relationships []dbstructs.UserRelationship
}
// swagger:model UserPrivacySettingsResponse
type UserPrivacySettingsResponse struct {
PrivacySettings []UserPrivacySettings
PrivacySettings []dbstructs.UserPrivacySettings
}

View File

@ -1,16 +1,8 @@
package structs
// TABLE ws_sessions
type UserWebSocketSession struct {
Id string
UserId string
UserAgent string
Ip string
LastUsed int64
CreatedAt int64
}
import "git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper/dbstructs"
// swagger:model UserWebSocketSessionsResponse
type WebSocketSessionsResponse struct {
WsSessions []UserWebSocketSession
WsSessions []dbstructs.UserWebSocketSession
}

View File

@ -4,6 +4,7 @@ import (
"clickandjoin.app/managementsystem/modules/scylladb"
"clickandjoin.app/managementsystem/modules/structs"
gocnjhelper "git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper"
"git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper/dbstructs"
"github.com/gofiber/fiber/v2"
)
@ -22,9 +23,9 @@ func GetAllChats(c *fiber.Ctx) error {
// '500':
// description: Internal server error
var chats []structs.Chat
var chats []dbstructs.Chat
q := scylladb.Session.Query(scylladb.Chats.SelectAll())
q := scylladb.Session.Query(gocnjhelper.DbMChats.SelectAll())
if err := q.SelectRelease(&chats); err != nil {
gocnjhelper.LogErrorf("Failed to get chats, err: %s", err)

View File

@ -25,27 +25,27 @@ func GetStats(c *fiber.Ctx) error {
var stats structs.StatsResponse
if count, err := getCount(scylladb.Users.Name()); err == nil {
if count, err := getCount(gocnjhelper.DbMUsers.Name()); err == nil {
stats.Users = count
}
if count, err := getCount(scylladb.Chats.Name()); err == nil {
if count, err := getCount(gocnjhelper.DbMChats.Name()); err == nil {
stats.Chats = count
}
if count, err := getCount(scylladb.WebSocketSessions.Name()); err == nil {
if count, err := getCount(gocnjhelper.DbMWebSocketSessions.Name()); err == nil {
stats.WebSocketSessions = count
}
if count, err := getCount(scylladb.UserSignUpProcess.Name()); err == nil {
if count, err := getCount(gocnjhelper.DbMUserSignUpProcess.Name()); err == nil {
stats.UserSignUpProcesses = count
}
if count, err := getCount(scylladb.UserPrivacySettings.Name()); err == nil {
if count, err := getCount(gocnjhelper.DbMUserPrivacySettings.Name()); err == nil {
stats.UserPrivacySettings = count
}
if count, err := getCount(scylladb.UserRelationship.Name()); err == nil {
if count, err := getCount(gocnjhelper.DbMUserRelationship.Name()); err == nil {
stats.UserRelationships = count
}

View File

@ -4,6 +4,7 @@ import (
"clickandjoin.app/managementsystem/modules/scylladb"
"clickandjoin.app/managementsystem/modules/structs"
gocnjhelper "git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper"
"git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper/dbstructs"
"github.com/gofiber/fiber/v2"
)
@ -22,15 +23,15 @@ func GetAllUsers(c *fiber.Ctx) error {
// '500':
// description: Internal server error
var users []structs.User
var users []dbstructs.User
q := scylladb.Session.Query(scylladb.Users.SelectAll())
q := scylladb.Session.Query(gocnjhelper.DbMUsers.SelectAll())
if err := q.SelectRelease(&users); err != nil {
gocnjhelper.LogErrorf("Failed to get all users, err: %s", err)
}
var nUsers []structs.User
var nUsers []dbstructs.User
if len(users) > 0 { // remove password value from result
for _, user := range users {
@ -97,9 +98,9 @@ func GetAllUserSignUpProcesses(c *fiber.Ctx) error {
// '500':
// description: Internal server error
var userSignUpProcesses []structs.UserSignUpProcess
var userSignUpProcesses []dbstructs.UserSignUpProcess
q := scylladb.Session.Query(scylladb.UserSignUpProcess.SelectAll())
q := scylladb.Session.Query(gocnjhelper.DbMUserSignUpProcess.SelectAll())
if err := q.SelectRelease(&userSignUpProcesses); err != nil {
gocnjhelper.LogErrorf("Failed to get all user sign up processes, err: %s", err)
@ -123,9 +124,9 @@ func GetAllUserRelationships(c *fiber.Ctx) error {
// '500':
// description: Internal server error
var userRelationships []structs.UserRelationship
var userRelationships []dbstructs.UserRelationship
q := scylladb.Session.Query(scylladb.UserRelationship.SelectAll())
q := scylladb.Session.Query(gocnjhelper.DbMUserRelationship.SelectAll())
if err := q.SelectRelease(&userRelationships); err != nil {
gocnjhelper.LogErrorf("Failed to get all user relationships, err: %s", err)
@ -149,9 +150,9 @@ func GetAllUserPrivacySettings(c *fiber.Ctx) error {
// '500':
// description: Internal server error
var userPrivacySettings []structs.UserPrivacySettings
var userPrivacySettings []dbstructs.UserPrivacySettings
q := scylladb.Session.Query(scylladb.UserPrivacySettings.SelectAll())
q := scylladb.Session.Query(gocnjhelper.DbMUserPrivacySettings.SelectAll())
if err := q.SelectRelease(&userPrivacySettings); err != nil {
gocnjhelper.LogErrorf("Failed to get all user privacy settings, err: %s", err)

View File

@ -4,6 +4,7 @@ import (
"clickandjoin.app/managementsystem/modules/scylladb"
"clickandjoin.app/managementsystem/modules/structs"
gocnjhelper "git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper"
"git.clickandjoin.umbach.dev/ClickandJoin/go-cnj-helper/dbstructs"
"github.com/gofiber/fiber/v2"
)
@ -23,9 +24,9 @@ func GetAllWsSessions(c *fiber.Ctx) error {
// '500':
// description: Internal server error
var wsSessions []structs.UserWebSocketSession
var wsSessions []dbstructs.UserWebSocketSession
q := scylladb.Session.Query(scylladb.WebSocketSessions.SelectAll())
q := scylladb.Session.Query(gocnjhelper.DbMWebSocketSessions.SelectAll())
if err := q.SelectRelease(&wsSessions); err != nil {
gocnjhelper.LogErrorf("Failed to get ws sessions, err: %s", err)