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