import 'package:servicestack/servicestack.dart';
class ResponseBase implements IConvertible
{
bool? Status;
String? Message;
Map<String,List<String>?>? Errors;
ResponseBase({this.Status,this.Message,this.Errors});
ResponseBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Status = json['Status'];
Message = json['Message'];
Errors = JsonConverters.fromJson(json['Errors'],'Map<String,List<String>?>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Status': Status,
'Message': Message,
'Errors': JsonConverters.toJson(Errors,'Map<String,List<String>?>',context!)
};
getTypeName() => "ResponseBase";
TypeContext? context = _ctx;
}
class InitialisePaymentResponse extends ResponseBase implements IConvertible
{
String? TransactionId;
String? Signature;
String? Url;
InitialisePaymentResponse({this.TransactionId,this.Signature,this.Url});
InitialisePaymentResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
TransactionId = json['TransactionId'];
Signature = json['Signature'];
Url = json['Url'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'TransactionId': TransactionId,
'Signature': Signature,
'Url': Url
});
getTypeName() => "InitialisePaymentResponse";
TypeContext? context = _ctx;
}
enum PaymentTypeEnum
{
OneTime,
Recurring,
}
enum FrequencyEnum
{
Daily,
Weekly,
Monthly,
Quarterly,
Biannually,
Annually,
}
class InitialisePaymentRequest implements IConvertible
{
PaymentTypeEnum? PaymentType;
String? Uuid;
String? ReferenceNumber;
double? Amount;
String? Currency;
String? ItemName;
String? ItemDescription;
DateTime? BillingDate;
FrequencyEnum? Frequency;
int? Cycles;
InitialisePaymentRequest({this.PaymentType,this.Uuid,this.ReferenceNumber,this.Amount,this.Currency,this.ItemName,this.ItemDescription,this.BillingDate,this.Frequency,this.Cycles});
InitialisePaymentRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
PaymentType = JsonConverters.fromJson(json['PaymentType'],'PaymentTypeEnum',context!);
Uuid = json['Uuid'];
ReferenceNumber = json['ReferenceNumber'];
Amount = JsonConverters.toDouble(json['Amount']);
Currency = json['Currency'];
ItemName = json['ItemName'];
ItemDescription = json['ItemDescription'];
BillingDate = JsonConverters.fromJson(json['BillingDate'],'DateTime',context!);
Frequency = JsonConverters.fromJson(json['Frequency'],'FrequencyEnum',context!);
Cycles = json['Cycles'];
return this;
}
Map<String, dynamic> toJson() => {
'PaymentType': JsonConverters.toJson(PaymentType,'PaymentTypeEnum',context!),
'Uuid': Uuid,
'ReferenceNumber': ReferenceNumber,
'Amount': Amount,
'Currency': Currency,
'ItemName': ItemName,
'ItemDescription': ItemDescription,
'BillingDate': JsonConverters.toJson(BillingDate,'DateTime',context!),
'Frequency': JsonConverters.toJson(Frequency,'FrequencyEnum',context!),
'Cycles': Cycles
};
getTypeName() => "InitialisePaymentRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'duengageapi.uat.scadsoftware.com', types: <String, TypeInfo> {
'ResponseBase': TypeInfo(TypeOf.Class, create:() => ResponseBase()),
'Map<String,List<String>?>': TypeInfo(TypeOf.Class, create:() => Map<String,List<String>?>()),
'InitialisePaymentResponse': TypeInfo(TypeOf.Class, create:() => InitialisePaymentResponse()),
'PaymentTypeEnum': TypeInfo(TypeOf.Enum, enumValues:PaymentTypeEnum.values),
'FrequencyEnum': TypeInfo(TypeOf.Enum, enumValues:FrequencyEnum.values),
'InitialisePaymentRequest': TypeInfo(TypeOf.Class, create:() => InitialisePaymentRequest()),
});
Dart InitialisePaymentRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/InitialisePaymentRequest HTTP/1.1
Host: duengageapi.uat.scadsoftware.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
PaymentType: OneTime,
Uuid: 00000000000000000000000000000000,
ReferenceNumber: String,
Amount: 0,
Currency: String,
ItemName: String,
ItemDescription: String,
BillingDate: 0001-01-01,
Frequency: Daily,
Cycles: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
TransactionId: String,
Signature: String,
Url: String,
Status: False,
Message: String,
Errors:
{
String:
[
String
]
}
}