Trendsic Platform Service

<back to all web services

ConversationRequest

Requires Authentication
Requires any of the roles:Agent, Administrator
The following routes are available for this service:
GET/v1/Conversation/{TableName}/{FieldName}/{RecordId}
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class ConversationHeader implements IConvertible
{
    String? ConversationHeaderId;
    String? TableName;
    String? FieldName;
    int? RecordId;
    bool? AgentHasRead;
    bool? AdminHasRead;

    ConversationHeader({this.ConversationHeaderId,this.TableName,this.FieldName,this.RecordId,this.AgentHasRead,this.AdminHasRead});
    ConversationHeader.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ConversationHeaderId = json['ConversationHeaderId'];
        TableName = json['TableName'];
        FieldName = json['FieldName'];
        RecordId = json['RecordId'];
        AgentHasRead = json['AgentHasRead'];
        AdminHasRead = json['AdminHasRead'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ConversationHeaderId': ConversationHeaderId,
        'TableName': TableName,
        'FieldName': FieldName,
        'RecordId': RecordId,
        'AgentHasRead': AgentHasRead,
        'AdminHasRead': AdminHasRead
    };

    getTypeName() => "ConversationHeader";
    TypeContext? context = _ctx;
}

class ConversationDetail implements IConvertible
{
    String? ConversationDetailId;
    String? ConversationHeaderId;
    String? Comment;
    DateTime? DateCreated;
    String? CreatedBy;
    String? CreatedByName;
    String? AttachmentId;
    bool? IsAdminComment;
    bool? IsDeletedComment;

    ConversationDetail({this.ConversationDetailId,this.ConversationHeaderId,this.Comment,this.DateCreated,this.CreatedBy,this.CreatedByName,this.AttachmentId,this.IsAdminComment,this.IsDeletedComment});
    ConversationDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ConversationDetailId = json['ConversationDetailId'];
        ConversationHeaderId = json['ConversationHeaderId'];
        Comment = json['Comment'];
        DateCreated = JsonConverters.fromJson(json['DateCreated'],'DateTime',context!);
        CreatedBy = json['CreatedBy'];
        CreatedByName = json['CreatedByName'];
        AttachmentId = json['AttachmentId'];
        IsAdminComment = json['IsAdminComment'];
        IsDeletedComment = json['IsDeletedComment'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ConversationDetailId': ConversationDetailId,
        'ConversationHeaderId': ConversationHeaderId,
        'Comment': Comment,
        'DateCreated': JsonConverters.toJson(DateCreated,'DateTime',context!),
        'CreatedBy': CreatedBy,
        'CreatedByName': CreatedByName,
        'AttachmentId': AttachmentId,
        'IsAdminComment': IsAdminComment,
        'IsDeletedComment': IsDeletedComment
    };

    getTypeName() => "ConversationDetail";
    TypeContext? context = _ctx;
}

class Conversation extends ConversationHeader implements IConvertible
{
    List<ConversationDetail>? Details = [];

    Conversation({this.Details});
    Conversation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Details = JsonConverters.fromJson(json['Details'],'List<ConversationDetail>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Details': JsonConverters.toJson(Details,'List<ConversationDetail>',context!)
    });

    getTypeName() => "Conversation";
    TypeContext? context = _ctx;
}

class ConversationResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    Conversation? Conversation;

    ConversationResponse({this.ResponseStatus,this.Conversation});
    ConversationResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        Conversation = JsonConverters.fromJson(json['Conversation'],'Conversation',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'Conversation': JsonConverters.toJson(Conversation,'Conversation',context!)
    };

    getTypeName() => "ConversationResponse";
    TypeContext? context = _ctx;
}

class ConversationRequest implements IConvertible
{
    String? TableName;
    String? FieldName;
    int? RecordId;
    bool? ReadFlag;

    ConversationRequest({this.TableName,this.FieldName,this.RecordId,this.ReadFlag});
    ConversationRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TableName = json['TableName'];
        FieldName = json['FieldName'];
        RecordId = json['RecordId'];
        ReadFlag = json['ReadFlag'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TableName': TableName,
        'FieldName': FieldName,
        'RecordId': RecordId,
        'ReadFlag': ReadFlag
    };

    getTypeName() => "ConversationRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'ConversationHeader': TypeInfo(TypeOf.Class, create:() => ConversationHeader()),
    'ConversationDetail': TypeInfo(TypeOf.Class, create:() => ConversationDetail()),
    'Conversation': TypeInfo(TypeOf.Class, create:() => Conversation()),
    'List<ConversationDetail>': TypeInfo(TypeOf.Class, create:() => <ConversationDetail>[]),
    'ConversationResponse': TypeInfo(TypeOf.Class, create:() => ConversationResponse()),
    'ConversationRequest': TypeInfo(TypeOf.Class, create:() => ConversationRequest()),
});

Dart ConversationRequest 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.

GET /v1/Conversation/{TableName}/{FieldName}/{RecordId} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ConversationResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <Conversation>
    <AdminHasRead>false</AdminHasRead>
    <AgentHasRead>false</AgentHasRead>
    <ConversationHeaderId>00000000-0000-0000-0000-000000000000</ConversationHeaderId>
    <FieldName>String</FieldName>
    <RecordId>0</RecordId>
    <TableName>String</TableName>
    <Details>
      <ConversationDetail>
        <AttachmentId>00000000-0000-0000-0000-000000000000</AttachmentId>
        <Comment>String</Comment>
        <ConversationDetailId>00000000-0000-0000-0000-000000000000</ConversationDetailId>
        <ConversationHeaderId>00000000-0000-0000-0000-000000000000</ConversationHeaderId>
        <CreatedBy>00000000-0000-0000-0000-000000000000</CreatedBy>
        <CreatedByName>String</CreatedByName>
        <DateCreated xmlns:d5p1="http://schemas.datacontract.org/2004/07/System">
          <d5p1:DateTime>0001-01-01T00:00:00Z</d5p1:DateTime>
          <d5p1:OffsetMinutes>0</d5p1:OffsetMinutes>
        </DateCreated>
        <IsAdminComment>false</IsAdminComment>
        <IsDeletedComment>false</IsDeletedComment>
      </ConversationDetail>
    </Details>
  </Conversation>
  <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>
</ConversationResponse>