| GET | /customer/{boosterCustomerId} | Get customer details | Get Customer info based on the Booster Customer ID |
|---|
import 'package:servicestack/servicestack.dart';
class CustomerEmail implements IConvertible
{
/**
* Description
*/
// @ApiMember(Description="Description", IsRequired=true)
String? description;
/**
* Email Address
*/
// @ApiMember(Description="Email Address", IsRequired=true)
String? email;
/**
* Is main email address
*/
// @ApiMember(Description="Is main email address", IsRequired=true)
bool? isMain;
CustomerEmail({this.description,this.email,this.isMain});
CustomerEmail.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
description = json['description'];
email = json['email'];
isMain = json['isMain'];
return this;
}
Map<String, dynamic> toJson() => {
'description': description,
'email': email,
'isMain': isMain
};
getTypeName() => "CustomerEmail";
TypeContext? context = _ctx;
}
class CustomerPhone implements IConvertible
{
/**
* Description
*/
// @ApiMember(Description="Description", IsRequired=true)
String? description;
/**
* Phone Number
*/
// @ApiMember(Description="Phone Number", IsRequired=true)
String? phone;
/**
* Is main phone number
*/
// @ApiMember(Description="Is main phone number ", IsRequired=true)
bool? isMain;
/**
* Phone number country prefix
*/
// @ApiMember(Description="Phone number country prefix", IsRequired=true)
String? prefixCountryId;
/**
* Telephone prefix
*/
// @ApiMember(Description="Telephone prefix", IsRequired=true)
String? telephonePrefix;
CustomerPhone({this.description,this.phone,this.isMain,this.prefixCountryId,this.telephonePrefix});
CustomerPhone.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
description = json['description'];
phone = json['phone'];
isMain = json['isMain'];
prefixCountryId = json['prefixCountryId'];
telephonePrefix = json['telephonePrefix'];
return this;
}
Map<String, dynamic> toJson() => {
'description': description,
'phone': phone,
'isMain': isMain,
'prefixCountryId': prefixCountryId,
'telephonePrefix': telephonePrefix
};
getTypeName() => "CustomerPhone";
TypeContext? context = _ctx;
}
class CustomerEvent implements IConvertible
{
/**
* Event Id
*/
// @ApiMember(Description="Event Id", IsRequired=true)
int? eventId;
/**
* Event Description
*/
// @ApiMember(Description="Event Description ", IsRequired=true)
String? eventDescription;
/**
* Event Other
*/
// @ApiMember(Description="Event Other", IsRequired=true)
String? eventTypeOther;
/**
* Comment
*/
// @ApiMember(Description="Comment", IsRequired=true)
String? comment;
/**
* Event Day
*/
// @ApiMember(Description="Event Day", IsRequired=true)
int? eventDay;
/**
* Event Month
*/
// @ApiMember(Description="Event Month", IsRequired=true)
int? eventMonth;
/**
* Event Year
*/
// @ApiMember(Description="Event Year", IsRequired=true)
int? eventYear;
CustomerEvent({this.eventId,this.eventDescription,this.eventTypeOther,this.comment,this.eventDay,this.eventMonth,this.eventYear});
CustomerEvent.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
eventId = json['eventId'];
eventDescription = json['eventDescription'];
eventTypeOther = json['eventTypeOther'];
comment = json['comment'];
eventDay = json['eventDay'];
eventMonth = json['eventMonth'];
eventYear = json['eventYear'];
return this;
}
Map<String, dynamic> toJson() => {
'eventId': eventId,
'eventDescription': eventDescription,
'eventTypeOther': eventTypeOther,
'comment': comment,
'eventDay': eventDay,
'eventMonth': eventMonth,
'eventYear': eventYear
};
getTypeName() => "CustomerEvent";
TypeContext? context = _ctx;
}
class GetCustomerResponse implements IConvertible
{
/**
* Booster Customer ID
*/
// @ApiMember(Description="Booster Customer ID", IsRequired=true)
int? id;
/**
* SAP Customer ID
*/
// @ApiMember(Description="SAP Customer ID", IsRequired=true)
String? sapId;
/**
* Customer Reference
*/
// @ApiMember(Description="Customer Reference", IsRequired=true)
String? customerReference;
/**
* Gender
*/
// @ApiMember(Description="Gender", IsRequired=true)
String? gender;
/**
* Personal Title
*/
// @ApiMember(Description="Personal Title", IsRequired=true)
String? personalTitle;
/**
* First Name
*/
// @ApiMember(Description="First Name", IsRequired=true)
String? firstName;
/**
* Customer Last Name
*/
// @ApiMember(Description="Customer Last Name", IsRequired=true)
String? lastName;
/**
* First Name Not Latin
*/
// @ApiMember(Description="First Name Not Latin", IsRequired=true)
String? firstNameNotLatin;
/**
* Customer Last Name Not Latin
*/
// @ApiMember(Description="Customer Last Name Not Latin", IsRequired=true)
String? lastNameNotLatin;
/**
* Middle Name
*/
// @ApiMember(Description="Middle Name", IsRequired=true)
String? middleName;
/**
* Can be contacted or not?
*/
// @ApiMember(Description="Can be contacted or not?", IsRequired=true)
bool? canBeContacted;
/**
* Language
*/
// @ApiMember(Description="Language", IsRequired=true)
String? language;
/**
* Country
*/
// @ApiMember(Description="Country", IsRequired=true)
String? countryId;
/**
* Brand Trigram
*/
// @ApiMember(Description="Brand Trigram", IsRequired=true)
String? brand;
/**
* List of Emails
*/
// @ApiMember(Description="List of Emails", IsRequired=true)
List<CustomerEmail>? emails;
/**
* List of Phone Numbers
*/
// @ApiMember(Description="List of Phone Numbers", IsRequired=true)
List<CustomerPhone>? phones;
/**
* List of Events
*/
// @ApiMember(Description="List of Events", IsRequired=true)
List<CustomerEvent>? events;
/**
* Registration date
*/
// @ApiMember(Description="Registration date")
DateTime? registrationDate;
GetCustomerResponse({this.id,this.sapId,this.customerReference,this.gender,this.personalTitle,this.firstName,this.lastName,this.firstNameNotLatin,this.lastNameNotLatin,this.middleName,this.canBeContacted,this.language,this.countryId,this.brand,this.emails,this.phones,this.events,this.registrationDate});
GetCustomerResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
sapId = json['sapId'];
customerReference = json['customerReference'];
gender = json['gender'];
personalTitle = json['personalTitle'];
firstName = json['firstName'];
lastName = json['lastName'];
firstNameNotLatin = json['firstNameNotLatin'];
lastNameNotLatin = json['lastNameNotLatin'];
middleName = json['middleName'];
canBeContacted = json['canBeContacted'];
language = json['language'];
countryId = json['countryId'];
brand = json['brand'];
emails = JsonConverters.fromJson(json['emails'],'List<CustomerEmail>',context!);
phones = JsonConverters.fromJson(json['phones'],'List<CustomerPhone>',context!);
events = JsonConverters.fromJson(json['events'],'List<CustomerEvent>',context!);
registrationDate = JsonConverters.fromJson(json['registrationDate'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'sapId': sapId,
'customerReference': customerReference,
'gender': gender,
'personalTitle': personalTitle,
'firstName': firstName,
'lastName': lastName,
'firstNameNotLatin': firstNameNotLatin,
'lastNameNotLatin': lastNameNotLatin,
'middleName': middleName,
'canBeContacted': canBeContacted,
'language': language,
'countryId': countryId,
'brand': brand,
'emails': JsonConverters.toJson(emails,'List<CustomerEmail>',context!),
'phones': JsonConverters.toJson(phones,'List<CustomerPhone>',context!),
'events': JsonConverters.toJson(events,'List<CustomerEvent>',context!),
'registrationDate': JsonConverters.toJson(registrationDate,'DateTime',context!)
};
getTypeName() => "GetCustomerResponse";
TypeContext? context = _ctx;
}
class GetCustomer implements IConvertible
{
/**
* Booster Customer ID
*/
// @ApiMember(Description="Booster Customer ID", IsRequired=true)
int? boosterCustomerId;
GetCustomer({this.boosterCustomerId});
GetCustomer.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
boosterCustomerId = json['boosterCustomerId'];
return this;
}
Map<String, dynamic> toJson() => {
'boosterCustomerId': boosterCustomerId
};
getTypeName() => "GetCustomer";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: <String, TypeInfo> {
'CustomerEmail': TypeInfo(TypeOf.Class, create:() => CustomerEmail()),
'CustomerPhone': TypeInfo(TypeOf.Class, create:() => CustomerPhone()),
'CustomerEvent': TypeInfo(TypeOf.Class, create:() => CustomerEvent()),
'GetCustomerResponse': TypeInfo(TypeOf.Class, create:() => GetCustomerResponse()),
'List<CustomerEmail>': TypeInfo(TypeOf.Class, create:() => <CustomerEmail>[]),
'List<CustomerPhone>': TypeInfo(TypeOf.Class, create:() => <CustomerPhone>[]),
'List<CustomerEvent>': TypeInfo(TypeOf.Class, create:() => <CustomerEvent>[]),
'GetCustomer': TypeInfo(TypeOf.Class, create:() => GetCustomer()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /customer/{boosterCustomerId} HTTP/1.1
Host: dev-api-booster.richemont.com
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<GetCustomerResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Richemont.Booster2.PublicApi.CRM.ServiceModel">
<brand>String</brand>
<canBeContacted>false</canBeContacted>
<countryId>String</countryId>
<customerReference>String</customerReference>
<emails>
<CustomerEmail>
<description>String</description>
<email>String</email>
<isMain>false</isMain>
</CustomerEmail>
</emails>
<events>
<CustomerEvent>
<comment>String</comment>
<eventDay>0</eventDay>
<eventDescription>String</eventDescription>
<eventId>0</eventId>
<eventMonth>0</eventMonth>
<eventTypeOther>String</eventTypeOther>
<eventYear>0</eventYear>
</CustomerEvent>
</events>
<firstName>String</firstName>
<firstNameNotLatin>String</firstNameNotLatin>
<gender>String</gender>
<id>0</id>
<language>String</language>
<lastName>String</lastName>
<lastNameNotLatin>String</lastNameNotLatin>
<middleName>String</middleName>
<personalTitle>String</personalTitle>
<phones>
<CustomerPhone>
<description>String</description>
<isMain>false</isMain>
<phone>String</phone>
<prefixCountryId>String</prefixCountryId>
<telephonePrefix>String</telephonePrefix>
</CustomerPhone>
</phones>
<registrationDate>0001-01-01T00:00:00</registrationDate>
<sapId>String</sapId>
</GetCustomerResponse>