iot_server/internal/hummingbird/core/interface/db.go

188 lines
8.9 KiB
Go

//
// Copyright (C) 2020-2021 IOTech Ltd
//
// SPDX-License-Identifier: Apache-2.0
package interfaces
import (
"github.com/winc-link/hummingbird/internal/dtos"
"github.com/winc-link/hummingbird/internal/models"
"gorm.io/gorm"
)
type DBClient interface {
CloseSession()
GetDBInstance() *gorm.DB
QuickNavigationSearch(offset int, limit int, req dtos.QuickNavigationSearchQueryRequest) ([]models.QuickNavigation, uint32, error)
DocsSearch(offset int, limit int, req dtos.DocsSearchQueryRequest) (docs []models.Doc, total uint32, edgeXErr error)
BatchUpsertDocsTemplate(d []models.Doc) (int64, error)
BatchUpsertQuickNavigationTemplate(ds []models.QuickNavigation) (int64, error)
DeleteQuickNavigation(id string) error
AddDeviceService(ds models.DeviceService) (models.DeviceService, error)
DeviceServiceById(id string) (models.DeviceService, error)
DeleteDeviceServiceById(id string) error
UpdateDeviceService(ds models.DeviceService) error
DeviceServicesSearch(offset int, limit int, req dtos.DeviceServiceSearchQueryRequest) ([]models.DeviceService, uint32, error)
AddProduct(ds models.Product) (models.Product, error)
ProductsSearch(offset int, limit int, preload bool, req dtos.ProductSearchQueryRequest) ([]models.Product, uint32, error)
ProductById(id string) (models.Product, error)
ProductByCloudId(id string) (models.Product, error)
BatchUpsertProduct(d []models.Product) (int64, error)
BatchSaveProduct(p []models.Product) error
BatchDeleteProduct(products []models.Product) error
BatchDeleteProperties(propertiesId []string) error
BatchDeleteSystemProperties() error
BatchInsertSystemProperties(p []models.Properties) (int64, error)
BatchDeleteSystemEvents() error
BatchInsertSystemEvents(p []models.Events) (int64, error)
BatchDeleteEvents(eventId []string) error
BatchDeleteActions(actionId []string) error
DeleteProductById(id string) error
BatchDeleteSystemActions() error
BatchInsertSystemActions(p []models.Actions) (int64, error)
DeleteProductObject(d models.Product) error
UpdateProduct(ds models.Product) error
AssociationsUpdateProduct(ds models.Product) error
AssociationsDeleteProductObject(ds models.Product) error
AddThingModelProperty(ds models.Properties) (models.Properties, error)
BatchUpsertThingModel(ds interface{}) (int64, error)
AddThingModelEvent(ds models.Events) (models.Events, error)
AddThingModelAction(ds models.Actions) (models.Actions, error)
UpdateThingModelProperty(ds models.Properties) error
UpdateThingModelEvent(ds models.Events) error
UpdateThingModelAction(ds models.Actions) error
ThingModelDeleteProperty(id string) error
ThingModelDeleteEvent(id string) error
ThingModelDeleteAction(id string) error
ThingModelPropertyById(id string) (models.Properties, error)
ThingModelEventById(id string) (models.Events, error)
ThingModelActionsById(id string) (models.Actions, error)
SystemThingModelSearch(modelType, modelName string) (interface{}, error)
CategoryTemplateSearch(offset int, limit int, req dtos.CategoryTemplateRequest) ([]models.CategoryTemplate, uint32, error)
CategoryTemplateById(id string) (models.CategoryTemplate, error)
BatchUpsertCategoryTemplate(d []models.CategoryTemplate) (int64, error)
ThingModelTemplateSearch(offset int, limit int, req dtos.ThingModelTemplateRequest) ([]models.ThingModelTemplate, uint32, error)
ThingModelTemplateByCategoryKey(categoryKey string) (models.ThingModelTemplate, error)
BatchUpsertThingModelTemplate(d []models.ThingModelTemplate) (int64, error)
UnitSearch(offset int, limit int, req dtos.UnitRequest) ([]models.Unit, uint32, error)
BatchUpsertUnitTemplate(d []models.Unit) (int64, error)
AddDevice(d models.Device) (string, error)
DeviceById(id string) (models.Device, error)
DeviceOnlineById(id string) (edgeXErr error)
DeviceOfflineById(id string) (edgeXxErr error)
DeviceOfflineByCloudInstanceId(id string) (edgeXErr error)
MsgReportDeviceById(id string) (device models.Device, edgeXErr error)
DeviceByCloudId(id string) (models.Device, error)
DevicesSearch(offset int, limit int, req dtos.DeviceSearchQueryRequest) ([]models.Device, uint32, error)
DeviceMqttAuthInfo(id string) (device models.MqttAuth, edgeXErr error)
DriverMqttAuthInfo(id string) (device models.MqttAuth, edgeXErr error)
AddMqttAuthInfo(auth models.MqttAuth) (string, error)
AddOrUpdateAuth(auth models.MqttAuth) error
BatchUpsertDevice(d []models.Device) (int64, error)
BatchDeleteDevice(deviceIds []string) error
BatchUnBindDevice(ids []string) error
BatchBindDevice(ids []string, driverInstanceId string) error
DeleteDeviceById(id string) error
UpdateDevice(ds models.Device) error
DeleteDeviceByCloudInstanceId(cloudInstanceId string) error
AddDeviceLibrary(dl models.DeviceLibrary) (models.DeviceLibrary, error)
DeviceLibraryById(id string) (models.DeviceLibrary, error)
DeleteDeviceLibraryById(id string) error
DeviceLibrariesSearch(offset int, limit int, req dtos.DeviceLibrarySearchQueryRequest) ([]models.DeviceLibrary, uint32, error)
UpdateDeviceLibrary(dl models.DeviceLibrary) error
DriverClassifySearch(offset int, limit int, req dtos.DriverClassifyQueryRequest) ([]models.DriverClassify, uint32, error)
DockerConfigAdd(cfg models.DockerConfig) (models.DockerConfig, error)
DockerConfigById(id string) (models.DockerConfig, error)
DockerConfigUpdate(cfg models.DockerConfig) error
DockerConfigDelete(id string) error
DockerConfigsSearch(offset int, limit int, req dtos.DockerConfigSearchQueryRequest) ([]models.DockerConfig, uint32, error)
AbilityByCode(model interface{}, code, productId string) (interface{}, error)
//// 获取高级配置信息
GetAdvanceConfig() (models.AdvanceConfig, error)
// 更新高级配置信息
UpdateAdvanceConfig(config models.AdvanceConfig) error
AddMsgGather(msgGather models.MsgGather) error
MsgGatherSearch(offset int, limit int, req dtos.MsgGatherSearchQueryRequest) (msgGather []models.MsgGather, count uint32, edgeXErr error)
AddDataResource(dateResource models.DataResource) (string, error)
UpdateDataResource(dateResource models.DataResource) error
DelDataResource(id string) error
//DataResourceById(id string) models.DataResource
UpdateDataResourceHealth(id string, health bool) error
SearchDataResource(offset int, limit int, req dtos.DataResourceSearchQueryRequest) (dataResource []models.DataResource, count uint32, edgeXErr error)
DataResourceById(id string) (models.DataResource, error)
AddRuleEngine(ruleEngine models.RuleEngine) (string, error)
UpdateRuleEngine(ruleEngine models.RuleEngine) error
RuleEngineById(id string) (ruleEngine models.RuleEngine, edgeXErr error)
RuleEngineSearch(offset int, limit int, req dtos.RuleEngineSearchQueryRequest) (ruleEngine []models.RuleEngine, count uint32, edgeXErr error)
RuleEngineStart(id string) error
RuleEngineStop(id string) error
DeleteRuleEngineById(id string) error
LanguageSdkByName(name string) (cloudService models.LanguageSdk, edgeXErr error)
LanguageSearch(offset int, limit int, req dtos.LanguageSDKSearchQueryRequest) (languages []models.LanguageSdk, count uint32, edgeXErr error)
AddLanguageSdk(cs models.LanguageSdk) (language models.LanguageSdk, edgeXErr error)
UpdateLanguageSdk(ls models.LanguageSdk) error
DeviceAlert
UserDB
Scene
SystemMonitor
}
type SystemMonitor interface {
UpdateSystemMetrics(stats dtos.SystemMetrics) error
GetSystemMetrics(start, end int64) ([]dtos.SystemMetrics, error)
RemoveRangeSystemMetrics(min, max string) error
}
type UserDB interface {
GetUserByUserName(username string) (models.User, error)
UpdateUser(u models.User) error
AddUser(u models.User) (models.User, error)
}
type DeviceAlert interface {
AddAlertRule(rule models.AlertRule) (models.AlertRule, error)
UpdateAlertRule(rule models.AlertRule) error
AlertRuleById(id string) (models.AlertRule, error)
AlertRuleSearch(offset int, limit int, req dtos.AlertRuleSearchQueryRequest) (alertRules []models.AlertRule, total uint32, edgeXErr error)
DeleteAlertRuleById(id string) error
AlertRuleStart(id string) error
AlertRuleStop(id string) error
AlertListLastSend(alertRuleId string) (alertList models.AlertList, edgeXErr error)
AddAlertList(alertRule models.AlertList) (models.AlertList, error)
AlertPlate(beforeTime int64) (plate []dtos.AlertPlateQueryResponse, err error)
AlertListSearch(offset int, limit int, req dtos.AlertSearchQueryRequest) (alertList []dtos.AlertSearchQueryResponse, total uint32, edgeXErr error)
AlertIgnore(id string) (edgeXErr error)
TreatedIgnore(id, message string) (edgeXErr error)
}
type Scene interface {
AddScene(scene models.Scene) (models.Scene, error)
SceneById(id string) (models.Scene, error)
UpdateScene(scene models.Scene) error
SceneStart(id string) error
SceneStop(id string) error
DeleteSceneById(id string) error
SceneSearch(offset int, limit int, req dtos.SceneSearchQueryRequest) (scenes []models.Scene, total uint32, edgeXErr error)
AddSceneLog(sceneLog models.SceneLog) (models.SceneLog, error)
SceneLogSearch(offset int, limit int, req dtos.SceneLogSearchQueryRequest) (sceneLogs []models.SceneLog, total uint32, edgeXErr error)
}