GET | /user/current |
---|
import Foundation
import ServiceStack
public class BrowseCurrentUser : IGet, Codable
{
required public init(){}
}
public class BrowseCurrentUserResponse : ResponseBase
{
public var user:CurrentUser
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case user
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
user = try container.decodeIfPresent(CurrentUser.self, forKey: .user)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if user != nil { try container.encode(user, forKey: .user) }
}
}
public class ResponseBase : Codable
{
public var responseStatus:ResponseStatus
required public init(){}
}
public class CurrentUser : Codable
{
public var id:Int
public var email:String
public var userName:String
public var phoneNumber:String
public var displayName:String
public var organizationUnit:String
public var position:String
public var status:Int
public var supplier:CurrentSupplier
public var roles:[String] = []
public var permissions:[String] = []
required public init(){}
}
public class CurrentSupplier : SupplierSimple
{
public var status:SupplierStatus
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case status
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
status = try container.decodeIfPresent(SupplierStatus.self, forKey: .status)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if status != nil { try container.encode(status, forKey: .status) }
}
}
public class SupplierSimple : Codable
{
public var id:Int
public var ownerId:Int
public var vatNumber:String
public var businessType:BusinessType
public var countryId:Int
public var name:String
public var shortName:String
public var registrationNumber:String
public var establishedDate:Date
public var registrationDate:Date
public var duns:String
public var operatingLicenseNumber:String
public var isAccounting:Bool
public var isSmallTaxPayer:Bool
public var email:String
public var phoneNumber:String
public var website:String
required public init(){}
}
public enum BusinessType : Int, Codable
{
case Company = 0
case PrivateEntrepreneur = 1
case NonProfit = 2
case LawOffice = 3
}
public enum SupplierStatus : Int, Codable
{
case Registered = 0
case AwaitingVeoliaConfirmation = 1
case Active = 2
case Rejected = 3
case Locked = 4
case Deleted = 5
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /user/current HTTP/1.1 Host: szallitoiportal-be.veolia.hu Accept: application/xml
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <BrowseCurrentUserResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Portal.ServiceDto"> <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types"> <d2p1:ErrorCode>String</d2p1:ErrorCode> <d2p1:Message>String</d2p1:Message> <d2p1:StackTrace>String</d2p1:StackTrace> <d2p1:Errors> <d2p1:ResponseError> <d2p1:ErrorCode>String</d2p1:ErrorCode> <d2p1:FieldName>String</d2p1:FieldName> <d2p1:Message>String</d2p1:Message> <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:KeyValueOfstringstring> <d5p1:Key>String</d5p1:Key> <d5p1:Value>String</d5p1:Value> </d5p1:KeyValueOfstringstring> </d2p1:Meta> </d2p1:ResponseError> </d2p1:Errors> <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d3p1:KeyValueOfstringstring> <d3p1:Key>String</d3p1:Key> <d3p1:Value>String</d3p1:Value> </d3p1:KeyValueOfstringstring> </d2p1:Meta> </ResponseStatus> <User> <DisplayName>String</DisplayName> <Email>String</Email> <Id>0</Id> <OrganizationUnit>String</OrganizationUnit> <Permissions xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d3p1:string>String</d3p1:string> </Permissions> <PhoneNumber>String</PhoneNumber> <Position>String</Position> <Roles xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d3p1:string>String</d3p1:string> </Roles> <Status>0</Status> <Supplier> <BusinessType>Company</BusinessType> <CountryId>0</CountryId> <Duns>String</Duns> <Email>String</Email> <EstablishedDate>0001-01-01T00:00:00</EstablishedDate> <Id>0</Id> <IsAccounting>false</IsAccounting> <IsSmallTaxPayer>false</IsSmallTaxPayer> <Name>String</Name> <OperatingLicenseNumber>String</OperatingLicenseNumber> <OwnerId>0</OwnerId> <PhoneNumber>String</PhoneNumber> <RegistrationDate>0001-01-01T00:00:00</RegistrationDate> <RegistrationNumber>String</RegistrationNumber> <ShortName>String</ShortName> <VatNumber>String</VatNumber> <Website>String</Website> <Status>Registered</Status> </Supplier> <UserName>String</UserName> </User> </BrowseCurrentUserResponse>