Blazor Diffusion

<back to all web services

UserData

User
Requires Authentication
import Foundation
import ServiceStack

// @ValidateRequest(Validator="IsAuthenticated")
public class UserData : IPost, Codable
{
    required public init(){}
}

public class UserDataResponse : Codable
{
    public var user:UserResult
    public var profile:UserProfile
    public var signups:[SignupType] = []
    public var roles:[String] = []
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class UserResult : Codable
{
    public var refId:String
    public var handle:String
    public var avatar:String
    public var profileUrl:String
    public var likes:Likes
    public var albums:[AlbumResult] = []

    required public init(){}
}

public class Likes : Codable
{
    public var artifactIds:[Int] = []
    public var albumIds:[Int] = []

    required public init(){}
}

public class AlbumResult : Codable
{
    public var id:Int
    public var name:String
    public var slug:String
    public var albumRef:String
    public var ownerRef:String
    public var primaryArtifactId:Int?
    public var score:Int
    public var artifactIds:[Int] = []

    required public init(){}
}

public class UserProfile : Codable
{
    public var displayName:String
    public var avatar:String
    public var handle:String

    required public init(){}
}

public enum SignupType : String, Codable
{
    case Updates
    case Beta
}


Swift UserData DTOs

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

HTTP + XML

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

POST /xml/reply/UserData HTTP/1.1 
Host: blazordiffusion.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<UserData xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BlazorDiffusion.ServiceModel" />
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<UserDataResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BlazorDiffusion.ServiceModel">
  <Profile>
    <Avatar>String</Avatar>
    <DisplayName>String</DisplayName>
    <Handle>String</Handle>
  </Profile>
  <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>
  <Roles xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:string>String</d2p1:string>
  </Roles>
  <Signups>
    <SignupType>Updates</SignupType>
  </Signups>
  <User>
    <Albums>
      <AlbumResult>
        <AlbumRef>String</AlbumRef>
        <ArtifactIds xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </ArtifactIds>
        <Id>0</Id>
        <Name>String</Name>
        <OwnerRef>String</OwnerRef>
        <PrimaryArtifactId>0</PrimaryArtifactId>
        <Score>0</Score>
        <Slug>String</Slug>
      </AlbumResult>
    </Albums>
    <Avatar>String</Avatar>
    <Handle>String</Handle>
    <Likes>
      <AlbumIds xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:int>0</d4p1:int>
      </AlbumIds>
      <ArtifactIds xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:int>0</d4p1:int>
      </ArtifactIds>
    </Likes>
    <ProfileUrl>String</ProfileUrl>
    <RefId>String</RefId>
  </User>
</UserDataResponse>