Server

<back to all web services

GetDevice

Devices
Requires Authentication
The following routes are available for this service:
GET/api/v1/devices/{Guid}
import Foundation
import ServiceStack

public class GetDevice : IHasBearerToken, Codable
{
    // @ApiMember(IsRequired=true, ParameterType="query")
    public var bearerToken:String

    // @ApiMember(IsRequired=true, ParameterType="path")
    public var guid:String

    required public init(){}
}

public class GetDeviceResponse : Codable
{
    public var device:Device
    public var responseStatus:ResponseStatus

    required public init(){}
}

// @DataContract
public class Device : Codable
{
    // @DataMember
    public var guid:String

    // @DataMember
    public var number:String

    // @DataMember
    public var label:String

    // @DataMember
    public var Description:String

    // @DataMember
    public var installationDate:Date

    // @DataMember
    public var deinstallationDate:Date?

    // @DataMember
    public var calibrationDate:Date?

    // @DataMember
    public var unit:EinheitType

    // @DataMember
    public var note:String

    // @DataMember
    public var deviceCatalog:DeviceCatalog

    // @DataMember
    public var deviceConsumptions:[DeviceConsumption] = []

    required public init(){}
}

public enum EinheitType : String, Codable
{
    case L
    case Kg
    case CBM
    case Stck
    case KWH
    case MWH
    case GWH
    case T
    case RM
    case Einheit
    case Qm
    case GJ
    case MJ
    case Null
    case St
    case Srm
    case Wh
}

// @DataContract
public class DeviceCatalog : Codable
{
    // @DataMember(Name="Guid")
    public var Guid:String

    // @DataMember(Name="TypKurz")
    public var TypKurz:String

    // @DataMember(Name="TypLang")
    public var TypLang:String

    // @DataMember(Name="Ablesbar")
    public var Ablesbar:Bool

    // @DataMember(Name="Klasse")
    public var Klasse:String

    // @DataMember(Name="Abzug")
    public var Abzug:Bool

    // @DataMember(Name="Hkvv")
    public var Hkvv:Bool

    // @DataMember(Name="Funk")
    public var Funk:Bool

    required public init(){}
}

// @DataContract
public class DeviceConsumption : Codable
{
    // @DataMember
    public var guid:String

    // @DataMember
    public var deviceReading:Double?

    // @DataMember
    public var deviceReadingDate:Date?

    // @DataMember
    public var deviceReadingKind:DeviceReadingKind

    // @DataMember
    public var changeDate:Date?

    // @DataMember
    public var note:String

    // @DataMember
    public var ampouleColour:String

    // @DataMember
    public var deviceGuid:String

    required public init(){}
}

public enum DeviceReadingKind : String, Codable
{
    case ZA
    case HA
    case MO
    case EB
    case AB
}


Swift GetDevice DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /api/v1/devices/{Guid} HTTP/1.1 
Host: bdl-servdesk.eras-online.de 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	device: 
	{
		guid: 00000000000000000000000000000000,
		number: String,
		label: String,
		description: String,
		installationDate: 0001-01-01T00:00:00Z,
		deinstallationDate: 0001-01-01T00:00:00Z,
		calibrationDate: 0001-01-01T00:00:00Z,
		unit: L,
		note: String,
		deviceCatalog: 
		{
			Guid: String,
			TypKurz: String,
			TypLang: String,
			Ablesbar: False,
			Klasse: String,
			Abzug: False,
			Hkvv: False,
			Funk: False
		},
		deviceConsumptions: 
		[
			{
				guid: 00000000000000000000000000000000,
				deviceReading: 0,
				deviceReadingDate: 0001-01-01T00:00:00Z,
				deviceReadingKind: ZA,
				changeDate: 0001-01-01T00:00:00Z,
				note: String,
				ampouleColour: String,
				deviceGuid: String
			}
		]
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}