feat(data): update message queries

This commit is contained in:
2024-11-02 13:13:11 +02:00
parent 8e3d1c5bee
commit 7ad5f5aa60
5 changed files with 37 additions and 59 deletions

View File

@@ -11,45 +11,11 @@ import (
"github.com/kyren223/eko/pkg/snowflake"
)
const createDirectMessage = `-- name: CreateDirectMessage :one
INSERT INTO messages (
id, content, sender_id, receiver_id
) VALUES (
?, ?, ?, ?
)
RETURNING id, sender_id, content, frequency_id, receiver_id
`
type CreateDirectMessageParams struct {
ID snowflake.ID
Content string
SenderID snowflake.ID
ReceiverID snowflake.ID
}
func (q *Queries) CreateDirectMessage(ctx context.Context, arg CreateDirectMessageParams) (Message, error) {
row := q.db.QueryRowContext(ctx, createDirectMessage,
arg.ID,
arg.Content,
arg.SenderID,
arg.ReceiverID,
)
var i Message
err := row.Scan(
&i.ID,
&i.SenderID,
&i.Content,
&i.FrequencyID,
&i.ReceiverID,
)
return i, err
}
const createMessage = `-- name: CreateMessage :one
INSERT INTO messages (
id, content, sender_id, frequency_id
id, content, sender_id, frequency_id, receiver_id
) VALUES (
?, ?, ?, ?
?, ?, ?, ?, ?
)
RETURNING id, sender_id, content, frequency_id, receiver_id
`
@@ -58,7 +24,8 @@ type CreateMessageParams struct {
ID snowflake.ID
Content string
SenderID snowflake.ID
FrequencyID snowflake.ID
FrequencyID *snowflake.ID
ReceiverID *snowflake.ID
}
func (q *Queries) CreateMessage(ctx context.Context, arg CreateMessageParams) (Message, error) {
@@ -67,6 +34,7 @@ func (q *Queries) CreateMessage(ctx context.Context, arg CreateMessageParams) (M
arg.Content,
arg.SenderID,
arg.FrequencyID,
arg.ReceiverID,
)
var i Message
err := row.Scan(

View File

@@ -19,8 +19,8 @@ type Message struct {
ID snowflake.ID
SenderID snowflake.ID
Content string
FrequencyID snowflake.ID
ReceiverID snowflake.ID
FrequencyID *snowflake.ID
ReceiverID *snowflake.ID
}
type Network struct {

View File

@@ -2,25 +2,20 @@ package packet
import (
"github.com/kyren223/eko/internal/data"
"github.com/kyren223/eko/pkg/snowflake"
)
type ErrorMessage struct {
Error string `msgpack:"error"`
}
func NewOkMessage() *ErrorMessage {
return &ErrorMessage{}
}
func (m *ErrorMessage) Type() PacketType {
return PacketError
}
func (m *ErrorMessage) IsOk() bool {
return m.Error == ""
}
type SendMessage struct {
ReceiverID *snowflake.ID
FrequencyID *snowflake.ID
Content string
}
@@ -28,6 +23,14 @@ func (m *SendMessage) Type() PacketType {
return PacketSendMessage
}
type PushedMessages struct {
Messages []data.Message
}
func (m *PushedMessages) Type() PacketType {
return PacketPushedMessages
}
type Messages struct {
Messages []data.Message
}
@@ -35,3 +38,14 @@ type Messages struct {
func (m *Messages) Type() PacketType {
return PacketMessages
}
type GetMessagesRange struct {
FrequencyID *snowflake.ID
ReceiverID *snowflake.ID
From *int64
To *int64
}
func (m *GetMessagesRange) Type() PacketType {
return PacketGetMessageRange
}

View File

@@ -2,18 +2,10 @@
SELECT * FROM messages
ORDER BY id;
-- name: CreateDirectMessage :one
INSERT INTO messages (
id, content, sender_id, receiver_id
) VALUES (
?, ?, ?, ?
)
RETURNING *;
-- name: CreateMessage :one
INSERT INTO messages (
id, content, sender_id, frequency_id
id, content, sender_id, frequency_id, receiver_id
) VALUES (
?, ?, ?, ?
?, ?, ?, ?, ?
)
RETURNING *;

View File

@@ -9,9 +9,13 @@ sql:
out: "./internal/data/"
emit_pointers_for_null_types: true
overrides:
- column: "users.public_key"
go_type: "crypto/ed25519.PublicKey"
- column: "messages.receiver_id"
go_type: "*github.com/kyren223/eko/pkg/snowflake.ID"
- column: "messages.frequency_id"
go_type: "*github.com/kyren223/eko/pkg/snowflake.ID"
- column: "*.id"
go_type: "github.com/kyren223/eko/pkg/snowflake.ID"
- column: "*.*_id"
go_type: "github.com/kyren223/eko/pkg/snowflake.ID"
- column: "users.public_key"
go_type: "crypto/ed25519.PublicKey"