mirror of
https://github.com/pikami/cosmium.git
synced 2025-12-19 17:00:37 +00:00
DataStore is interface now. Liskov would be proud.
This commit is contained in:
44
internal/datastore/datastore.go
Normal file
44
internal/datastore/datastore.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package datastore
|
||||
|
||||
type DataStore interface {
|
||||
GetAllDatabases() ([]Database, DataStoreStatus)
|
||||
GetDatabase(databaseId string) (Database, DataStoreStatus)
|
||||
DeleteDatabase(databaseId string) DataStoreStatus
|
||||
CreateDatabase(newDatabase Database) (Database, DataStoreStatus)
|
||||
|
||||
GetAllCollections(databaseId string) ([]Collection, DataStoreStatus)
|
||||
GetCollection(databaseId string, collectionId string) (Collection, DataStoreStatus)
|
||||
DeleteCollection(databaseId string, collectionId string) DataStoreStatus
|
||||
CreateCollection(databaseId string, newCollection Collection) (Collection, DataStoreStatus)
|
||||
|
||||
GetAllDocuments(databaseId string, collectionId string) ([]Document, DataStoreStatus)
|
||||
GetDocumentIterator(databaseId string, collectionId string) (DocumentIterator, DataStoreStatus)
|
||||
GetDocument(databaseId string, collectionId string, documentId string) (Document, DataStoreStatus)
|
||||
DeleteDocument(databaseId string, collectionId string, documentId string) DataStoreStatus
|
||||
CreateDocument(databaseId string, collectionId string, document map[string]interface{}) (Document, DataStoreStatus)
|
||||
|
||||
GetAllTriggers(databaseId string, collectionId string) ([]Trigger, DataStoreStatus)
|
||||
GetTrigger(databaseId string, collectionId string, triggerId string) (Trigger, DataStoreStatus)
|
||||
DeleteTrigger(databaseId string, collectionId string, triggerId string) DataStoreStatus
|
||||
CreateTrigger(databaseId string, collectionId string, trigger Trigger) (Trigger, DataStoreStatus)
|
||||
|
||||
GetAllStoredProcedures(databaseId string, collectionId string) ([]StoredProcedure, DataStoreStatus)
|
||||
GetStoredProcedure(databaseId string, collectionId string, storedProcedureId string) (StoredProcedure, DataStoreStatus)
|
||||
DeleteStoredProcedure(databaseId string, collectionId string, storedProcedureId string) DataStoreStatus
|
||||
CreateStoredProcedure(databaseId string, collectionId string, storedProcedure StoredProcedure) (StoredProcedure, DataStoreStatus)
|
||||
|
||||
GetAllUserDefinedFunctions(databaseId string, collectionId string) ([]UserDefinedFunction, DataStoreStatus)
|
||||
GetUserDefinedFunction(databaseId string, collectionId string, udfId string) (UserDefinedFunction, DataStoreStatus)
|
||||
DeleteUserDefinedFunction(databaseId string, collectionId string, udfId string) DataStoreStatus
|
||||
CreateUserDefinedFunction(databaseId string, collectionId string, udf UserDefinedFunction) (UserDefinedFunction, DataStoreStatus)
|
||||
|
||||
GetPartitionKeyRanges(databaseId string, collectionId string) ([]PartitionKeyRange, DataStoreStatus)
|
||||
|
||||
Close()
|
||||
DumpToJson() (string, error)
|
||||
}
|
||||
|
||||
type DocumentIterator interface {
|
||||
Next() (Document, DataStoreStatus)
|
||||
HasMore() bool
|
||||
}
|
||||
Reference in New Issue
Block a user