summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-02 13:13:11 +0200
committerKyren223 <Kyren223@proton.me>2024-11-02 13:18:21 +0200
commit7ad5f5aa60cc940dbd4c6ec6cb091e7214a3fdb4 (patch)
tree4a24d486c9257bae5dc11623832e158fe3591625
parent8e3d1c5beebac25c15b348b073b253ec30c1b3f4 (diff)
feat(data): update message queries
-rw-r--r--internal/data/messages.sql.go42
-rw-r--r--internal/data/models.go4
-rw-r--r--internal/packet/messages.go30
-rw-r--r--query/messages.sql12
-rw-r--r--sqlc.yml8
5 files changed, 37 insertions, 59 deletions
diff --git a/internal/data/messages.sql.go b/internal/data/messages.sql.go
index 38d2b24..e84b306 100644
--- a/internal/data/messages.sql.go
+++ b/internal/data/messages.sql.go
@@ -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(
diff --git a/internal/data/models.go b/internal/data/models.go
index e7921e2..9d8f116 100644
--- a/internal/data/models.go
+++ b/internal/data/models.go
@@ -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 {
diff --git a/internal/packet/messages.go b/internal/packet/messages.go
index c561079..04929cd 100644
--- a/internal/packet/messages.go
+++ b/internal/packet/messages.go
@@ -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
+}
diff --git a/query/messages.sql b/query/messages.sql
index 1e982b1..a598754 100644
--- a/query/messages.sql
+++ b/query/messages.sql
@@ -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 *;
diff --git a/sqlc.yml b/sqlc.yml
index 237f348..d48d5c2 100644
--- a/sqlc.yml
+++ b/sqlc.yml
@@ -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"