Documentation ¶
Index ¶
- Constants
- Variables
- func AddDeviceToMulticastGroup(ctx context.Context, db sqlx.Ext, multicastGroupID uuid.UUID, ...) error
- func CodeMigration(name string, f func(db sqlx.Ext) error) error
- func CreateAPIKey(ctx context.Context, db sqlx.Ext, a *APIKey) (string, error)
- func CreateApplication(ctx context.Context, db sqlx.Queryer, item *Application) error
- func CreateDevice(ctx context.Context, db sqlx.Ext, d *Device) error
- func CreateDeviceKeys(ctx context.Context, db sqlx.Execer, dc *DeviceKeys) error
- func CreateDeviceProfile(ctx context.Context, db sqlx.Ext, dp *DeviceProfile) error
- func CreateGateway(ctx context.Context, db sqlx.Execer, gw *Gateway) error
- func CreateGatewayPing(ctx context.Context, db sqlx.Queryer, ping *GatewayPing) error
- func CreateGatewayPingRX(ctx context.Context, db sqlx.Queryer, rx *GatewayPingRX) error
- func CreateGatewayProfile(ctx context.Context, db sqlx.Ext, gp *GatewayProfile) error
- func CreateIntegration(ctx context.Context, db sqlx.Queryer, i *Integration) error
- func CreateMulticastGroup(ctx context.Context, db sqlx.Ext, mg *MulticastGroup) error
- func CreateNetworkServer(ctx context.Context, db sqlx.Queryer, n *NetworkServer) error
- func CreateOrganization(ctx context.Context, db sqlx.Queryer, org *Organization) error
- func CreateOrganizationUser(ctx context.Context, db sqlx.Execer, organizationID, userID int64, ...) error
- func CreateServiceProfile(ctx context.Context, db sqlx.Ext, sp *ServiceProfile) error
- func CreateUser(ctx context.Context, db sqlx.Queryer, user *User) error
- func DeleteAPIKey(ctx context.Context, db sqlx.Ext, id uuid.UUID) error
- func DeleteAllApplicationsForOrganizationID(ctx context.Context, db sqlx.Ext, organizationID int64) error
- func DeleteAllDeviceProfilesForOrganizationID(ctx context.Context, db sqlx.Ext, organizationID int64) error
- func DeleteAllDevicesForApplicationID(ctx context.Context, db sqlx.Ext, applicationID int64) error
- func DeleteAllGatewaysForOrganizationID(ctx context.Context, db sqlx.Ext, organizationID int64) error
- func DeleteAllServiceProfilesForOrganizationID(ctx context.Context, db sqlx.Ext, organizationID int64) error
- func DeleteApplication(ctx context.Context, db sqlx.Ext, id int64) error
- func DeleteDevice(ctx context.Context, db sqlx.Ext, devEUI lorawan.EUI64) error
- func DeleteDeviceKeys(ctx context.Context, db sqlx.Execer, devEUI lorawan.EUI64) error
- func DeleteDeviceProfile(ctx context.Context, db sqlx.Ext, id uuid.UUID) error
- func DeleteGateway(ctx context.Context, db sqlx.Ext, mac lorawan.EUI64) error
- func DeleteGatewayProfile(ctx context.Context, db sqlx.Ext, id uuid.UUID) error
- func DeleteIntegration(ctx context.Context, db sqlx.Execer, id int64) error
- func DeleteMulticastGroup(ctx context.Context, db sqlx.Ext, id uuid.UUID) error
- func DeleteNetworkServer(ctx context.Context, db sqlx.Ext, id int64) error
- func DeleteOrganization(ctx context.Context, db sqlx.Ext, id int64) error
- func DeleteOrganizationUser(ctx context.Context, db sqlx.Execer, organizationID, userID int64) error
- func DeleteServiceProfile(ctx context.Context, db sqlx.Ext, id uuid.UUID) error
- func DeleteUser(ctx context.Context, db sqlx.Execer, id int64) error
- func EnqueueDownlinkPayload(ctx context.Context, db sqlx.Ext, devEUI lorawan.EUI64, confirmed bool, ...) (uint32, error)
- func GetAPIKeyCount(ctx context.Context, db sqlx.Queryer, filters APIKeyFilters) (int, error)
- func GetApplicationCount(ctx context.Context, db sqlx.Queryer, filters ApplicationFilters) (int, error)
- func GetDeviceCount(ctx context.Context, db sqlx.Queryer, filters DeviceFilters) (int, error)
- func GetDeviceCountForMulticastGroup(ctx context.Context, db sqlx.Queryer, multicastGroup uuid.UUID) (int, error)
- func GetDeviceProfileCount(ctx context.Context, db sqlx.Queryer, filters DeviceProfileFilters) (int, error)
- func GetGatewayCount(ctx context.Context, db sqlx.Queryer, filters GatewayFilters) (int, error)
- func GetGatewayProfileCount(ctx context.Context, db sqlx.Queryer) (int, error)
- func GetGatewayProfileCountForNetworkServerID(ctx context.Context, db sqlx.Queryer, networkServerID int64) (int, error)
- func GetGatewaysForMACs(ctx context.Context, db sqlx.Queryer, macs []lorawan.EUI64) (map[lorawan.EUI64]Gateway, error)
- func GetLastGatewayPingAndRX(ctx context.Context, db sqlx.Queryer, mac lorawan.EUI64) (GatewayPing, []GatewayPingRX, error)
- func GetMulticastGroupCount(ctx context.Context, db sqlx.Queryer, filters MulticastGroupFilters) (int, error)
- func GetNetworkServerCount(ctx context.Context, db sqlx.Queryer, filters NetworkServerFilters) (int, error)
- func GetOrganizationCount(ctx context.Context, db sqlx.Queryer, filters OrganizationFilters) (int, error)
- func GetOrganizationUserCount(ctx context.Context, db sqlx.Queryer, organizationID int64) (int, error)
- func GetRedisKey(tmpl string, params ...interface{}) string
- func GetServiceProfileCount(ctx context.Context, db sqlx.Queryer, filters ServiceProfileFilters) (int, error)
- func GetUserCount(ctx context.Context, db sqlx.Queryer) (int, error)
- func GetUserToken(u User) (string, error)
- func LoginUserByPassword(ctx context.Context, db sqlx.Queryer, email string, password string) (string, error)
- func MigrateDown(db *sqlx.DB) error
- func MigrateUp(db *sqlx.DB) error
- func RedisClient() redis.UniversalClient
- func RemoveDeviceFromMulticastGroup(ctx context.Context, db sqlx.Ext, multicastGroupID uuid.UUID, ...) error
- func SaveMetrics(ctx context.Context, name string, metrics MetricsRecord) error
- func SaveMetricsForInterval(ctx context.Context, agg AggregationInterval, name string, ...) error
- func SetAggregationIntervals(intervals []AggregationInterval) error
- func SetMetricsTTL(minute, hour, day, month time.Duration)
- func SetTimeLocation(name string) error
- func Setup(c config.Config) error
- func Transaction(f func(tx sqlx.Ext) error) error
- func UpdateApplication(ctx context.Context, db sqlx.Execer, item Application) error
- func UpdateDevice(ctx context.Context, db sqlx.Ext, d *Device, localOnly bool) error
- func UpdateDeviceActivation(ctx context.Context, db sqlx.Ext, devEUI lorawan.EUI64, ...) error
- func UpdateDeviceKeys(ctx context.Context, db sqlx.Execer, dc *DeviceKeys) error
- func UpdateDeviceLastSeenAndDR(ctx context.Context, db sqlx.Ext, devEUI lorawan.EUI64, ts time.Time, dr int) error
- func UpdateDeviceProfile(ctx context.Context, db sqlx.Ext, dp *DeviceProfile) error
- func UpdateGateway(ctx context.Context, db sqlx.Execer, gw *Gateway) error
- func UpdateGatewayProfile(ctx context.Context, db sqlx.Ext, gp *GatewayProfile) error
- func UpdateIntegration(ctx context.Context, db sqlx.Execer, i *Integration) error
- func UpdateMulticastGroup(ctx context.Context, db sqlx.Ext, mg *MulticastGroup) error
- func UpdateNetworkServer(ctx context.Context, db sqlx.Execer, n *NetworkServer) error
- func UpdateOrganization(ctx context.Context, db sqlx.Execer, org *Organization) error
- func UpdateOrganizationUser(ctx context.Context, db sqlx.Execer, organizationID, userID int64, ...) error
- func UpdateServiceProfile(ctx context.Context, db sqlx.Ext, sp *ServiceProfile) error
- func UpdateUser(ctx context.Context, db sqlx.Execer, u *User) error
- type APIKey
- type APIKeyFilters
- type Action
- type AggregationInterval
- type Application
- type ApplicationFilters
- type ApplicationListItem
- type DBLogger
- func (db *DBLogger) Beginx() (*TxLogger, error)
- func (db *DBLogger) Exec(query string, args ...interface{}) (sql.Result, error)
- func (db *DBLogger) Query(query string, args ...interface{}) (*sql.Rows, error)
- func (db *DBLogger) QueryRowx(query string, args ...interface{}) *sqlx.Row
- func (db *DBLogger) Queryx(query string, args ...interface{}) (*sqlx.Rows, error)
- type Device
- type DeviceFilters
- type DeviceKeys
- type DeviceListItem
- type DeviceProfile
- type DeviceProfileFilters
- type DeviceProfileMeta
- type DevicesActiveInactive
- type DevicesDataRates
- type ExtraChannel
- type GPSPoint
- type Gateway
- type GatewayFilters
- type GatewayListItem
- type GatewayPing
- type GatewayPingRX
- type GatewayProfile
- type GatewayProfileMeta
- type GatewaysActiveInactive
- type Integration
- func GetIntegration(ctx context.Context, db sqlx.Queryer, id int64) (Integration, error)
- func GetIntegrationByApplicationID(ctx context.Context, db sqlx.Queryer, applicationID int64, kind string) (Integration, error)
- func GetIntegrationsForApplicationID(ctx context.Context, db sqlx.Queryer, applicationID int64) ([]Integration, error)
- type MetricsRecord
- type MulticastGroup
- type MulticastGroupFilters
- type MulticastGroupListItem
- type NetworkServer
- func GetNetworkServer(ctx context.Context, db sqlx.Queryer, id int64) (NetworkServer, error)
- func GetNetworkServerForApplicationID(ctx context.Context, db sqlx.Queryer, id int64) (NetworkServer, error)
- func GetNetworkServerForDevEUI(ctx context.Context, db sqlx.Queryer, devEUI lorawan.EUI64) (NetworkServer, error)
- func GetNetworkServerForDeviceProfileID(ctx context.Context, db sqlx.Queryer, id uuid.UUID) (NetworkServer, error)
- func GetNetworkServerForGatewayMAC(ctx context.Context, db sqlx.Queryer, mac lorawan.EUI64) (NetworkServer, error)
- func GetNetworkServerForGatewayProfileID(ctx context.Context, db sqlx.Queryer, id uuid.UUID) (NetworkServer, error)
- func GetNetworkServerForMulticastGroupID(ctx context.Context, db sqlx.Queryer, id uuid.UUID) (NetworkServer, error)
- func GetNetworkServerForServiceProfileID(ctx context.Context, db sqlx.Queryer, id uuid.UUID) (NetworkServer, error)
- func GetNetworkServers(ctx context.Context, db sqlx.Queryer, filters NetworkServerFilters) ([]NetworkServer, error)
- type NetworkServerFilters
- type Organization
- type OrganizationFilters
- type OrganizationUser
- type SearchResult
- type ServiceProfile
- type ServiceProfileFilters
- type ServiceProfileMeta
- type TxLogger
- func (q *TxLogger) Exec(query string, args ...interface{}) (sql.Result, error)
- func (q *TxLogger) Query(query string, args ...interface{}) (*sql.Rows, error)
- func (q *TxLogger) QueryRowx(query string, args ...interface{}) *sqlx.Row
- func (q *TxLogger) Queryx(query string, args ...interface{}) (*sqlx.Rows, error)
- type User
- func GetUser(ctx context.Context, db sqlx.Queryer, id int64) (User, error)
- func GetUserByEmail(ctx context.Context, db sqlx.Queryer, email string) (User, error)
- func GetUserByExternalID(ctx context.Context, db sqlx.Queryer, externalID string) (User, error)
- func GetUsers(ctx context.Context, db sqlx.Queryer, limit, offset int) ([]User, error)
- type UserProfile
- type UserProfileOrganization
- type UserProfileUser
Constants ¶
const ( ModulationFSK = "FSK" ModulationLoRa = "LORA" )
Modulations
Variables ¶
var ( ErrAlreadyExists = errors.New("object already exists") ErrDoesNotExist = errors.New("object does not exist") ErrUsedByOtherObjects = errors.New("this object is used by other objects, remove them first") ErrApplicationInvalidName = errors.New("invalid application name") ErrNodeInvalidName = errors.New("invalid node name") ErrNodeMaxRXDelay = errors.New("max value of RXDelay is 15") ErrCFListTooManyChannels = errors.New("too many channels in channel-list") ErrUserInvalidUsername = errors.New("username name may only be composed of upper and lower case characters and digits") ErrUserPasswordLength = errors.New("passwords must be at least 6 characters long") ErrInvalidUsernameOrPassword = errors.New("invalid username or password") ErrOrganizationInvalidName = errors.New("invalid organization name") ErrGatewayInvalidName = errors.New("invalid gateway name") ErrInvalidEmail = errors.New("invalid e-mail") ErrInvalidGatewayDiscoveryInterval = errors.New("invalid gateway-discovery interval, it must be greater than 0") ErrDeviceProfileInvalidName = errors.New("invalid device-profile name") ErrServiceProfileInvalidName = errors.New("invalid service-profile name") ErrMulticastGroupInvalidName = errors.New("invalid multicast-group name") ErrOrganizationMaxDeviceCount = errors.New("organization reached max. device count") ErrOrganizationMaxGatewayCount = errors.New("organization reached max. gateway count") ErrNetworkServerInvalidName = errors.New("invalid network-server name") ErrAPIKeyInvalidName = errors.New("invalid API Key name") )
errors
var ( // ErrTransactionRollback indicates that the transaction must be rolled back, // but does not raise an error returned by the Transaction function. ErrTransactionRollback = errors.New("rollback") )
Errors.
var (
// HashIterations denfines the number of times a password is hashed.
HashIterations = 100000
)
Functions ¶
func AddDeviceToMulticastGroup ¶
func AddDeviceToMulticastGroup(ctx context.Context, db sqlx.Ext, multicastGroupID uuid.UUID, devEUI lorawan.EUI64) error
AddDeviceToMulticastGroup adds the given device to the given multicast-group. It is recommended that db is a transaction.
func CodeMigration ¶
CodeMigration checks if the given function code has been applied and if not it will execute the given function.
func CreateAPIKey ¶
CreateAPIKey creates the given API key and returns the JWT.
func CreateApplication ¶
CreateApplication creates the given Application.
func CreateDevice ¶
CreateDevice creates the given device.
func CreateDeviceKeys ¶
CreateDeviceKeys creates the keys for the given device.
func CreateDeviceProfile ¶
CreateDeviceProfile creates the given device-profile. This will create the device-profile at the network-server side and will create a local reference record.
func CreateGateway ¶
CreateGateway creates the given Gateway.
func CreateGatewayPing ¶
CreateGatewayPing creates the given gateway ping.
func CreateGatewayPingRX ¶
CreateGatewayPingRX creates the received ping.
func CreateGatewayProfile ¶
CreateGatewayProfile creates the given gateway-profile. This will create the gateway-profile at the network-server side and will create a local reference record.
func CreateIntegration ¶
CreateIntegration creates the given Integration.
func CreateMulticastGroup ¶
CreateMulticastGroup creates the given multicast-group.
func CreateNetworkServer ¶
CreateNetworkServer creates the given network-server.
func CreateOrganization ¶
CreateOrganization creates the given Organization.
func CreateOrganizationUser ¶
func CreateOrganizationUser(ctx context.Context, db sqlx.Execer, organizationID, userID int64, isAdmin, isDeviceAdmin, isGatewayAdmin bool) error
CreateOrganizationUser adds the given user to the organization.
func CreateServiceProfile ¶
CreateServiceProfile creates the given service-profile.
func CreateUser ¶
CreateUser creates the given user.
func DeleteAPIKey ¶
DeleteAPIKey deletes the API key for the given ID.
func DeleteAllApplicationsForOrganizationID ¶
func DeleteAllApplicationsForOrganizationID(ctx context.Context, db sqlx.Ext, organizationID int64) error
DeleteAllApplicationsForOrganizationID deletes all applications given an organization id.
func DeleteAllDeviceProfilesForOrganizationID ¶
func DeleteAllDeviceProfilesForOrganizationID(ctx context.Context, db sqlx.Ext, organizationID int64) error
DeleteAllDeviceProfilesForOrganizationID deletes all device-profiles given an organization id.
func DeleteAllDevicesForApplicationID ¶
DeleteAllDevicesForApplicationID deletes all devices given an application id.
func DeleteAllGatewaysForOrganizationID ¶
func DeleteAllGatewaysForOrganizationID(ctx context.Context, db sqlx.Ext, organizationID int64) error
DeleteAllGatewaysForOrganizationID deletes all gateways for a given organization id.
func DeleteAllServiceProfilesForOrganizationID ¶
func DeleteAllServiceProfilesForOrganizationID(ctx context.Context, db sqlx.Ext, organizationID int64) error
DeleteAllServiceProfilesForOrganizationID deletes all service-profiles given an organization id.
func DeleteApplication ¶
DeleteApplication deletes the Application matching the given ID.
func DeleteDevice ¶
DeleteDevice deletes the device matching the given DevEUI.
func DeleteDeviceKeys ¶
DeleteDeviceKeys deletes the device-keys for the given DevEUI.
func DeleteDeviceProfile ¶
DeleteDeviceProfile deletes the device-profile matching the given id.
func DeleteGateway ¶
DeleteGateway deletes the gateway matching the given MAC.
func DeleteGatewayProfile ¶
DeleteGatewayProfile deletes the gateway-profile matching the given id.
func DeleteIntegration ¶
DeleteIntegration deletes the integration matching the given id.
func DeleteMulticastGroup ¶
DeleteMulticastGroup deletes a multicast-group given an id.
func DeleteNetworkServer ¶
DeleteNetworkServer deletes the network-server matching the given id.
func DeleteOrganization ¶
DeleteOrganization deletes the organization matching the given id.
func DeleteOrganizationUser ¶
func DeleteOrganizationUser(ctx context.Context, db sqlx.Execer, organizationID, userID int64) error
DeleteOrganizationUser deletes the given organization user.
func DeleteServiceProfile ¶
DeleteServiceProfile deletes the service-profile matching the given id.
func DeleteUser ¶
DeleteUser deletes the User record matching the given ID.
func EnqueueDownlinkPayload ¶
func EnqueueDownlinkPayload(ctx context.Context, db sqlx.Ext, devEUI lorawan.EUI64, confirmed bool, fPort uint8, data []byte) (uint32, error)
EnqueueDownlinkPayload adds the downlink payload to the network-server device-queue.
func GetAPIKeyCount ¶
GetAPIKeyCount returns the number of API keys.
func GetApplicationCount ¶
func GetApplicationCount(ctx context.Context, db sqlx.Queryer, filters ApplicationFilters) (int, error)
GetApplicationCount returns the total number of applications.
func GetDeviceCount ¶
GetDeviceCount returns the number of devices.
func GetDeviceCountForMulticastGroup ¶
func GetDeviceCountForMulticastGroup(ctx context.Context, db sqlx.Queryer, multicastGroup uuid.UUID) (int, error)
GetDeviceCountForMulticastGroup returns the number of devices for the given multicast-group.
func GetDeviceProfileCount ¶
func GetDeviceProfileCount(ctx context.Context, db sqlx.Queryer, filters DeviceProfileFilters) (int, error)
GetDeviceProfileCount returns the total number of device-profiles.
func GetGatewayCount ¶
GetGatewayCount returns the total number of gateways.
func GetGatewayProfileCount ¶
GetGatewayProfileCount returns the total number of gateway-profiles.
func GetGatewayProfileCountForNetworkServerID ¶
func GetGatewayProfileCountForNetworkServerID(ctx context.Context, db sqlx.Queryer, networkServerID int64) (int, error)
GetGatewayProfileCountForNetworkServerID returns the total number of gateway-profiles given a network-server ID.
func GetGatewaysForMACs ¶
func GetGatewaysForMACs(ctx context.Context, db sqlx.Queryer, macs []lorawan.EUI64) (map[lorawan.EUI64]Gateway, error)
GetGatewaysForMACs returns a map of gateways given a slice of MACs.
func GetLastGatewayPingAndRX ¶
func GetLastGatewayPingAndRX(ctx context.Context, db sqlx.Queryer, mac lorawan.EUI64) (GatewayPing, []GatewayPingRX, error)
GetLastGatewayPingAndRX returns the last gateway ping and RX for the given gateway MAC.
func GetMulticastGroupCount ¶
func GetMulticastGroupCount(ctx context.Context, db sqlx.Queryer, filters MulticastGroupFilters) (int, error)
GetMulticastGroupCount returns the total number of multicast-groups given the provided filters. Note that empty values are not used as filters.
func GetNetworkServerCount ¶
func GetNetworkServerCount(ctx context.Context, db sqlx.Queryer, filters NetworkServerFilters) (int, error)
GetNetworkServerCount returns the total number of network-servers.
func GetOrganizationCount ¶
func GetOrganizationCount(ctx context.Context, db sqlx.Queryer, filters OrganizationFilters) (int, error)
GetOrganizationCount returns the total number of organizations.
func GetOrganizationUserCount ¶
func GetOrganizationUserCount(ctx context.Context, db sqlx.Queryer, organizationID int64) (int, error)
GetOrganizationUserCount returns the number of users for the given organization.
func GetRedisKey ¶
GetRedisKey returns the Redis key given a template and parameters.
func GetServiceProfileCount ¶
func GetServiceProfileCount(ctx context.Context, db sqlx.Queryer, filters ServiceProfileFilters) (int, error)
GetServiceProfileCount returns the total number of service-profiles.
func GetUserCount ¶
GetUserCount returns the total number of users.
func GetUserToken ¶
GetUserToken returns a JWT token for the given user.
func LoginUserByPassword ¶
func LoginUserByPassword(ctx context.Context, db sqlx.Queryer, email string, password string) (string, error)
LoginUserByPassword returns a JWT token for the user matching the given email and password combination.
func MigrateDown ¶
MigrateDown configure postgres migration down
func RemoveDeviceFromMulticastGroup ¶
func RemoveDeviceFromMulticastGroup(ctx context.Context, db sqlx.Ext, multicastGroupID uuid.UUID, devEUI lorawan.EUI64) error
RemoveDeviceFromMulticastGroup removes the given device from the given multicast-group.
func SaveMetrics ¶
func SaveMetrics(ctx context.Context, name string, metrics MetricsRecord) error
SaveMetrics stores the given metrics into Redis.
func SaveMetricsForInterval ¶
func SaveMetricsForInterval(ctx context.Context, agg AggregationInterval, name string, metrics MetricsRecord) error
SaveMetricsForInterval aggregates and stores the given metrics.
func SetAggregationIntervals ¶
func SetAggregationIntervals(intervals []AggregationInterval) error
SetAggregationIntervals sets the metrics aggregation to the given intervals.
func SetMetricsTTL ¶
SetMetricsTTL sets the storage TTL.
func SetTimeLocation ¶
SetTimeLocation sets the time location.
func Transaction ¶
Transaction wraps the given function in a transaction. In case the given functions returns an error, the transaction will be rolled back.
func UpdateApplication ¶
UpdateApplication updates the given Application.
func UpdateDevice ¶
UpdateDevice updates the given device. When localOnly is set, it will not update the device on the network-server.
func UpdateDeviceActivation ¶
func UpdateDeviceActivation(ctx context.Context, db sqlx.Ext, devEUI lorawan.EUI64, devAddr lorawan.DevAddr, appSKey lorawan.AES128Key) error
UpdateDeviceActivation updates the device address and the AppSKey.
func UpdateDeviceKeys ¶
UpdateDeviceKeys updates the given device-keys.
func UpdateDeviceLastSeenAndDR ¶
func UpdateDeviceLastSeenAndDR(ctx context.Context, db sqlx.Ext, devEUI lorawan.EUI64, ts time.Time, dr int) error
UpdateDeviceLastSeenAndDR updates the device last-seen timestamp and data-rate.
func UpdateDeviceProfile ¶
UpdateDeviceProfile updates the given device-profile.
func UpdateGateway ¶
UpdateGateway updates the given Gateway.
func UpdateGatewayProfile ¶
UpdateGatewayProfile updates the given gateway-profile.
func UpdateIntegration ¶
UpdateIntegration updates the given Integration.
func UpdateMulticastGroup ¶
UpdateMulticastGroup updates the given multicast-group.
func UpdateNetworkServer ¶
UpdateNetworkServer updates the given network-server.
func UpdateOrganization ¶
UpdateOrganization updates the given organization.
func UpdateOrganizationUser ¶
func UpdateOrganizationUser(ctx context.Context, db sqlx.Execer, organizationID, userID int64, isAdmin, isDeviceAdmin, isGatewayAdmin bool) error
UpdateOrganizationUser updates the given user of the organization.
func UpdateServiceProfile ¶
UpdateServiceProfile updates the given service-profile.
Types ¶
type APIKey ¶
type APIKey struct { ID uuid.UUID `db:"id"` CreatedAt time.Time `db:"created_at"` Name string `db:"name"` IsAdmin bool `db:"is_admin"` OrganizationID *int64 `db:"organization_id"` ApplicationID *int64 `db:"application_id"` }
APIKey represents an API key.
func GetAPIKeys ¶
GetAPIKeys returns a slice of API keys.
type APIKeyFilters ¶
type APIKeyFilters struct { IsAdmin bool `db:"is_admin"` OrganizationID *int64 `db:"organization_id"` ApplicationID *int64 `db:"application_id"` // Limit and Offset are added for convenience so that this struct can // be given as the arguments. Limit int `db:"limit"` Offset int `db:"offset"` }
APIKeyFilters provides filters for getting the API keys.
type AggregationInterval ¶
type AggregationInterval string
AggregationInterval defines the aggregation type.
const ( AggregationMinute AggregationInterval = "MINUTE" AggregationHour AggregationInterval = "HOUR" AggregationDay AggregationInterval = "DAY" AggregationMonth AggregationInterval = "MONTH" )
Metrics aggregation intervals.
type Application ¶
type Application struct { ID int64 `db:"id"` Name string `db:"name"` Description string `db:"description"` OrganizationID int64 `db:"organization_id"` ServiceProfileID uuid.UUID `db:"service_profile_id"` PayloadCodec codec.Type `db:"payload_codec"` PayloadEncoderScript string `db:"payload_encoder_script"` PayloadDecoderScript string `db:"payload_decoder_script"` MQTTTLSCert []byte `db:"mqtt_tls_cert"` }
Application represents an application.
func GetApplication ¶
GetApplication returns the Application for the given id.
func (Application) Validate ¶
func (a Application) Validate() error
Validate validates the data of the Application.
type ApplicationFilters ¶
type ApplicationFilters struct { UserID int64 `db:"user_id"` OrganizationID int64 `db:"organization_id"` Search string `db:"search"` // Limit and Offset are added for convenience so that this struct can // be given as the arguments. Limit int `db:"limit"` Offset int `db:"offset"` }
ApplicationFilters provides filters for filtering applications.
func (ApplicationFilters) SQL ¶
func (f ApplicationFilters) SQL() string
SQL returns the SQL filters.
type ApplicationListItem ¶
type ApplicationListItem struct { Application ServiceProfileName string `db:"service_profile_name"` }
ApplicationListItem devices the application as a list item.
func GetApplications ¶
func GetApplications(ctx context.Context, db sqlx.Queryer, filters ApplicationFilters) ([]ApplicationListItem, error)
GetApplications returns a slice of applications, sorted by name and respecting the given limit and offset.
type DBLogger ¶
DBLogger is a DB wrapper which logs the executed sql queries and their duration.
type Device ¶
type Device struct { DevEUI lorawan.EUI64 `db:"dev_eui"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` LastSeenAt *time.Time `db:"last_seen_at"` ApplicationID int64 `db:"application_id"` DeviceProfileID uuid.UUID `db:"device_profile_id"` Name string `db:"name"` Description string `db:"description"` SkipFCntCheck bool `db:"-"` ReferenceAltitude float64 `db:"-"` DeviceStatusBattery *float32 `db:"device_status_battery"` DeviceStatusMargin *int `db:"device_status_margin"` DeviceStatusExternalPower bool `db:"device_status_external_power_source"` DR *int `db:"dr"` Latitude *float64 `db:"latitude"` Longitude *float64 `db:"longitude"` Altitude *float64 `db:"altitude"` DevAddr lorawan.DevAddr `db:"dev_addr"` AppSKey lorawan.AES128Key `db:"app_s_key"` Variables hstore.Hstore `db:"variables"` Tags hstore.Hstore `db:"tags"` IsDisabled bool `db:"-"` }
Device defines a LoRaWAN device.
func GetDevice ¶
func GetDevice(ctx context.Context, db sqlx.Queryer, devEUI lorawan.EUI64, forUpdate, localOnly bool) (Device, error)
GetDevice returns the device matching the given DevEUI. When forUpdate is set to true, then db must be a db transaction. When localOnly is set to true, no call to the network-server is made to retrieve additional device data.
type DeviceFilters ¶
type DeviceFilters struct { OrganizationID int64 `db:"organization_id"` ApplicationID int64 `db:"application_id"` MulticastGroupID uuid.UUID `db:"multicast_group_id"` ServiceProfileID uuid.UUID `db:"service_profile_id"` Search string `db:"search"` Tags hstore.Hstore `db:"tags"` // Limit and Offset are added for convenience so that this struct can // be given as the arguments. Limit int `db:"limit"` Offset int `db:"offset"` }
DeviceFilters provide filters that can be used to filter on devices. Note that empty values are not used as filter.
type DeviceKeys ¶
type DeviceKeys struct { CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` DevEUI lorawan.EUI64 `db:"dev_eui"` NwkKey lorawan.AES128Key `db:"nwk_key"` AppKey lorawan.AES128Key `db:"app_key"` JoinNonce int `db:"join_nonce"` }
DeviceKeys defines the keys for a LoRaWAN device.
func GetDeviceKeys ¶
GetDeviceKeys returns the device-keys for the given DevEUI.
type DeviceListItem ¶
DeviceListItem defines the Device as list item.
func GetDevices ¶
func GetDevices(ctx context.Context, db sqlx.Queryer, filters DeviceFilters) ([]DeviceListItem, error)
GetDevices returns a slice of devices.
type DeviceProfile ¶
type DeviceProfile struct { NetworkServerID int64 `db:"network_server_id"` OrganizationID int64 `db:"organization_id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` PayloadCodec codec.Type `db:"payload_codec"` PayloadEncoderScript string `db:"payload_encoder_script"` PayloadDecoderScript string `db:"payload_decoder_script"` Tags hstore.Hstore `db:"tags"` UplinkInterval time.Duration `db:"uplink_interval"` DeviceProfile ns.DeviceProfile `db:"-"` }
DeviceProfile defines the device-profile.
func GetDeviceProfile ¶
func GetDeviceProfile(ctx context.Context, db sqlx.Queryer, id uuid.UUID, forUpdate, localOnly bool) (DeviceProfile, error)
GetDeviceProfile returns the device-profile matching the given id. When forUpdate is set to true, then db must be a db transaction. When localOnly is set to true, no call to the network-server is made to retrieve additional device data.
func (DeviceProfile) Validate ¶
func (dp DeviceProfile) Validate() error
Validate validates the device-profile data.
type DeviceProfileFilters ¶
type DeviceProfileFilters struct { ApplicationID int64 `db:"application_id"` OrganizationID int64 `db:"organization_id"` UserID int64 `db:"user_id"` // Limit and Offset are added for convenience so that this struct can // be given as the arguments. Limit int `db:"limit"` Offset int `db:"offset"` }
DeviceProfileFilters provide filders for filtering device-profiles.
func (DeviceProfileFilters) SQL ¶
func (f DeviceProfileFilters) SQL() string
SQL returns the SQL filters.
type DeviceProfileMeta ¶
type DeviceProfileMeta struct { DeviceProfileID uuid.UUID `db:"device_profile_id"` NetworkServerID int64 `db:"network_server_id"` OrganizationID int64 `db:"organization_id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` NetworkServerName string `db:"network_server_name"` }
DeviceProfileMeta defines the device-profile meta record.
func GetDeviceProfiles ¶
func GetDeviceProfiles(ctx context.Context, db sqlx.Queryer, filters DeviceProfileFilters) ([]DeviceProfileMeta, error)
GetDeviceProfiles returns a slice of device-profiles.
type DevicesActiveInactive ¶
type DevicesActiveInactive struct { NeverSeenCount uint32 `db:"never_seen_count"` ActiveCount uint32 `db:"active_count"` InactiveCount uint32 `db:"inactive_count"` }
DevicesActiveInactive holds the active and inactive counts.
func GetDevicesActiveInactive ¶
func GetDevicesActiveInactive(ctx context.Context, db sqlx.Queryer, organizationID int64) (DevicesActiveInactive, error)
GetDevicesActiveInactive returns the active / inactive devices.
type DevicesDataRates ¶
DevicesDataRates holds the device counts by data-rate.
func GetDevicesDataRates ¶
func GetDevicesDataRates(ctx context.Context, db sqlx.Queryer, organizationID int64) (DevicesDataRates, error)
GetDevicesDataRates returns the device counts by data-rate.
type ExtraChannel ¶
type ExtraChannel struct { Modulation string Frequency int Bandwidth int Bitrate int SpreadingFactors []int }
ExtraChannel defines an extra channel for the gateway-profile.
type GPSPoint ¶
GPSPoint contains a GPS point.
type Gateway ¶
type Gateway struct { MAC lorawan.EUI64 `db:"mac"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` FirstSeenAt *time.Time `db:"first_seen_at"` LastSeenAt *time.Time `db:"last_seen_at"` Name string `db:"name"` Description string `db:"description"` OrganizationID int64 `db:"organization_id"` Ping bool `db:"ping"` LastPingID *int64 `db:"last_ping_id"` LastPingSentAt *time.Time `db:"last_ping_sent_at"` NetworkServerID int64 `db:"network_server_id"` GatewayProfileID *uuid.UUID `db:"gateway_profile_id"` ServiceProfileID *uuid.UUID `db:"service_profile_id"` Latitude float64 `db:"latitude"` Longitude float64 `db:"longitude"` Altitude float64 `db:"altitude"` Tags hstore.Hstore `db:"tags"` Metadata hstore.Hstore `db:"metadata"` }
Gateway represents a gateway.
type GatewayFilters ¶
type GatewayFilters struct { OrganizationID int64 `db:"organization_id"` UserID int64 `db:"user_id"` Search string `db:"search"` // Limit and Offset are added for convenience so that this struct can // be given as the arguments. Limit int `db:"limit"` Offset int `db:"offset"` }
GatewayFilters provides filters for filtering gateways.
type GatewayListItem ¶
type GatewayListItem struct { MAC lorawan.EUI64 `db:"mac"` Name string `db:"name"` Description string `db:"description"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` FirstSeenAt *time.Time `db:"first_seen_at"` LastSeenAt *time.Time `db:"last_seen_at"` OrganizationID int64 `db:"organization_id"` NetworkServerID int64 `db:"network_server_id"` Latitude float64 `db:"latitude"` Longitude float64 `db:"longitude"` Altitude float64 `db:"altitude"` NetworkServerName string `db:"network_server_name"` }
GatewayListItem defines the gateway as list item.
func GetGateways ¶
func GetGateways(ctx context.Context, db sqlx.Queryer, filters GatewayFilters) ([]GatewayListItem, error)
GetGateways returns a slice of gateways sorted by name.
type GatewayPing ¶
type GatewayPing struct { ID int64 `db:"id"` CreatedAt time.Time `db:"created_at"` GatewayMAC lorawan.EUI64 `db:"gateway_mac"` Frequency int `db:"frequency"` DR int `db:"dr"` }
GatewayPing represents a gateway ping.
func GetGatewayPing ¶
GetGatewayPing returns the ping matching the given id.
type GatewayPingRX ¶
type GatewayPingRX struct { ID int64 `db:"id"` PingID int64 `db:"ping_id"` CreatedAt time.Time `db:"created_at"` GatewayMAC lorawan.EUI64 `db:"gateway_mac"` ReceivedAt *time.Time `db:"received_at"` RSSI int `db:"rssi"` LoRaSNR float64 `db:"lora_snr"` Location GPSPoint `db:"location"` Altitude float64 `db:"altitude"` }
GatewayPingRX represents a ping received by one of the gateways.
func GetGatewayPingRXForPingID ¶
func GetGatewayPingRXForPingID(ctx context.Context, db sqlx.Queryer, pingID int64) ([]GatewayPingRX, error)
GetGatewayPingRXForPingID returns the received gateway pings for the given ping ID.
type GatewayProfile ¶
type GatewayProfile struct { NetworkServerID int64 `db:"network_server_id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` GatewayProfile ns.GatewayProfile `db:"-"` }
GatewayProfile defines a gateway-profile.
func GetGatewayProfile ¶
GetGatewayProfile returns the gateway-profile matching the given id.
type GatewayProfileMeta ¶
type GatewayProfileMeta struct { GatewayProfileID uuid.UUID `db:"gateway_profile_id"` NetworkServerID int64 `db:"network_server_id"` NetworkServerName string `db:"network_server_name"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` StatsInterval time.Duration `db:"stats_interval"` }
GatewayProfileMeta defines the gateway-profile meta record.
func GetGatewayProfiles ¶
func GetGatewayProfiles(ctx context.Context, db sqlx.Queryer, limit, offset int) ([]GatewayProfileMeta, error)
GetGatewayProfiles returns a slice of gateway-profiles.
func GetGatewayProfilesForNetworkServerID ¶
func GetGatewayProfilesForNetworkServerID(ctx context.Context, db sqlx.Queryer, networkServerID int64, limit, offset int) ([]GatewayProfileMeta, error)
GetGatewayProfilesForNetworkServerID returns a slice of gateway-profiles for the given network-server ID.
type GatewaysActiveInactive ¶
type GatewaysActiveInactive struct { NeverSeenCount uint32 `db:"never_seen_count"` ActiveCount uint32 `db:"active_count"` InactiveCount uint32 `db:"inactive_count"` }
GatewaysActiveInactive holds the avtive and inactive counts.
func GetGatewaysActiveInactive ¶
func GetGatewaysActiveInactive(ctx context.Context, db sqlx.Queryer, organizationID int64) (GatewaysActiveInactive, error)
GetGatewaysActiveInactive returns the active / inactive gateways.
type Integration ¶
type Integration struct { ID int64 `db:"id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` ApplicationID int64 `db:"application_id"` Kind string `db:"kind"` Settings json.RawMessage `db:"settings"` }
Integration represents an integration.
func GetIntegration ¶
GetIntegration returns the Integration for the given id.
func GetIntegrationByApplicationID ¶
func GetIntegrationByApplicationID(ctx context.Context, db sqlx.Queryer, applicationID int64, kind string) (Integration, error)
GetIntegrationByApplicationID returns the Integration for the given application id and kind.
func GetIntegrationsForApplicationID ¶
func GetIntegrationsForApplicationID(ctx context.Context, db sqlx.Queryer, applicationID int64) ([]Integration, error)
GetIntegrationsForApplicationID returns the integrations for the given application id.
type MetricsRecord ¶
MetricsRecord holds a single metrics record.
func GetMetrics ¶
func GetMetrics(ctx context.Context, agg AggregationInterval, name string, start, end time.Time) ([]MetricsRecord, error)
GetMetrics returns the metrics for the requested aggregation interval.
type MulticastGroup ¶
type MulticastGroup struct { CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` MCAppSKey lorawan.AES128Key `db:"mc_app_s_key"` ApplicationID int64 `db:"application_id"` MulticastGroup ns.MulticastGroup `db:"-"` }
MulticastGroup defines the multicast-group.
func GetMulticastGroup ¶
func GetMulticastGroup(ctx context.Context, db sqlx.Queryer, id uuid.UUID, forUpdate, localOnly bool) (MulticastGroup, error)
GetMulticastGroup returns the multicast-group given an id.
func (MulticastGroup) Validate ¶
func (mg MulticastGroup) Validate() error
Validate validates the service-profile data.
type MulticastGroupFilters ¶
type MulticastGroupFilters struct { OrganizationID int64 `db:"organization_id"` ApplicationID int64 `db:"application_id"` DevEUI lorawan.EUI64 `db:"dev_eui"` Search string `db:"search"` // Limit and Offset are added for convenience so that this struct can // be given as the arguments. Limit int `db:"limit"` Offset int `db:"offset"` }
MulticastGroupFilters provide filters that can be used to filter on multicast-groups. Note that empty values are not used as filters.
func (MulticastGroupFilters) SQL ¶
func (f MulticastGroupFilters) SQL() string
SQL returns the SQL filter.
type MulticastGroupListItem ¶
type MulticastGroupListItem struct { ID uuid.UUID `db:"id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` ApplicationID int64 `db:"application_id"` ApplicationName string `db:"application_name"` }
MulticastGroupListItem defines the multicast-group for listing.
func GetMulticastGroups ¶
func GetMulticastGroups(ctx context.Context, db sqlx.Queryer, filters MulticastGroupFilters) ([]MulticastGroupListItem, error)
GetMulticastGroups returns a slice of multicast-groups, given the privded filters. Note that empty values are not used as filters.
type NetworkServer ¶
type NetworkServer struct { ID int64 `db:"id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` Server string `db:"server"` CACert string `db:"ca_cert"` TLSCert string `db:"tls_cert"` TLSKey string `db:"tls_key"` RoutingProfileCACert string `db:"routing_profile_ca_cert"` RoutingProfileTLSCert string `db:"routing_profile_tls_cert"` RoutingProfileTLSKey string `db:"routing_profile_tls_key"` GatewayDiscoveryEnabled bool `db:"gateway_discovery_enabled"` GatewayDiscoveryInterval int `db:"gateway_discovery_interval"` GatewayDiscoveryTXFrequency int `db:"gateway_discovery_tx_frequency"` GatewayDiscoveryDR int `db:"gateway_discovery_dr"` }
NetworkServer defines the information to connect to a network-server.
func GetNetworkServer ¶
GetNetworkServer returns the network-server matching the given id.
func GetNetworkServerForApplicationID ¶
func GetNetworkServerForApplicationID(ctx context.Context, db sqlx.Queryer, id int64) (NetworkServer, error)
GetNetworkServerForApplicationID returns the network-server for the given application ID.
func GetNetworkServerForDevEUI ¶
func GetNetworkServerForDevEUI(ctx context.Context, db sqlx.Queryer, devEUI lorawan.EUI64) (NetworkServer, error)
GetNetworkServerForDevEUI returns the network-server for the given DevEUI.
func GetNetworkServerForDeviceProfileID ¶
func GetNetworkServerForDeviceProfileID(ctx context.Context, db sqlx.Queryer, id uuid.UUID) (NetworkServer, error)
GetNetworkServerForDeviceProfileID returns the network-server for the given device-profile id.
func GetNetworkServerForGatewayMAC ¶
func GetNetworkServerForGatewayMAC(ctx context.Context, db sqlx.Queryer, mac lorawan.EUI64) (NetworkServer, error)
GetNetworkServerForGatewayMAC returns the network-server for a given gateway mac.
func GetNetworkServerForGatewayProfileID ¶
func GetNetworkServerForGatewayProfileID(ctx context.Context, db sqlx.Queryer, id uuid.UUID) (NetworkServer, error)
GetNetworkServerForGatewayProfileID returns the network-server for the given gateway-profile id.
func GetNetworkServerForMulticastGroupID ¶
func GetNetworkServerForMulticastGroupID(ctx context.Context, db sqlx.Queryer, id uuid.UUID) (NetworkServer, error)
GetNetworkServerForMulticastGroupID returns the network-server for the given multicast-group id.
func GetNetworkServerForServiceProfileID ¶
func GetNetworkServerForServiceProfileID(ctx context.Context, db sqlx.Queryer, id uuid.UUID) (NetworkServer, error)
GetNetworkServerForServiceProfileID returns the network-server for the given service-profile id.
func GetNetworkServers ¶
func GetNetworkServers(ctx context.Context, db sqlx.Queryer, filters NetworkServerFilters) ([]NetworkServer, error)
GetNetworkServers returns a slice of network-servers.
func (NetworkServer) Validate ¶
func (ns NetworkServer) Validate() error
Validate validates the network-server data.
type NetworkServerFilters ¶
type NetworkServerFilters struct { OrganizationID int64 `db:"organization_id"` // Limit and Offset are added for convenience so that this struct can // be given as the arguments. Limit int `db:"limit"` Offset int `db:"offset"` }
NetworkServerFilters provides filters for filtering network-servers.
func (NetworkServerFilters) SQL ¶
func (f NetworkServerFilters) SQL() string
SQL returns the SQL filters.
type Organization ¶
type Organization struct { ID int64 `db:"id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` DisplayName string `db:"display_name"` CanHaveGateways bool `db:"can_have_gateways"` MaxDeviceCount int `db:"max_device_count"` MaxGatewayCount int `db:"max_gateway_count"` }
Organization represents an organization.
func GetOrganization ¶
func GetOrganization(ctx context.Context, db sqlx.Queryer, id int64, forUpdate bool) (Organization, error)
GetOrganization returns the Organization for the given id. When forUpdate is set to true, then db must be a db transaction.
func GetOrganizations ¶
func GetOrganizations(ctx context.Context, db sqlx.Queryer, filters OrganizationFilters) ([]Organization, error)
GetOrganizations returns a slice of organizations, sorted by name.
func (Organization) Validate ¶
func (o Organization) Validate() error
Validate validates the data of the Organization.
type OrganizationFilters ¶
type OrganizationFilters struct { UserID int64 `db:"user_id"` Search string `db:"search"` // Limit and Offset are added for convenience so that this struct can // be given as the arguments. Limit int `db:"limit"` Offset int `db:"offset"` }
OrganizationFilters provides filters for filtering organizations.
func (OrganizationFilters) SQL ¶
func (f OrganizationFilters) SQL() string
SQL returns the SQL filters.
type OrganizationUser ¶
type OrganizationUser struct { UserID int64 `db:"user_id"` Email string `db:"email"` IsAdmin bool `db:"is_admin"` IsDeviceAdmin bool `db:"is_device_admin"` IsGatewayAdmin bool `db:"is_gateway_admin"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` }
OrganizationUser represents an organization user.
func GetOrganizationUser ¶
func GetOrganizationUser(ctx context.Context, db sqlx.Queryer, organizationID, userID int64) (OrganizationUser, error)
GetOrganizationUser gets the information of the given organization user.
func GetOrganizationUsers ¶
func GetOrganizationUsers(ctx context.Context, db sqlx.Queryer, organizationID int64, limit, offset int) ([]OrganizationUser, error)
GetOrganizationUsers returns the users for the given organization.
type SearchResult ¶
type SearchResult struct { Kind string `db:"kind"` Score float64 `db:"score"` OrganizationID *int64 `db:"organization_id"` OrganizationName *string `db:"organization_name"` ApplicationID *int64 `db:"application_id"` ApplicationName *string `db:"application_name"` DeviceDevEUI *lorawan.EUI64 `db:"device_dev_eui"` DeviceName *string `db:"device_name"` GatewayMAC *lorawan.EUI64 `db:"gateway_mac"` GatewayName *string `db:"gateway_name"` }
SearchResult defines a search result.
type ServiceProfile ¶
type ServiceProfile struct { NetworkServerID int64 `db:"network_server_id"` OrganizationID int64 `db:"organization_id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` ServiceProfile ns.ServiceProfile `db:"-"` }
ServiceProfile defines the service-profile.
func GetServiceProfile ¶
func GetServiceProfile(ctx context.Context, db sqlx.Queryer, id uuid.UUID, localOnly bool) (ServiceProfile, error)
GetServiceProfile returns the service-profile matching the given id.
func (ServiceProfile) Validate ¶
func (sp ServiceProfile) Validate() error
Validate validates the service-profile data.
type ServiceProfileFilters ¶
type ServiceProfileFilters struct { UserID int64 `db:"user_id"` OrganizationID int64 `db:"organization_id"` NetworkServerID int64 `db:"network_server_id"` // Limit and Offset are added for convenience so that this struct can // be given as the arguments. Limit int `db:"limit"` Offset int `db:"offset"` }
ServiceProfileFilters provides filters for filtering service profiles.
func (ServiceProfileFilters) SQL ¶
func (f ServiceProfileFilters) SQL() string
SQL returns the SQL filters.
type ServiceProfileMeta ¶
type ServiceProfileMeta struct { ServiceProfileID uuid.UUID `db:"service_profile_id"` NetworkServerID int64 `db:"network_server_id"` OrganizationID int64 `db:"organization_id"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` Name string `db:"name"` NetworkServerName string `db:"network_server_name"` }
ServiceProfileMeta defines the service-profile meta record.
func GetServiceProfiles ¶
func GetServiceProfiles(ctx context.Context, db sqlx.Queryer, filters ServiceProfileFilters) ([]ServiceProfileMeta, error)
GetServiceProfiles returns a slice of service-profiles.
type TxLogger ¶
TxLogger logs the executed sql queries and their duration.
type User ¶
type User struct { ID int64 `db:"id"` IsAdmin bool `db:"is_admin"` IsActive bool `db:"is_active"` SessionTTL int32 `db:"session_ttl"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` PasswordHash string `db:"password_hash"` Email string `db:"email"` EmailVerified bool `db:"email_verified"` EmailOld string `db:"email_old"` Note string `db:"note"` ExternalID *string `db:"external_id"` // must be pointer for unique index }
User defines the user structure.
func GetUserByEmail ¶
GetUserByEmail returns the User for the given email.
func GetUserByExternalID ¶
GetUserByExternalID returns the User for the given ext. ID.
func (*User) SetPasswordHash ¶
SetPasswordHash hashes the given password and sets it.
type UserProfile ¶
type UserProfile struct { User UserProfileUser Organizations []UserProfileOrganization }
UserProfile contains the profile of the user.
func GetProfile ¶
GetProfile returns the user profile (user, applications and organizations to which the user is linked).
type UserProfileOrganization ¶
type UserProfileOrganization struct { ID int64 `db:"organization_id"` Name string `db:"organization_name"` IsAdmin bool `db:"is_admin"` IsDeviceAdmin bool `db:"is_device_admin"` IsGatewayAdmin bool `db:"is_gateway_admin"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` }
UserProfileOrganization contains the organizations to which the user is linked.
type UserProfileUser ¶
type UserProfileUser struct { ID int64 `db:"id"` Email string `db:"email"` IsAdmin bool `db:"is_admin"` IsActive bool `db:"is_active"` SessionTTL int32 `db:"session_ttl"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` }
UserProfileUser contains the user information of the profile.