mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-28 17:23:09 -06:00
Add tenant-id to all docs and cross-tenant queries (#14)
* Add tenant-id to all docs and cross-tenant queries * Use TenantName in doc ids too * Space * - Rename variables and ensure code compiles * - Fix error handling for GroupBy query * - Fix typo Co-authored-by: Alex Flatow <alexf@criticalarc.com>
This commit is contained in:
parent
ae2eea039e
commit
199c4c3cd1
|
|
@ -59,6 +59,7 @@ type EventNumberCosmosData struct {
|
|||
type EventCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -125,7 +126,7 @@ func (s *eventsStatements) prepare(db *Database, writer sqlutil.Writer) (err err
|
|||
|
||||
func queryEvent(s *eventsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]EventCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []EventCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -146,7 +147,7 @@ func queryEvent(s *eventsStatements, ctx context.Context, qry string, params map
|
|||
|
||||
func queryEventEventNumber(s *eventsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]EventNumberCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []EventNumberCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -345,8 +346,8 @@ func (s *eventsStatements) insertEvent(
|
|||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
docId := fmt.Sprintf("%d", idSeq)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// appServiceID,
|
||||
// eventJSON,
|
||||
|
|
@ -360,6 +361,7 @@ func (s *eventsStatements) insertEvent(
|
|||
|
||||
dbData := &EventCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ global:
|
|||
|
||||
# Naffka database options. Not required when using Kafka.
|
||||
naffka_database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 10
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
|
|
@ -122,7 +122,7 @@ app_service_api:
|
|||
listen: http://localhost:7777
|
||||
connect: http://localhost:7777
|
||||
database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 10
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
|
|
@ -202,7 +202,7 @@ federation_sender:
|
|||
listen: http://localhost:7775
|
||||
connect: http://localhost:7775
|
||||
database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 10
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
|
|
@ -228,7 +228,7 @@ key_server:
|
|||
listen: http://localhost:7779
|
||||
connect: http://localhost:7779
|
||||
database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 10
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
|
|
@ -241,7 +241,7 @@ media_api:
|
|||
external_api:
|
||||
listen: http://[::]:8074
|
||||
database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 5
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
|
|
@ -291,7 +291,7 @@ room_server:
|
|||
listen: http://localhost:7770
|
||||
connect: http://localhost:7770
|
||||
database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 10
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
|
|
@ -302,7 +302,7 @@ signing_key_server:
|
|||
listen: http://localhost:7780
|
||||
connect: http://localhost:7780
|
||||
database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 10
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
|
|
@ -331,7 +331,7 @@ sync_api:
|
|||
external_api:
|
||||
listen: http://[::]:8073
|
||||
database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 10
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
|
|
@ -354,12 +354,12 @@ user_api:
|
|||
listen: http://localhost:7781
|
||||
connect: http://localhost:7781
|
||||
account_database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 10
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
device_database:
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;"
|
||||
connection_string: "cosmosdb:AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;DatabaseName=safezone_local;ContainerName=test.criticalarc.com;TenantName=test.criticalarc.com;"
|
||||
max_open_conns: 10
|
||||
max_idle_conns: 2
|
||||
conn_max_lifetime: -1
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ type BlacklistCosmos struct {
|
|||
type BlacklistCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -118,8 +119,8 @@ func (s *blacklistStatements) InsertBlacklist(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (server_name)
|
||||
docId := fmt.Sprintf("%s", serverName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := BlacklistCosmos{
|
||||
ServerName: string(serverName),
|
||||
|
|
@ -127,6 +128,7 @@ func (s *blacklistStatements) InsertBlacklist(
|
|||
|
||||
dbData := &BlacklistCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -159,8 +161,8 @@ func (s *blacklistStatements) SelectBlacklist(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (server_name)
|
||||
docId := fmt.Sprintf("%s", serverName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
// res, err := stmt.QueryContext(ctx, serverName)
|
||||
res, err := getBlacklist(s, ctx, pk, cosmosDocId)
|
||||
if err != nil {
|
||||
|
|
@ -183,8 +185,8 @@ func (s *blacklistStatements) DeleteBlacklist(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (server_name)
|
||||
docId := fmt.Sprintf("%s", serverName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
// _, err := stmt.ExecContext(ctx, serverName)
|
||||
res, err := getBlacklist(s, ctx, pk, cosmosDocId)
|
||||
if(res != nil) {
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ type InboundPeekCosmos struct {
|
|||
type InboundPeekCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -94,7 +95,7 @@ type inboundPeeksStatements struct {
|
|||
|
||||
func queryInboundPeek(s *inboundPeeksStatements, ctx context.Context, qry string, params map[string]interface{}) ([]InboundPeekCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []InboundPeekCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -179,8 +180,8 @@ func (s *inboundPeeksStatements) InsertInboundPeek(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (room_id, server_name, peek_id)
|
||||
docId := fmt.Sprintf("%s_%s_%s", roomID, serverName, peekID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := InboundPeekCosmos{
|
||||
RoomID: roomID,
|
||||
|
|
@ -193,6 +194,7 @@ func (s *inboundPeeksStatements) InsertInboundPeek(
|
|||
|
||||
dbData := &InboundPeekCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -222,8 +224,8 @@ func (s *inboundPeeksStatements) RenewInboundPeek(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (room_id, server_name, peek_id)
|
||||
docId := fmt.Sprintf("%s_%s_%s", roomID, serverName, peekID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// _, err = sqlutil.TxStmt(txn, s.renewInboundPeekStmt).ExecContext(ctx, nowMilli, renewalInterval, roomID, serverName, peekID)
|
||||
res, err := getInboundPeek(s, ctx, pk, cosmosDocId)
|
||||
|
|
@ -252,8 +254,8 @@ func (s *inboundPeeksStatements) SelectInboundPeek(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (room_id, server_name, peek_id)
|
||||
docId := fmt.Sprintf("%s_%s_%s", roomID, serverName, peekID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// row := sqlutil.TxStmt(txn, s.selectInboundPeeksStmt).QueryRowContext(ctx, roomID)
|
||||
row, err := getInboundPeek(s, ctx, pk, cosmosDocId)
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ type JoinedHostCosmos struct {
|
|||
type JoinedHostCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -103,7 +104,7 @@ type joinedHostsStatements struct {
|
|||
|
||||
func queryJoinedHostDistinct(s *joinedHostsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]JoinedHostCosmos, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []JoinedHostCosmos
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -124,7 +125,7 @@ func queryJoinedHostDistinct(s *joinedHostsStatements, ctx context.Context, qry
|
|||
|
||||
func queryJoinedHost(s *joinedHostsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]JoinedHostCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []JoinedHostCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -186,8 +187,8 @@ func (s *joinedHostsStatements) InsertJoinedHosts(
|
|||
// CREATE UNIQUE INDEX IF NOT EXISTS federatonsender_joined_hosts_event_id_idx
|
||||
// ON federationsender_joined_hosts (event_id);
|
||||
docId := fmt.Sprintf("%s", eventID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := JoinedHostCosmos{
|
||||
EventID: eventID,
|
||||
|
|
@ -197,6 +198,7 @@ func (s *joinedHostsStatements) InsertJoinedHosts(
|
|||
|
||||
dbData := &JoinedHostCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ type OutboundPeekCosmos struct {
|
|||
type OutboundPeekCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -91,7 +92,7 @@ type outboundPeeksStatements struct {
|
|||
|
||||
func queryOutboundPeek(s *outboundPeeksStatements, ctx context.Context, qry string, params map[string]interface{}) ([]OutboundPeekCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []OutboundPeekCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -175,8 +176,8 @@ func (s *outboundPeeksStatements) InsertOutboundPeek(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (room_id, server_name, peek_id)
|
||||
docId := fmt.Sprintf("%s_%s_%s", roomID, serverName, peekID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := OutboundPeekCosmos{
|
||||
RoomID: roomID,
|
||||
|
|
@ -189,6 +190,7 @@ func (s *outboundPeeksStatements) InsertOutboundPeek(
|
|||
|
||||
dbData := &OutboundPeekCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -217,8 +219,8 @@ func (s *outboundPeeksStatements) RenewOutboundPeek(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (room_id, server_name, peek_id)
|
||||
docId := fmt.Sprintf("%s_%s_%s", roomID, serverName, peekID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// _, err = sqlutil.TxStmt(txn, s.renewOutboundPeekStmt).ExecContext(ctx, nowMilli, renewalInterval, roomID, serverName, peekID)
|
||||
res, err := getOutboundPeek(s, ctx, pk, cosmosDocId)
|
||||
|
|
@ -247,8 +249,8 @@ func (s *outboundPeeksStatements) SelectOutboundPeek(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (room_id, server_name, peek_id)
|
||||
docId := fmt.Sprintf("%s_%s_%s", roomID, serverName, peekID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// row := sqlutil.TxStmt(txn, s.selectOutboundPeeksStmt).QueryRowContext(ctx, roomID)
|
||||
row, err := getOutboundPeek(s, ctx, pk, cosmosDocId)
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ type QueueEDUCosmosNumber struct {
|
|||
type QueueEDUCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -103,7 +104,7 @@ type queueEDUsStatements struct {
|
|||
|
||||
func queryQueueEDUC(s *queueEDUsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]QueueEDUCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []QueueEDUCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -124,7 +125,7 @@ func queryQueueEDUC(s *queueEDUsStatements, ctx context.Context, qry string, par
|
|||
|
||||
func queryQueueEDUCDistinct(s *queueEDUsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]QueueEDUCosmos, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []QueueEDUCosmos
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -145,7 +146,7 @@ func queryQueueEDUCDistinct(s *queueEDUsStatements, ctx context.Context, qry str
|
|||
|
||||
func queryQueueEDUCNumber(s *queueEDUsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]QueueEDUCosmosNumber, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []QueueEDUCosmosNumber
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -207,8 +208,8 @@ func (s *queueEDUsStatements) InsertQueueEDU(
|
|||
// CREATE UNIQUE INDEX IF NOT EXISTS federationsender_queue_edus_json_nid_idx
|
||||
// ON federationsender_queue_edus (json_nid, server_name);
|
||||
docId := fmt.Sprintf("%d_%s", nid, eduType)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := QueueEDUCosmos{
|
||||
EDUType: eduType,
|
||||
|
|
@ -218,6 +219,7 @@ func (s *queueEDUsStatements) InsertQueueEDU(
|
|||
|
||||
dbData := &QueueEDUCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ type QueueJSONCosmos struct {
|
|||
type QueueJSONCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -75,7 +76,7 @@ type queueJSONStatements struct {
|
|||
|
||||
func queryQueueJSON(s *queueJSONStatements, ctx context.Context, qry string, params map[string]interface{}) ([]QueueJSONCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []QueueJSONCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -130,8 +131,8 @@ func (s *queueJSONStatements) InsertQueueJSON(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// json_nid INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
docId := fmt.Sprintf("%d", idSeq)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
//Convert to byte
|
||||
jsonData := []byte(json)
|
||||
|
|
@ -143,6 +144,7 @@ func (s *queueJSONStatements) InsertQueueJSON(
|
|||
|
||||
dbData := &QueueJSONCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ type QueuePDUCosmosNumber struct {
|
|||
type QueuePDUCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -115,7 +116,7 @@ type queuePDUsStatements struct {
|
|||
|
||||
func queryQueuePDU(s *queuePDUsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]QueuePDUCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []QueuePDUCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -136,7 +137,7 @@ func queryQueuePDU(s *queuePDUsStatements, ctx context.Context, qry string, para
|
|||
|
||||
func queryQueuePDUDistinct(s *queuePDUsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]QueuePDUCosmos, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []QueuePDUCosmos
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -157,7 +158,7 @@ func queryQueuePDUDistinct(s *queuePDUsStatements, ctx context.Context, qry stri
|
|||
|
||||
func queryQueuePDUNumber(s *queuePDUsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]QueuePDUCosmosNumber, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []QueuePDUCosmosNumber
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -219,8 +220,8 @@ func (s *queuePDUsStatements) InsertQueuePDU(
|
|||
// CREATE UNIQUE INDEX IF NOT EXISTS federationsender_queue_pdus_pdus_json_nid_idx
|
||||
// ON federationsender_queue_pdus (json_nid, server_name);
|
||||
docId := fmt.Sprintf("%d_%s", nid, serverName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := QueuePDUCosmos{
|
||||
JSONNID: nid,
|
||||
|
|
@ -230,6 +231,7 @@ func (s *queuePDUsStatements) InsertQueuePDU(
|
|||
|
||||
dbData := &QueuePDUCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -3,4 +3,5 @@ package cosmosdbapi
|
|||
type CosmosConfig struct {
|
||||
DatabaseName string
|
||||
ContainerName string
|
||||
TenantName string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ const accountEndpointName = "AccountEndpoint"
|
|||
const accountKeyName = "AccountKey"
|
||||
const databaseName = "DatabaseName"
|
||||
const containerName = "ContainerName"
|
||||
const tenantName = "TenantName"
|
||||
|
||||
func getConnectionString(d *config.DataSource) config.DataSource {
|
||||
var connString string
|
||||
|
|
@ -43,8 +44,10 @@ func GetCosmosConfig(d *config.DataSource) cosmosdbapi.CosmosConfig {
|
|||
connMap := getConnectionProperties(string(connString))
|
||||
database := connMap[databaseName]
|
||||
container := connMap[containerName]
|
||||
tenant := connMap[tenantName]
|
||||
return cosmosdbapi.CosmosConfig{
|
||||
DatabaseName: database,
|
||||
ContainerName: container,
|
||||
TenantName: tenant,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import (
|
|||
type SequenceCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -44,6 +45,7 @@ func GetNextSequence(
|
|||
dbData = SequenceCosmosData{}
|
||||
dbData.Id = cosmosDocId
|
||||
dbData.Pk = pk
|
||||
dbData.Tn = config.TenantName
|
||||
dbData.Cn = dbCollectionName
|
||||
dbData.Value = initial
|
||||
var optionsCreate = cosmosdbapi.GetCreateDocumentOptions(dbData.Pk)
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ type PartitionOffsetCosmos struct {
|
|||
type PartitionOffsetCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -188,7 +189,7 @@ func (s *PartitionOffsetStatements) upsertPartitionOffset(
|
|||
dbCollectionName := getCollectionName(*s)
|
||||
// UNIQUE (topic, partition)
|
||||
docId := fmt.Sprintf("%s_%d", topic, partition)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.CosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.CosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.CosmosConfig.ContainerName, dbCollectionName)
|
||||
|
||||
data := PartitionOffsetCosmos{
|
||||
|
|
@ -199,6 +200,7 @@ func (s *PartitionOffsetStatements) upsertPartitionOffset(
|
|||
|
||||
dbData := &PartitionOffsetCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.CosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
// nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ type TopicCosmosNumber struct {
|
|||
type TopicCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -57,6 +58,7 @@ type MessageCosmos struct {
|
|||
type MessageCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -233,6 +235,7 @@ func (t *topicsStatements) InsertTopic(
|
|||
|
||||
dbData := &TopicCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: t.DB.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -364,6 +367,7 @@ func (t *topicsStatements) InsertTopics(
|
|||
|
||||
dbData := &MessageCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: t.DB.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ type DeviceKeyCosmosNumber struct {
|
|||
type DeviceKeyCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -80,14 +81,14 @@ const selectBatchDeviceKeysSQL = "" +
|
|||
|
||||
// "SELECT MAX(stream_id) FROM keyserver_device_keys WHERE user_id=$1"
|
||||
const selectMaxStreamForUserSQL = "" +
|
||||
"select max(c.mx_keyserver_device_key.stream_id) as number from c where c._cn = @x1 " +
|
||||
"and c.mx_keyserver_device_key.user_id = @x2 "
|
||||
"select max(c.mx_keyserver_device_key.stream_id) as number from c where c._sid = @x1 and c._cn = @x2 " +
|
||||
"and c.mx_keyserver_device_key.user_id = @x3 "
|
||||
|
||||
// "SELECT COUNT(*) FROM keyserver_device_keys WHERE user_id=$1 AND stream_id IN ($2)"
|
||||
const countStreamIDsForUserSQL = "" +
|
||||
"select count(c._ts) as number from c where c._cn = @x1 " +
|
||||
"and c.mx_keyserver_device_key.user_id = @x2 " +
|
||||
"and ARRAY_CONTAINS(@x3, c.mx_keyserver_device_key.stream_id) "
|
||||
"select count(c._ts) as number from c where c._sid = @x1 and c._cn = @x2 " +
|
||||
"and c.mx_keyserver_device_key.user_id = @x3 " +
|
||||
"and ARRAY_CONTAINS(@x4, c.mx_keyserver_device_key.stream_id) "
|
||||
|
||||
const selectAllDeviceKeysSQL = "" +
|
||||
"select * from c where c._cn = @x1 " +
|
||||
|
|
@ -98,7 +99,7 @@ const selectAllDeviceKeysSQL = "" +
|
|||
|
||||
func queryDeviceKey(s *deviceKeysStatements, ctx context.Context, qry string, params map[string]interface{}) ([]DeviceKeyCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []DeviceKeyCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -122,7 +123,7 @@ func queryDeviceKeyNumber(s *deviceKeysStatements, ctx context.Context, qry stri
|
|||
|
||||
var optionsQry = cosmosdbapi.GetQueryAllPartitionsDocumentsOptions()
|
||||
var query = cosmosdbapi.GetQuery(qry, params)
|
||||
var _, err = cosmosdbapi.GetClient(s.db.connection).QueryDocuments(
|
||||
var _, _ = cosmosdbapi.GetClient(s.db.connection).QueryDocuments(
|
||||
ctx,
|
||||
s.db.cosmosConfig.DatabaseName,
|
||||
s.db.cosmosConfig.ContainerName,
|
||||
|
|
@ -130,9 +131,10 @@ func queryDeviceKeyNumber(s *deviceKeysStatements, ctx context.Context, qry stri
|
|||
&response,
|
||||
optionsQry)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
//WHen there is no data these GroupBy queries return errors
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
|
||||
if len(response) == 0 {
|
||||
return nil, cosmosdbutil.ErrNoRows
|
||||
|
|
@ -301,8 +303,8 @@ func (s *deviceKeysStatements) SelectDeviceKeysJSON(ctx context.Context, keys []
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (user_id, device_id)
|
||||
docId := fmt.Sprintf("%s_%s", key.UserID, key.DeviceID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
response, err := getDeviceKey(s, ctx, pk, cosmosDocId)
|
||||
|
||||
|
|
@ -333,12 +335,13 @@ func (s *deviceKeysStatements) SelectMaxStreamIDForUser(ctx context.Context, txn
|
|||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
params := map[string]interface{}{
|
||||
"@x1": dbCollectionName,
|
||||
"@x2": userID,
|
||||
"@x1": s.db.cosmosConfig.TenantName,
|
||||
"@x2": dbCollectionName,
|
||||
"@x3": userID,
|
||||
}
|
||||
|
||||
// err = sqlutil.TxStmt(txn, s.selectMaxStreamForUserStmt).QueryRowContext(ctx, userID).Scan(&nullStream)
|
||||
response, err := queryDeviceKeyNumber(s, ctx, countStreamIDsForUserSQL, params)
|
||||
response, err := queryDeviceKeyNumber(s, ctx, selectMaxStreamForUserSQL, params)
|
||||
|
||||
if err != nil {
|
||||
if err == cosmosdbutil.ErrNoRows {
|
||||
|
|
@ -370,9 +373,10 @@ func (s *deviceKeysStatements) CountStreamIDsForUser(ctx context.Context, userID
|
|||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
params := map[string]interface{}{
|
||||
"@x1": dbCollectionName,
|
||||
"@x2": userID,
|
||||
"@x3": iStreamIDs,
|
||||
"@x1": s.db.cosmosConfig.TenantName,
|
||||
"@x2": dbCollectionName,
|
||||
"@x3": userID,
|
||||
"@x4": iStreamIDs,
|
||||
}
|
||||
|
||||
// query := strings.Replace(countStreamIDsForUserSQL, "($2)", sqlutil.QueryVariadicOffset(len(streamIDs), 1), 1)
|
||||
|
|
@ -401,16 +405,17 @@ func (s *deviceKeysStatements) InsertDeviceKeys(ctx context.Context, txn *sql.Tx
|
|||
// " ON CONFLICT (user_id, device_id)" +
|
||||
// " DO UPDATE SET key_json = $4, stream_id = $5, display_name = $6"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
for _, key := range keys {
|
||||
now := time.Now().Unix()
|
||||
// UNIQUE (user_id, device_id)
|
||||
docId := fmt.Sprintf("%s_%s", key.UserID, key.DeviceID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
|
||||
dbData := &DeviceKeyCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: now,
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ type KeyChangeUserMaxCosmosData struct {
|
|||
type KeyChangeCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -70,10 +71,10 @@ type KeyChangeCosmosData struct {
|
|||
// "SELECT user_id, MAX(offset) FROM keyserver_key_changes WHERE partition = $1 AND offset > $2 AND offset <= $3 GROUP BY user_id"
|
||||
const selectKeyChangesSQL = "" +
|
||||
"select c.mx_keyserver_key_change.user_id as user_id, max(c.mx_keyserver_key_change._offset) as max_offset " +
|
||||
"from c where c._cn = @x1 " +
|
||||
"and c.mx_keyserver_key_change.partition = @x2 " +
|
||||
"and c.mx_keyserver_key_change._offset > @x3 " +
|
||||
"and c.mx_keyserver_key_change._offset < @x4 " +
|
||||
"from c where c._sid = @x1 and c._cn = @x2 " +
|
||||
"and c.mx_keyserver_key_change.partition = @x3 " +
|
||||
"and c.mx_keyserver_key_change._offset > @x4 " +
|
||||
"and c.mx_keyserver_key_change._offset < @x5 " +
|
||||
"group by c.mx_keyserver_key_change.user_id "
|
||||
|
||||
type keyChangesStatements struct {
|
||||
|
|
@ -121,10 +122,10 @@ func (s *keyChangesStatements) InsertKeyChange(ctx context.Context, partition in
|
|||
// " DO UPDATE SET user_id = $3"
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
// UNIQUE (partition, offset)
|
||||
docId := fmt.Sprintf("%d_%d", partition, offset)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
|
||||
data := KeyChangeCosmos{
|
||||
Offset: offset,
|
||||
|
|
@ -134,6 +135,7 @@ func (s *keyChangesStatements) InsertKeyChange(ctx context.Context, partition in
|
|||
|
||||
dbData := KeyChangeCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -165,10 +167,11 @@ func (s *keyChangesStatements) SelectKeyChanges(
|
|||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
params := map[string]interface{}{
|
||||
"@x1": dbCollectionName,
|
||||
"@x2": partition,
|
||||
"@x3": fromOffset,
|
||||
"@x4": toOffset,
|
||||
"@x1": s.db.cosmosConfig.TenantName,
|
||||
"@x2": dbCollectionName,
|
||||
"@x3": partition,
|
||||
"@x4": fromOffset,
|
||||
"@x5": toOffset,
|
||||
}
|
||||
|
||||
response, err := queryKeyChangeUserMax(s, ctx, s.selectKeyChangesStmt, params)
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ type OneTimeKeyAlgoNumberCosmosData struct {
|
|||
type OneTimeKeyCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -111,7 +112,7 @@ func queryOneTimeKey(s *oneTimeKeysStatements, ctx context.Context, qry string,
|
|||
var response []OneTimeKeyCosmosData
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
var query = cosmosdbapi.GetQuery(qry, params)
|
||||
var _, err = cosmosdbapi.GetClient(s.db.connection).QueryDocuments(
|
||||
|
|
@ -133,7 +134,7 @@ func queryOneTimeKeyAlgoCount(s *oneTimeKeysStatements, ctx context.Context, qry
|
|||
var response []OneTimeKeyAlgoNumberCosmosData
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
// var optionsQry = cosmosdbapi.GetQueryAllPartitionsDocumentsOptions()
|
||||
var query = cosmosdbapi.GetQuery(qry, params)
|
||||
|
|
@ -273,7 +274,7 @@ func (s *oneTimeKeysStatements) InsertOneTimeKeys(
|
|||
}
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
for keyIDWithAlgo, keyJSON := range keys.KeyJSON {
|
||||
|
||||
|
|
@ -286,7 +287,7 @@ func (s *oneTimeKeysStatements) InsertOneTimeKeys(
|
|||
|
||||
// UNIQUE (user_id, device_id, key_id, algorithm)
|
||||
docId := fmt.Sprintf("%s_%s_%s_%s", keys.UserID, keys.DeviceID, keyID, algo)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
|
||||
data := OneTimeKeyCosmos{
|
||||
Algorithm: algo,
|
||||
|
|
@ -298,6 +299,7 @@ func (s *oneTimeKeysStatements) InsertOneTimeKeys(
|
|||
|
||||
dbData := &OneTimeKeyCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: now,
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ type StaleDeviceListCosmos struct {
|
|||
type StaleDeviceListCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -60,9 +61,9 @@ type StaleDeviceListCosmosData struct {
|
|||
|
||||
// "SELECT user_id FROM keyserver_stale_device_lists WHERE is_stale = $1 AND domain = $2"
|
||||
const selectStaleDeviceListsWithDomainsSQL = "" +
|
||||
"select * from c where c._cn = @x1 " +
|
||||
"and c.mx_keyserver_stale_device_list.is_stale = @x2 " +
|
||||
"and c.mx_keyserver_stale_device_list.domain = @x3 "
|
||||
"select * from c where c._sid = @x1 and c._cn = @x2 " +
|
||||
"and c.mx_keyserver_stale_device_list.is_stale = @x3 " +
|
||||
"and c.mx_keyserver_stale_device_list.domain = @x4 "
|
||||
|
||||
// "SELECT user_id FROM keyserver_stale_device_lists WHERE is_stale = $1"
|
||||
const selectStaleDeviceListsSQL = "" +
|
||||
|
|
@ -120,10 +121,10 @@ func (s *staleDeviceListsStatements) InsertStaleDeviceList(ctx context.Context,
|
|||
}
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
// user_id TEXT PRIMARY KEY NOT NULL,
|
||||
docId := userID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
|
||||
data := StaleDeviceListCosmos{
|
||||
Domain: string(domain),
|
||||
|
|
@ -133,6 +134,7 @@ func (s *staleDeviceListsStatements) InsertStaleDeviceList(ctx context.Context,
|
|||
|
||||
dbData := StaleDeviceListCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -159,8 +161,9 @@ func (s *staleDeviceListsStatements) SelectUserIDsWithStaleDeviceLists(ctx conte
|
|||
// "SELECT user_id FROM keyserver_stale_device_lists WHERE is_stale = $1"
|
||||
// rows, err := s.selectStaleDeviceListsStmt.QueryContext(ctx, true)
|
||||
params := map[string]interface{}{
|
||||
"@x1": dbCollectionName,
|
||||
"@x2": true,
|
||||
"@x1": s.db.cosmosConfig.TenantName,
|
||||
"@x2": dbCollectionName,
|
||||
"@x3": true,
|
||||
}
|
||||
rows, err := queryStaleDeviceList(s, ctx, s.selectStaleDeviceListsWithDomainsStmt, params)
|
||||
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ type MediaRepositoryCosmos struct {
|
|||
type MediaRepositoryCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -100,7 +101,7 @@ type mediaStatements struct {
|
|||
|
||||
func queryMediaRepository(s *mediaStatements, ctx context.Context, qry string, params map[string]interface{}) ([]MediaRepositoryCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []MediaRepositoryCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -157,8 +158,8 @@ func (s *mediaStatements) insertMedia(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// CREATE UNIQUE INDEX IF NOT EXISTS mediaapi_media_repository_index ON mediaapi_media_repository (media_id, media_origin);
|
||||
docId := fmt.Sprintf("%s_%s", mediaMetadata.MediaID, mediaMetadata.Origin)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := MediaRepositoryCosmos{
|
||||
MediaID: string(mediaMetadata.MediaID),
|
||||
|
|
@ -173,6 +174,7 @@ func (s *mediaStatements) insertMedia(
|
|||
|
||||
dbData := &MediaRepositoryCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -217,8 +219,8 @@ func (s *mediaStatements) selectMedia(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// CREATE UNIQUE INDEX IF NOT EXISTS mediaapi_media_repository_index ON mediaapi_media_repository (media_id, media_origin);
|
||||
docId := fmt.Sprintf("%s_%s", mediaMetadata.MediaID, mediaMetadata.Origin)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// err := s.selectMediaStmt.QueryRowContext(
|
||||
// ctx, mediaMetadata.MediaID, mediaMetadata.Origin,
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ type ThumbnailCosmos struct {
|
|||
type ThumbnailCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -91,7 +92,7 @@ type thumbnailStatements struct {
|
|||
|
||||
func queryThumbnail(s *thumbnailStatements, ctx context.Context, qry string, params map[string]interface{}) ([]ThumbnailCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []ThumbnailCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -155,8 +156,8 @@ func (s *thumbnailStatements) insertThumbnail(
|
|||
thumbnailMetadata.ThumbnailSize.Height,
|
||||
thumbnailMetadata.ThumbnailSize.ResizeMethod,
|
||||
)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// _, err := stmt.ExecContext(
|
||||
// ctx,
|
||||
|
|
@ -183,6 +184,7 @@ func (s *thumbnailStatements) insertThumbnail(
|
|||
|
||||
dbData := &ThumbnailCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -230,8 +232,8 @@ func (s *thumbnailStatements) selectThumbnail(
|
|||
height,
|
||||
resizeMethod,
|
||||
)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// row := sqlutil.TxStmt(txn, s.selectOutboundPeeksStmt).QueryRowContext(ctx, roomID)
|
||||
row, err := getThumbnail(s, ctx, pk, cosmosDocId)
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ type EventJSONCosmos struct {
|
|||
type EventJSONCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -72,7 +73,7 @@ type eventJSONStatements struct {
|
|||
|
||||
func queryEventJSON(s *eventJSONStatements, ctx context.Context, qry string, params map[string]interface{}) ([]EventJSONCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []EventJSONCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -117,8 +118,8 @@ func (s *eventJSONStatements) InsertEventJSON(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
|
||||
docId := fmt.Sprintf("%d", eventNID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := EventJSONCosmos{
|
||||
EventNID: int64(eventNID),
|
||||
|
|
@ -127,6 +128,7 @@ func (s *eventJSONStatements) InsertEventJSON(
|
|||
|
||||
var dbData = EventJSONCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ type EventStateKeysCosmos struct {
|
|||
type EventStateKeysCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -91,7 +92,7 @@ type eventStateKeyStatements struct {
|
|||
|
||||
func queryEventStateKeys(s *eventStateKeyStatements, ctx context.Context, qry string, params map[string]interface{}) ([]EventStateKeysCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []EventStateKeysCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -152,8 +153,8 @@ func ensureEventStateKeys(s *eventStateKeyStatements, ctx context.Context) {
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// event_state_key TEXT NOT NULL UNIQUE
|
||||
docId := ""
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := EventStateKeysCosmos{
|
||||
EventStateKey: "",
|
||||
|
|
@ -163,6 +164,7 @@ func ensureEventStateKeys(s *eventStateKeyStatements, ctx context.Context) {
|
|||
// event_state_key_nid INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
dbData := EventStateKeysCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -201,8 +203,8 @@ func (s *eventStateKeyStatements) InsertEventStateKeyNID(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// event_state_key TEXT NOT NULL UNIQUE
|
||||
docId := eventStateKey
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
existing, _ := getEventStateKeys(s, ctx, pk, cosmosDocId)
|
||||
|
||||
|
|
@ -222,6 +224,7 @@ func (s *eventStateKeyStatements) InsertEventStateKeyNID(
|
|||
// event_state_key_nid INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
dbData = EventStateKeysCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ import (
|
|||
type EventTypeCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -119,7 +120,7 @@ func NewCosmosDBEventTypesTable(db *Database) (tables.EventTypes, error) {
|
|||
|
||||
func queryEventTypes(s *eventTypeStatements, ctx context.Context, qry string, params map[string]interface{}) ([]EventTypeCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []EventTypeCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -167,11 +168,12 @@ func insertEventTypeCore(s *eventTypeStatements, ctx context.Context, eventType
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
|
||||
//Unique on eventType
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, eventType.EventType)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, eventType.EventType)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = EventTypeCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -248,8 +250,8 @@ func ensureEventTypes(s *eventTypeStatements, ctx context.Context) error {
|
|||
func selectEventTypeCore(s *eventTypeStatements, ctx context.Context, eventType string) (*EventTypeCosmos, error) {
|
||||
var response EventTypeCosmosData
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, eventType)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, eventType)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
err := cosmosdbapi.GetDocumentOrNil(
|
||||
s.db.connection,
|
||||
s.db.cosmosConfig,
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ type EventCosmosMaxDepth struct {
|
|||
type EventCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -143,8 +144,8 @@ const bulkSelectEventNIDSQL = "" +
|
|||
// "SELECT COALESCE(MAX(depth) + 1, 0) FROM roomserver_events WHERE event_nid IN ($1)"
|
||||
const selectMaxEventDepthSQL = "" +
|
||||
"select sub.maxinner != null ? sub.maxinner + 1 : 0 as maxdepth from " +
|
||||
"(select MAX(c.mx_roomserver_event.depth) maxinner from c where c._cn = @x1 " +
|
||||
" and ARRAY_CONTAINS(@x2, c.mx_roomserver_event.event_nid)) sub"
|
||||
"(select MAX(c.mx_roomserver_event.depth) maxinner from c where c._sid = @x1 and c._cn = @x2 " +
|
||||
" and ARRAY_CONTAINS(@x3, c.mx_roomserver_event.event_nid)) sub"
|
||||
|
||||
// "SELECT event_nid, room_nid FROM roomserver_events WHERE event_nid IN ($1)"
|
||||
const selectRoomNIDsForEventNIDsSQL = "" +
|
||||
|
|
@ -205,7 +206,7 @@ func mapFromEventNIDArray(eventNIDs []types.EventNID) []int64 {
|
|||
|
||||
func queryEvent(s *eventStatements, ctx context.Context, qry string, params map[string]interface{}) ([]EventCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []EventCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -341,8 +342,8 @@ func (s *eventStatements) InsertEvent(
|
|||
// event_id TEXT NOT NULL UNIQUE,
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
docId := eventID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
dbData, errGet := getEvent(s, ctx, pk, cosmosDocId)
|
||||
|
||||
|
|
@ -368,6 +369,7 @@ func (s *eventStatements) InsertEvent(
|
|||
|
||||
dbData = &EventCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -425,9 +427,9 @@ func (s *eventStatements) SelectEvent(
|
|||
|
||||
// "SELECT event_nid, state_snapshot_nid FROM roomserver_events WHERE event_id = $1"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
docId := eventID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
var response, err = getEvent(s, ctx, pk, cosmosDocId)
|
||||
if err != nil {
|
||||
return 0, 0, err
|
||||
|
|
@ -783,8 +785,9 @@ func (s *eventStatements) SelectMaxEventDepth(ctx context.Context, txn *sql.Tx,
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var response []EventCosmosMaxDepth
|
||||
params := map[string]interface{}{
|
||||
"@x1": dbCollectionName,
|
||||
"@x2": eventNIDs,
|
||||
"@x1": s.db.cosmosConfig.TenantName,
|
||||
"@x2": dbCollectionName,
|
||||
"@x3": eventNIDs,
|
||||
}
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryAllPartitionsDocumentsOptions()
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ type InviteCosmos struct {
|
|||
type InviteCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -100,7 +101,7 @@ type inviteStatements struct {
|
|||
|
||||
func queryInvite(s *inviteStatements, ctx context.Context, qry string, params map[string]interface{}) ([]InviteCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []InviteCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -186,11 +187,12 @@ func (s *inviteStatements) InsertInviteEvent(
|
|||
|
||||
// invite_event_id TEXT PRIMARY KEY,
|
||||
docId := inviteEventID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = InviteCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ type MembershipCosmos struct {
|
|||
type MembershipCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -177,7 +178,7 @@ type membershipStatements struct {
|
|||
|
||||
func queryMembership(s *membershipStatements, ctx context.Context, qry string, params map[string]interface{}) ([]MembershipCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []MembershipCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -262,8 +263,8 @@ func (s *membershipStatements) InsertMembership(
|
|||
|
||||
// UNIQUE (room_nid, target_nid)
|
||||
docId := fmt.Sprintf("%d_%d", roomNID, targetUserNID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := MembershipCosmos{
|
||||
EventNID: 0,
|
||||
|
|
@ -277,6 +278,7 @@ func (s *membershipStatements) InsertMembership(
|
|||
|
||||
var dbData = MembershipCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -305,8 +307,8 @@ func (s *membershipStatements) SelectMembershipForUpdate(
|
|||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
docId := fmt.Sprintf("%d_%d", roomNID, targetUserNID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
response, err := getMembership(s, ctx, pk, cosmosDocId)
|
||||
if response != nil {
|
||||
membership = tables.MembershipState(response.Membership.MembershipNID)
|
||||
|
|
@ -324,8 +326,8 @@ func (s *membershipStatements) SelectMembershipFromRoomAndTarget(
|
|||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
docId := fmt.Sprintf("%d_%d", roomNID, targetUserNID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
response, err := getMembership(s, ctx, pk, cosmosDocId)
|
||||
if response != nil {
|
||||
eventNID = types.EventNID(response.Membership.EventNID)
|
||||
|
|
@ -412,8 +414,8 @@ func (s *membershipStatements) UpdateMembership(
|
|||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
docId := fmt.Sprintf("%d_%d", roomNID, targetUserNID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
dbData, err := getMembership(s, ctx, pk, cosmosDocId)
|
||||
|
||||
if err != nil {
|
||||
|
|
@ -467,7 +469,7 @@ func (s *membershipStatements) SelectJoinedUsersSetForRooms(ctx context.Context,
|
|||
"@x1": dbCollectionName,
|
||||
"@x2": roomNIDs,
|
||||
}
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []MembershipJoinedCountCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -506,7 +508,7 @@ func (s *membershipStatements) SelectKnownUsers(ctx context.Context, userID type
|
|||
"@x4": limit,
|
||||
}
|
||||
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var responseDistinctRoom []MembershipCosmos
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -600,8 +602,8 @@ func (s *membershipStatements) UpdateForgetMembership(
|
|||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
docId := fmt.Sprintf("%d_%d", roomNID, targetUserNID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
dbData, err := getMembership(s, ctx, pk, cosmosDocId)
|
||||
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ type PreviousEventCosmos struct {
|
|||
type PreviousEventCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -136,8 +137,8 @@ func (s *previousEventStatements) InsertPreviousEvent(
|
|||
// TODO: Check value
|
||||
// docId := fmt.Sprintf("%s_%s", previousEventID, previousEventReferenceSHA256)
|
||||
docId := previousEventID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// SELECT 1 FROM roomserver_previous_events
|
||||
// WHERE previous_event_id = $1 AND previous_reference_sha256 = $2
|
||||
|
|
@ -160,6 +161,7 @@ func (s *previousEventStatements) InsertPreviousEvent(
|
|||
|
||||
dbData = PreviousEventCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -208,8 +210,8 @@ func (s *previousEventStatements) SelectPreviousEventExists(
|
|||
// TODO: Check value
|
||||
// docId := fmt.Sprintf("%s_%s", previousEventID, previousEventReferenceSHA256)
|
||||
docId := eventID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, string(docId))
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, string(docId))
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
// SELECT 1 FROM roomserver_previous_events
|
||||
// WHERE previous_event_id = $1 AND previous_reference_sha256 = $2
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ type PublishCosmos struct {
|
|||
type PublishCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -71,7 +72,7 @@ type publishedStatements struct {
|
|||
|
||||
func queryPublish(s *publishedStatements, ctx context.Context, qry string, params map[string]interface{}) ([]PublishCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []PublishCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -133,8 +134,8 @@ func (s *publishedStatements) UpsertRoomPublished(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// room_id TEXT NOT NULL PRIMARY KEY,
|
||||
docId := roomID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := PublishCosmos{
|
||||
RoomID: roomID,
|
||||
|
|
@ -143,6 +144,7 @@ func (s *publishedStatements) UpsertRoomPublished(
|
|||
|
||||
var dbData = PublishCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -169,8 +171,8 @@ func (s *publishedStatements) SelectPublishedFromRoomID(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// room_id TEXT NOT NULL PRIMARY KEY,
|
||||
docId := roomID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
response, err := getPublish(s, ctx, pk, cosmosDocId)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ type RedactionCosmos struct {
|
|||
type RedactionCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -81,7 +82,7 @@ type redactionStatements struct {
|
|||
|
||||
func queryRedaction(s *redactionStatements, ctx context.Context, qry string, params map[string]interface{}) ([]RedactionCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []RedactionCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -154,8 +155,8 @@ func (s *redactionStatements) InsertRedaction(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// redaction_event_id TEXT PRIMARY KEY,
|
||||
docId := info.RedactionEventID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := RedactionCosmos{
|
||||
RedactionEventID: info.RedactionEventID,
|
||||
|
|
@ -165,6 +166,7 @@ func (s *redactionStatements) InsertRedaction(
|
|||
|
||||
var dbData = RedactionCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -199,8 +201,8 @@ func (s *redactionStatements) SelectRedactionInfoByRedactionEventID(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// redaction_event_id TEXT PRIMARY KEY,
|
||||
docId := redactionEventID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
response, err := getRedaction(s, ctx, pk, cosmosDocId)
|
||||
if err != nil {
|
||||
|
|
@ -263,8 +265,8 @@ func (s *redactionStatements) MarkRedactionValidated(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// redaction_event_id TEXT PRIMARY KEY,
|
||||
docId := redactionEventID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
response, err := getRedaction(s, ctx, pk, cosmosDocId)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ type RoomAliasCosmos struct {
|
|||
type RoomAliasCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -82,7 +83,7 @@ type roomAliasesStatements struct {
|
|||
|
||||
func queryRoomAlias(s *roomAliasesStatements, ctx context.Context, qry string, params map[string]interface{}) ([]RoomAliasCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []RoomAliasCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -152,11 +153,12 @@ func (s *roomAliasesStatements) InsertRoomAlias(
|
|||
|
||||
// alias TEXT NOT NULL PRIMARY KEY,
|
||||
docId := alias
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = RoomAliasCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -184,8 +186,8 @@ func (s *roomAliasesStatements) SelectRoomIDFromAlias(
|
|||
|
||||
// alias TEXT NOT NULL PRIMARY KEY,
|
||||
docId := alias
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
response, err := getRoomAlias(s, ctx, pk, cosmosDocId)
|
||||
|
||||
if err != nil {
|
||||
|
|
@ -235,8 +237,8 @@ func (s *roomAliasesStatements) SelectCreatorIDFromAlias(
|
|||
|
||||
// alias TEXT NOT NULL PRIMARY KEY,
|
||||
docId := alias
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
response, err := getRoomAlias(s, ctx, pk, cosmosDocId)
|
||||
|
||||
if err != nil {
|
||||
|
|
@ -258,8 +260,8 @@ func (s *roomAliasesStatements) DeleteRoomAlias(
|
|||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
docId := alias
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var options = cosmosdbapi.GetDeleteDocumentOptions(pk)
|
||||
var _, err = cosmosdbapi.GetClient(s.db.connection).DeleteDocument(
|
||||
ctx,
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import (
|
|||
type RoomCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -146,7 +147,7 @@ func mapToRoomEventNIDArray(eventNIDs []int64) []types.EventNID {
|
|||
|
||||
func queryRoom(s *roomStatements, ctx context.Context, qry string, params map[string]interface{}) ([]RoomCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []RoomCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -224,8 +225,8 @@ func (s *roomStatements) SelectRoomInfo(ctx context.Context, roomID string) (*ty
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// room_id TEXT NOT NULL UNIQUE,
|
||||
docId := roomID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
room, err := getRoom(s, ctx, pk, cosmosDocId)
|
||||
|
||||
if err != nil {
|
||||
|
|
@ -253,8 +254,8 @@ func (s *roomStatements) InsertRoomNID(
|
|||
// ON CONFLICT DO NOTHING;
|
||||
// room_id TEXT NOT NULL UNIQUE,
|
||||
docId := roomID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
dbData, errGet := getRoom(s, ctx, pk, cosmosDocId)
|
||||
|
||||
|
|
@ -273,6 +274,7 @@ func (s *roomStatements) InsertRoomNID(
|
|||
|
||||
dbData = &RoomCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -307,8 +309,8 @@ func (s *roomStatements) SelectRoomNID(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// room_id TEXT NOT NULL UNIQUE,
|
||||
docId := roomID
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
room, err := getRoom(s, ctx, pk, cosmosDocId)
|
||||
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ type StateBlockCosmosMaxNID struct {
|
|||
type StateBlockCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -67,7 +68,7 @@ type StateBlockCosmosData struct {
|
|||
const selectNextStateBlockNIDSQL = "" +
|
||||
"select sub.maxinner != null ? sub.maxinner + 1 : 1 as maxstateblocknid " +
|
||||
"from " +
|
||||
"(select MAX(c.mx_roomserver_state_block.state_block_nid) maxinner from c where c._cn = @x1) as sub"
|
||||
"(select MAX(c.mx_roomserver_state_block.state_block_nid) maxinner from c where c._sid = @x1 and c._cn = @x2) as sub"
|
||||
|
||||
// Bulk state lookup by numeric state block ID.
|
||||
// Sort by the state_block_nid, event_type_nid, event_state_key_nid
|
||||
|
|
@ -120,7 +121,7 @@ type stateBlockStatements struct {
|
|||
|
||||
func queryStateBlock(s *stateBlockStatements, ctx context.Context, qry string, params map[string]interface{}) ([]StateBlockCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []StateBlockCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -169,11 +170,12 @@ func inertStateBlockCore(s *stateBlockStatements, ctx context.Context, stateBloc
|
|||
|
||||
// UNIQUE (state_block_nid, event_type_nid, event_state_key_nid)
|
||||
docId := fmt.Sprintf("%d_%d_%d", data.StateBlockNID, data.EventTypeNID, data.EventStateKeyNID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = StateBlockCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -196,7 +198,8 @@ func getNextStateBlockNID(s *stateBlockStatements, ctx context.Context) (int64,
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var stateBlockNext []StateBlockCosmosMaxNID
|
||||
params := map[string]interface{}{
|
||||
"@x1": dbCollectionName,
|
||||
"@x1": s.db.cosmosConfig.TenantName,
|
||||
"@x2": dbCollectionName,
|
||||
}
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryAllPartitionsDocumentsOptions()
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ type StateSnapshotCosmos struct {
|
|||
type StateSnapshotCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -120,11 +121,12 @@ func (s *stateSnapshotStatements) InsertState(
|
|||
|
||||
// state_snapshot_nid INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
docId := fmt.Sprintf("%d", stateSnapshotNIDSeq)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = StateSnapshotCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -154,7 +156,7 @@ func (s *stateSnapshotStatements) BulkSelectStateBlockNIDs(
|
|||
// "SELECT state_snapshot_nid, state_block_nids FROM roomserver_state_snapshots" +
|
||||
// " WHERE state_snapshot_nid IN ($1) ORDER BY state_snapshot_nid ASC"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []StateSnapshotCosmosData
|
||||
params := map[string]interface{}{
|
||||
"@x1": dbCollectionName,
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ type TransactionCosmos struct {
|
|||
type TransactionCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -119,11 +120,12 @@ func (s *transactionStatements) InsertTransaction(
|
|||
|
||||
// PRIMARY KEY (transaction_id, session_id, user_id)
|
||||
docId := fmt.Sprintf("%s_%d_%s", transactionID, sessionID, userID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = TransactionCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -154,8 +156,8 @@ func (s *transactionStatements) SelectTransactionEventID(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// PRIMARY KEY (transaction_id, session_id, user_id)
|
||||
docId := fmt.Sprintf("%s_%d_%s", transactionID, sessionID, userID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
response, err := getTransaction(s, ctx, pk, cosmosDocId)
|
||||
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ type ServerKeyCosmos struct {
|
|||
type ServerKeyCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -94,7 +95,7 @@ type serverKeyStatements struct {
|
|||
|
||||
func queryServerKey(s *serverKeyStatements, ctx context.Context, qry string, params map[string]interface{}) ([]ServerKeyCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []ServerKeyCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -204,8 +205,8 @@ func (s *serverKeyStatements) upsertServerKeys(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (server_name, server_key_id)
|
||||
docId := fmt.Sprintf("%s_%s", string(request.ServerName), string(request.KeyID))
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := ServerKeyCosmos{
|
||||
ServerName: string(request.ServerName),
|
||||
|
|
@ -218,6 +219,7 @@ func (s *serverKeyStatements) upsertServerKeys(
|
|||
|
||||
dbData := &ServerKeyCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ type AccountDataTypeNumberCosmosData struct {
|
|||
type AccountDataTypeCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -90,7 +91,7 @@ type accountDataStatements struct {
|
|||
|
||||
func queryAccountDataType(s *accountDataStatements, ctx context.Context, qry string, params map[string]interface{}) ([]AccountDataTypeCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []AccountDataTypeCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -111,7 +112,7 @@ func queryAccountDataType(s *accountDataStatements, ctx context.Context, qry str
|
|||
|
||||
func queryAccountDataTypeNumber(s *accountDataStatements, ctx context.Context, qry string, params map[string]interface{}) ([]AccountDataTypeNumberCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []AccountDataTypeNumberCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -159,8 +160,8 @@ func (s *accountDataStatements) InsertAccountData(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (user_id, room_id, type)
|
||||
docId := fmt.Sprintf("%s_%s_%s", userID, roomID, dataType)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := AccountDataTypeCosmos{
|
||||
ID: int64(pos),
|
||||
|
|
@ -171,6 +172,7 @@ func (s *accountDataStatements) InsertAccountData(
|
|||
|
||||
dbData := &AccountDataTypeCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ type BackwardExtremityCosmos struct {
|
|||
type BackwardExtremityCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -85,7 +86,7 @@ type backwardExtremitiesStatements struct {
|
|||
|
||||
func queryBackwardExtremity(s *backwardExtremitiesStatements, ctx context.Context, qry string, params map[string]interface{}) ([]BackwardExtremityCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []BackwardExtremityCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -143,8 +144,8 @@ func (s *backwardExtremitiesStatements) InsertsBackwardExtremity(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// PRIMARY KEY(room_id, event_id, prev_event_id)
|
||||
docId := fmt.Sprintf("%s_%s_%s", roomID, eventID, prevEventID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := BackwardExtremityCosmos{
|
||||
EventID: eventID,
|
||||
|
|
@ -154,6 +155,7 @@ func (s *backwardExtremitiesStatements) InsertsBackwardExtremity(
|
|||
|
||||
dbData := &BackwardExtremityCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ type CurrentRoomStateCosmos struct {
|
|||
type CurrentRoomStateCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -139,7 +140,7 @@ type currentRoomStateStatements struct {
|
|||
|
||||
func queryCurrentRoomState(s *currentRoomStateStatements, ctx context.Context, qry string, params map[string]interface{}) ([]CurrentRoomStateCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []CurrentRoomStateCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -160,7 +161,7 @@ func queryCurrentRoomState(s *currentRoomStateStatements, ctx context.Context, q
|
|||
|
||||
func queryCurrentRoomStateDistinct(s *currentRoomStateStatements, ctx context.Context, qry string, params map[string]interface{}) ([]CurrentRoomStateCosmos, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []CurrentRoomStateCosmos
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -415,8 +416,8 @@ func (s *currentRoomStateStatements) UpsertRoomState(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// " ON CONFLICT (room_id, type, state_key)" +
|
||||
docId := fmt.Sprintf("%s_%s_%s", event.RoomID(), event.Type(), *event.StateKey())
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
membershipData := ""
|
||||
if membership != nil {
|
||||
|
|
@ -437,6 +438,7 @@ func (s *currentRoomStateStatements) UpsertRoomState(
|
|||
|
||||
dbData := &CurrentRoomStateCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -570,10 +572,10 @@ func (s *currentRoomStateStatements) SelectStateEvent(
|
|||
var res []byte
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
// " ON CONFLICT (room_id, type, state_key)" +
|
||||
docId := fmt.Sprintf("%s_%s_%s", roomID, evType, stateKey)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
var response, err = getEvent(s, ctx, pk, cosmosDocId)
|
||||
|
||||
// err := stmt.QueryRowContext(ctx, roomID, evType, stateKey).Scan(&res)
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ type FilterCosmos struct {
|
|||
type FilterCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -79,7 +80,7 @@ type filterStatements struct {
|
|||
|
||||
func queryFilter(s *filterStatements, ctx context.Context, qry string, params map[string]interface{}) ([]FilterCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []FilterCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -142,8 +143,8 @@ func (s *filterStatements) SelectFilter(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE (id, localpart)
|
||||
docId := fmt.Sprintf("%s_%s", localpart, filterID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response, err = getFilter(s, ctx, pk, cosmosDocId)
|
||||
|
||||
if err != nil {
|
||||
|
|
@ -230,11 +231,12 @@ func (s *filterStatements) InsertFilter(
|
|||
|
||||
// UNIQUE (id, localpart)
|
||||
docId := fmt.Sprintf("%s_%d", localpart, seqID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = FilterCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ type InviteEventCosmosMaxNumber struct {
|
|||
type InviteEventCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -102,7 +103,7 @@ type inviteEventsStatements struct {
|
|||
|
||||
func queryInviteEvent(s *inviteEventsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]InviteEventCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []InviteEventCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -123,7 +124,7 @@ func queryInviteEvent(s *inviteEventsStatements, ctx context.Context, qry string
|
|||
|
||||
func queryInviteEventMaxNumber(s *inviteEventsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]InviteEventCosmosMaxNumber, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []InviteEventCosmosMaxNumber
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -221,13 +222,14 @@ func (s *inviteEventsStatements) InsertInviteEvent(
|
|||
}
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
// id INTEGER PRIMARY KEY,
|
||||
docId := fmt.Sprintf("%d", streamPos)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
|
||||
var dbData = InviteEventCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ type MembershipCosmos struct {
|
|||
type MembershipCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -95,7 +96,7 @@ type membershipsStatements struct {
|
|||
|
||||
func queryMembership(s *membershipsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]MembershipCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []MembershipCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -156,13 +157,14 @@ func (s *membershipsStatements) UpsertMembership(
|
|||
}
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
// UNIQUE (room_id, user_id, membership)
|
||||
docId := fmt.Sprintf("%s_%s_%s", event.RoomID(), *event.StateKey(), membership)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
|
||||
var dbData = MembershipCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ type OutputRoomEventCosmosMaxNumber struct {
|
|||
type OutputRoomEventCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -159,7 +160,7 @@ type outputRoomEventsStatements struct {
|
|||
|
||||
func queryOutputRoomEvent(s *outputRoomEventsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]OutputRoomEventCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []OutputRoomEventCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -180,7 +181,7 @@ func queryOutputRoomEvent(s *outputRoomEventsStatements, ctx context.Context, qr
|
|||
|
||||
func queryOutputRoomEventNumber(s *outputRoomEventsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]OutputRoomEventCosmosMaxNumber, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []OutputRoomEventCosmosMaxNumber
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -488,13 +489,14 @@ func (s *outputRoomEventsStatements) InsertEvent(
|
|||
}
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
// id INTEGER PRIMARY KEY,
|
||||
docId := fmt.Sprintf("%d", streamPos)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
|
||||
var dbData = OutputRoomEventCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ type OutputRoomEventTopologyCosmos struct {
|
|||
type OutputRoomEventTopologyCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -133,7 +134,7 @@ type outputRoomEventsTopologyStatements struct {
|
|||
|
||||
func queryOutputRoomEventTopology(s *outputRoomEventsTopologyStatements, ctx context.Context, qry string, params map[string]interface{}) ([]OutputRoomEventTopologyCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []OutputRoomEventTopologyCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -194,8 +195,8 @@ func (s *outputRoomEventsTopologyStatements) InsertEventInTopology(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE(topological_position, room_id, stream_position)
|
||||
docId := fmt.Sprintf("%d_%s_%d", event.Depth(), event.RoomID(), pos)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := OutputRoomEventTopologyCosmos{
|
||||
EventID: event.EventID(),
|
||||
|
|
@ -206,6 +207,7 @@ func (s *outputRoomEventsTopologyStatements) InsertEventInTopology(
|
|||
|
||||
dbData := &OutputRoomEventTopologyCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ type PeekCosmosMaxNumber struct {
|
|||
type PeekCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -122,7 +123,7 @@ type peekStatements struct {
|
|||
|
||||
func queryPeek(s *peekStatements, ctx context.Context, qry string, params map[string]interface{}) ([]PeekCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []PeekCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -143,7 +144,7 @@ func queryPeek(s *peekStatements, ctx context.Context, qry string, params map[st
|
|||
|
||||
func queryPeekMaxNumber(s *peekStatements, ctx context.Context, qry string, params map[string]interface{}) ([]PeekCosmosMaxNumber, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []PeekCosmosMaxNumber
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -204,8 +205,8 @@ func (s *peekStatements) InsertPeek(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
// UNIQUE(room_id, user_id, device_id)
|
||||
docId := fmt.Sprintf("%d_%s_%d", roomID, userID, deviceID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
data := PeekCosmos{
|
||||
ID: int64(streamPos),
|
||||
|
|
@ -216,6 +217,7 @@ func (s *peekStatements) InsertPeek(
|
|||
|
||||
dbData := &PeekCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
// nowMilli := time.Now().UnixNano() / int64(time.Millisecond)
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ type ReceiptCosmosMaxNumber struct {
|
|||
type ReceiptCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -94,7 +95,7 @@ type receiptStatements struct {
|
|||
|
||||
func queryReceipt(s *receiptStatements, ctx context.Context, qry string, params map[string]interface{}) ([]ReceiptCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []ReceiptCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -115,7 +116,7 @@ func queryReceipt(s *receiptStatements, ctx context.Context, qry string, params
|
|||
|
||||
func queryReceiptNumber(s *receiptStatements, ctx context.Context, qry string, params map[string]interface{}) ([]ReceiptCosmosMaxNumber, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []ReceiptCosmosMaxNumber
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -174,6 +175,7 @@ func (r *receiptStatements) UpsertReceipt(ctx context.Context, txn *sql.Tx, room
|
|||
|
||||
var dbData = ReceiptCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: r.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ type SendToDeviceCosmosMaxNumber struct {
|
|||
type SendToDeviceCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -99,7 +100,7 @@ type sendToDeviceStatements struct {
|
|||
|
||||
func querySendToDevice(s *sendToDeviceStatements, ctx context.Context, qry string, params map[string]interface{}) ([]SendToDeviceCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []SendToDeviceCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -120,7 +121,7 @@ func querySendToDevice(s *sendToDeviceStatements, ctx context.Context, qry strin
|
|||
|
||||
func querySendToDeviceNumber(s *sendToDeviceStatements, ctx context.Context, qry string, params map[string]interface{}) ([]SendToDeviceCosmosMaxNumber, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []SendToDeviceCosmosMaxNumber
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -178,13 +179,14 @@ func (s *sendToDeviceStatements) InsertSendToDeviceMessage(
|
|||
}
|
||||
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
// NO CONSTRAINT
|
||||
docId := fmt.Sprintf("%d", pos)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
|
||||
var dbData = SendToDeviceCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ import (
|
|||
type AccountDataCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -73,7 +74,7 @@ func (s *accountDataStatements) prepare(db *Database) (err error) {
|
|||
|
||||
func queryAccountData(s *accountDataStatements, ctx context.Context, qry string, params map[string]interface{}) ([]AccountDataCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []AccountDataCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -114,11 +115,12 @@ func (s *accountDataStatements) insertAccountData(
|
|||
}
|
||||
|
||||
docId := id
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = AccountDataCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ type AccountCosmos struct {
|
|||
type AccountCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -90,7 +91,7 @@ func (s *accountsStatements) prepare(db *Database, server gomatrixserverlib.Serv
|
|||
|
||||
func queryAccount(s *accountsStatements, ctx context.Context, qry string, params map[string]interface{}) ([]AccountCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []AccountCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -182,11 +183,12 @@ func (s *accountsStatements) insertAccount(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.accounts.tableName)
|
||||
|
||||
docId := result.Localpart
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = AccountCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -215,8 +217,8 @@ func (s *accountsStatements) updatePassword(
|
|||
// "UPDATE account_accounts SET password_hash = $1 WHERE localpart = $2"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.accounts.tableName)
|
||||
docId := localpart
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var response, exGet = getAccount(s, ctx, pk, cosmosDocId)
|
||||
if exGet != nil {
|
||||
|
|
@ -240,8 +242,8 @@ func (s *accountsStatements) deactivateAccount(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.accounts.tableName)
|
||||
|
||||
docId := localpart
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var response, exGet = getAccount(s, ctx, pk, cosmosDocId)
|
||||
if exGet != nil {
|
||||
|
|
@ -320,7 +322,7 @@ func (s *accountsStatements) selectNewNumericLocalpart(
|
|||
|
||||
// "SELECT COUNT(localpart) FROM account_accounts"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.accounts.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []AccountCosmosUserCount
|
||||
params := map[string]interface{}{
|
||||
"@x1": dbCollectionName,
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ type OpenIDTokenCosmos struct {
|
|||
type OpenIdTokenCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -64,7 +65,7 @@ func mapToToken(api api.OpenIDToken) OpenIDTokenCosmos {
|
|||
|
||||
func queryOpenIdToken(s *tokenStatements, ctx context.Context, qry string, params map[string]interface{}) ([]OpenIdTokenCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []OpenIdTokenCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -109,11 +110,12 @@ func (s *tokenStatements) insertToken(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.openIDTokens.tableName)
|
||||
|
||||
docId := result.Token
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = OpenIdTokenCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ type ProfileCosmos struct {
|
|||
type ProfileCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -90,7 +91,7 @@ func (s *profilesStatements) prepare(db *Database) (err error) {
|
|||
|
||||
func queryProfile(s *profilesStatements, ctx context.Context, qry string, params map[string]interface{}) ([]ProfileCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []ProfileCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -150,11 +151,12 @@ func (s *profilesStatements) insertProfile(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.profiles.tableName)
|
||||
|
||||
docId := localpart
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var dbData = ProfileCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -208,8 +210,8 @@ func (s *profilesStatements) setAvatarURL(
|
|||
// "UPDATE account_profiles SET avatar_url = $1 WHERE localpart = $2"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.profiles.tableName)
|
||||
docId := localpart
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
|
||||
var response, exGet = getProfile(s, ctx, pk, cosmosDocId)
|
||||
if exGet != nil {
|
||||
|
|
@ -232,8 +234,8 @@ func (s *profilesStatements) setDisplayName(
|
|||
// "UPDATE account_profiles SET display_name = $1 WHERE localpart = $2"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.profiles.tableName)
|
||||
docId := localpart
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response, exGet = getProfile(s, ctx, pk, cosmosDocId)
|
||||
if exGet != nil {
|
||||
return exGet
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ type ThreePIDCosmos struct {
|
|||
type ThreePIDCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -71,7 +72,7 @@ func (s *threepidStatements) prepare(db *Database) (err error) {
|
|||
|
||||
func queryThreePID(s *threepidStatements, ctx context.Context, qry string, params map[string]interface{}) ([]ThreePIDCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []ThreePIDCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -159,10 +160,11 @@ func (s *threepidStatements) insertThreePID(
|
|||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.accounts.tableName)
|
||||
|
||||
docId := fmt.Sprintf("%s_%s", threepid, medium)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var dbData = ThreePIDCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -189,8 +191,8 @@ func (s *threepidStatements) deleteThreePID(
|
|||
// "DELETE FROM account_threepid WHERE threepid = $1 AND medium = $2"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.accounts.tableName)
|
||||
docId := fmt.Sprintf("%s_%s", threepid, medium)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var options = cosmosdbapi.GetDeleteDocumentOptions(pk)
|
||||
_, err = cosmosdbapi.GetClient(s.db.connection).DeleteDocument(
|
||||
ctx,
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ type DeviceCosmos struct {
|
|||
type DeviceCosmosData struct {
|
||||
Id string `json:"id"`
|
||||
Pk string `json:"_pk"`
|
||||
Tn string `json:"_sid"`
|
||||
Cn string `json:"_cn"`
|
||||
ETag string `json:"_etag"`
|
||||
Timestamp int64 `json:"_ts"`
|
||||
|
|
@ -124,7 +125,7 @@ func mapTodevice(api api.Device, s *devicesStatements) DeviceCosmos {
|
|||
|
||||
func queryDevice(s *devicesStatements, ctx context.Context, qry string, params map[string]interface{}) ([]DeviceCosmosData, error) {
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []DeviceCosmosData
|
||||
|
||||
var optionsQry = cosmosdbapi.GetQueryDocumentsOptions(pk)
|
||||
|
|
@ -196,7 +197,7 @@ func (s *devicesStatements) insertDevice(
|
|||
// "SELECT COUNT(access_token) FROM device_devices"
|
||||
// HACK: Do we need a Cosmos Table for the sequence?
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.devices.tableName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
var pk = cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response []DeviceCosmosSessionCount
|
||||
params := map[string]interface{}{
|
||||
"@x1": dbCollectionName,
|
||||
|
|
@ -234,10 +235,11 @@ func (s *devicesStatements) insertDevice(
|
|||
// UNIQUE (localpart, device_id)
|
||||
// HACK: check for duplicate PK as we are using the UNIQUE key for the DocId
|
||||
docId := fmt.Sprintf("%s_%s", localpart, id)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
|
||||
var dbData = DeviceCosmosData{
|
||||
Id: cosmosDocId,
|
||||
Tn: s.db.cosmosConfig.TenantName,
|
||||
Cn: dbCollectionName,
|
||||
Pk: pk,
|
||||
Timestamp: time.Now().Unix(),
|
||||
|
|
@ -266,8 +268,8 @@ func (s *devicesStatements) deleteDevice(
|
|||
// "DELETE FROM device_devices WHERE device_id = $1 AND localpart = $2"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.devices.tableName)
|
||||
docId := fmt.Sprintf("%s_%s", localpart, id)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var options = cosmosdbapi.GetDeleteDocumentOptions(pk)
|
||||
var _, err = cosmosdbapi.GetClient(s.db.connection).DeleteDocument(
|
||||
ctx,
|
||||
|
|
@ -336,8 +338,8 @@ func (s *devicesStatements) updateDeviceName(
|
|||
// "UPDATE device_devices SET display_name = $1 WHERE localpart = $2 AND device_id = $3"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.devices.tableName)
|
||||
docId := fmt.Sprintf("%s_%s", localpart, deviceID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response, exGet = getDevice(s, ctx, pk, cosmosDocId)
|
||||
if exGet != nil {
|
||||
return exGet
|
||||
|
|
@ -387,8 +389,8 @@ func (s *devicesStatements) selectDeviceByID(
|
|||
// "SELECT display_name FROM device_devices WHERE localpart = $1 and device_id = $2"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.devices.tableName)
|
||||
docId := fmt.Sprintf("%s_%s", localpart, deviceID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response, exGet = getDevice(s, ctx, pk, cosmosDocId)
|
||||
if exGet != nil {
|
||||
return nil, exGet
|
||||
|
|
@ -452,8 +454,8 @@ func (s *devicesStatements) updateDeviceLastSeen(ctx context.Context, localpart,
|
|||
// "UPDATE device_devices SET last_seen_ts = $1, ip = $2 WHERE localpart = $3 AND device_id = $4"
|
||||
var dbCollectionName = cosmosdbapi.GetCollectionName(s.db.databaseName, s.db.devices.tableName)
|
||||
docId := fmt.Sprintf("%s_%s", localpart, deviceID)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.ContainerName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.ContainerName, dbCollectionName)
|
||||
cosmosDocId := cosmosdbapi.GetDocumentId(s.db.cosmosConfig.TenantName, dbCollectionName, docId)
|
||||
pk := cosmosdbapi.GetPartitionKey(s.db.cosmosConfig.TenantName, dbCollectionName)
|
||||
var response, exGet = getDevice(s, ctx, pk, cosmosDocId)
|
||||
if exGet != nil {
|
||||
return exGet
|
||||
|
|
|
|||
Loading…
Reference in a new issue