Trendsic Platform Service

<back to all web services

ChatRequest

Requires Authentication
Requires any of the roles:Agent, Administrator, Agent, Administrator, Agent, Administrator
The following routes are available for this service:
PUT,OPTIONS/v1/Chat/{ChatId}
GET,POST,OPTIONS/v1/Chat
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class ChatMember implements IConvertible
{
    String? ChatMemberId;
    String? ChatId;
    String? UserId;
    bool? IsActive;
    bool? IsArchived;
    String? LastChatMessageId;
    String? ChatMemberName;

    ChatMember({this.ChatMemberId,this.ChatId,this.UserId,this.IsActive,this.IsArchived,this.LastChatMessageId,this.ChatMemberName});
    ChatMember.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ChatMemberId = json['ChatMemberId'];
        ChatId = json['ChatId'];
        UserId = json['UserId'];
        IsActive = json['IsActive'];
        IsArchived = json['IsArchived'];
        LastChatMessageId = json['LastChatMessageId'];
        ChatMemberName = json['ChatMemberName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ChatMemberId': ChatMemberId,
        'ChatId': ChatId,
        'UserId': UserId,
        'IsActive': IsActive,
        'IsArchived': IsArchived,
        'LastChatMessageId': LastChatMessageId,
        'ChatMemberName': ChatMemberName
    };

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

class Chat implements IConvertible
{
    String? ChatId;
    String? ChatName;
    String? CreatedBy;
    DateTime? DateCreated;
    List<ChatMember>? ChatMembers = [];
    bool? IsArchived;
    int? MemberCount;
    int? MessageCount;
    int? UnreadCount;
    String? CreatedByName;

    Chat({this.ChatId,this.ChatName,this.CreatedBy,this.DateCreated,this.ChatMembers,this.IsArchived,this.MemberCount,this.MessageCount,this.UnreadCount,this.CreatedByName});
    Chat.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ChatId = json['ChatId'];
        ChatName = json['ChatName'];
        CreatedBy = json['CreatedBy'];
        DateCreated = JsonConverters.fromJson(json['DateCreated'],'DateTime',context!);
        ChatMembers = JsonConverters.fromJson(json['ChatMembers'],'List<ChatMember>',context!);
        IsArchived = json['IsArchived'];
        MemberCount = json['MemberCount'];
        MessageCount = json['MessageCount'];
        UnreadCount = json['UnreadCount'];
        CreatedByName = json['CreatedByName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ChatId': ChatId,
        'ChatName': ChatName,
        'CreatedBy': CreatedBy,
        'DateCreated': JsonConverters.toJson(DateCreated,'DateTime',context!),
        'ChatMembers': JsonConverters.toJson(ChatMembers,'List<ChatMember>',context!),
        'IsArchived': IsArchived,
        'MemberCount': MemberCount,
        'MessageCount': MessageCount,
        'UnreadCount': UnreadCount,
        'CreatedByName': CreatedByName
    };

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

class ChatResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    List<Chat>? Chat = [];

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

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

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

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

class ChatRequest implements IConvertible
{
    String? ChatId;
    Chat? Chat;

    ChatRequest({this.ChatId,this.Chat});
    ChatRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'ChatMember': TypeInfo(TypeOf.Class, create:() => ChatMember()),
    'Chat': TypeInfo(TypeOf.Class, create:() => Chat()),
    'List<ChatMember>': TypeInfo(TypeOf.Class, create:() => <ChatMember>[]),
    'ChatResponse': TypeInfo(TypeOf.Class, create:() => ChatResponse()),
    'List<Chat>': TypeInfo(TypeOf.Class, create:() => <Chat>[]),
    'ChatRequest': TypeInfo(TypeOf.Class, create:() => ChatRequest()),
});

Dart ChatRequest DTOs

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

HTTP + OTHER

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

POST /v1/Chat HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"ChatId":"00000000000000000000000000000000","Chat":{"ChatId":"00000000000000000000000000000000","ChatName":"String","CreatedBy":"00000000000000000000000000000000","DateCreated":"0001-01-01T00:00:00.0000000","ChatMembers":[{"ChatMemberId":"00000000000000000000000000000000","ChatId":"00000000000000000000000000000000","UserId":"00000000000000000000000000000000","IsActive":false,"IsArchived":false,"LastChatMessageId":"00000000000000000000000000000000","ChatMemberName":"String"}],"IsArchived":false,"MemberCount":0,"MessageCount":0,"UnreadCount":0,"CreatedByName":"String"}}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Chat":[{"ChatId":"00000000000000000000000000000000","ChatName":"String","CreatedBy":"00000000000000000000000000000000","DateCreated":"0001-01-01T00:00:00.0000000","ChatMembers":[{"ChatMemberId":"00000000000000000000000000000000","ChatId":"00000000000000000000000000000000","UserId":"00000000000000000000000000000000","IsActive":false,"IsArchived":false,"LastChatMessageId":"00000000000000000000000000000000","ChatMemberName":"String"}],"IsArchived":false,"MemberCount":0,"MessageCount":0,"UnreadCount":0,"CreatedByName":"String"}]}