Field Squared API Services

<back to all web services

IntegrationDataTableDDL

Generates the database DDL for a given integration data table. Database types supported: SQLServer

The following routes are available for this service:
POST/{Workspace}/IntegrationDataTableDDL
import 'package:servicestack/servicestack.dart';

class MetadataItem implements IConvertible
{
    String? Name;
    String? Datatype;
    String? Length;
    String? Label;

    MetadataItem({this.Name,this.Datatype,this.Length,this.Label});
    MetadataItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Name = json['Name'];
        Datatype = json['Datatype'];
        Length = json['Length'];
        Label = json['Label'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Datatype': Datatype,
        'Length': Length,
        'Label': Label
    };

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

class IntegrationDataTable implements IConvertible
{
    String? Name;
    List<MetadataItem>? Columns;
    List<List<String>>? Rows;

    IntegrationDataTable({this.Name,this.Columns,this.Rows});
    IntegrationDataTable.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Columns': JsonConverters.toJson(Columns,'List<MetadataItem>',context!),
        'Rows': JsonConverters.toJson(Rows,'List<List<String>>',context!)
    };

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

/**
* Generates the database DDL for a given integration data table.  Database types supported: SQLServer
*/
class IntegrationDataTableDDL implements IConvertible
{
    String? Workspace;
    String? DatabaseType;
    IntegrationDataTable? DataTable;
    String? DDL;

    IntegrationDataTableDDL({this.Workspace,this.DatabaseType,this.DataTable,this.DDL});
    IntegrationDataTableDDL.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Workspace = json['Workspace'];
        DatabaseType = json['DatabaseType'];
        DataTable = JsonConverters.fromJson(json['DataTable'],'IntegrationDataTable',context!);
        DDL = json['DDL'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Workspace': Workspace,
        'DatabaseType': DatabaseType,
        'DataTable': JsonConverters.toJson(DataTable,'IntegrationDataTable',context!),
        'DDL': DDL
    };

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

TypeContext _ctx = TypeContext(library: 'dev.fieldsquared.com', types: <String, TypeInfo> {
    'MetadataItem': TypeInfo(TypeOf.Class, create:() => MetadataItem()),
    'IntegrationDataTable': TypeInfo(TypeOf.Class, create:() => IntegrationDataTable()),
    'List<MetadataItem>': TypeInfo(TypeOf.Class, create:() => <MetadataItem>[]),
    'List<List<String>>': TypeInfo(TypeOf.Class, create:() => <List<String>>[]),
    'IntegrationDataTableDDL': TypeInfo(TypeOf.Class, create:() => IntegrationDataTableDDL()),
});

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

POST /{Workspace}/IntegrationDataTableDDL HTTP/1.1 
Host: dev.fieldsquared.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Workspace: String,
	DatabaseType: String,
	DataTable: 
	{
		Name: String,
		Columns: 
		[
			{
				Name: String,
				Datatype: String,
				Length: String
			}
		],
		Rows: 
		[
			[
				String
			]
		]
	},
	DDL: String
}