Richemont.Booster2.PublicApi

<back to all web services

GetCustomer

Requires Authentication
The following routes are available for this service:
GET/customer/{boosterCustomerId}Get customer detailsGet 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()),
});

Dart GetCustomer DTOs

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

HTTP + CSV

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: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"id":0,"sapId":"String","customerReference":"String","gender":"String","personalTitle":"String","firstName":"String","lastName":"String","firstNameNotLatin":"String","lastNameNotLatin":"String","middleName":"String","canBeContacted":false,"language":"String","countryId":"String","brand":"String","emails":[{"description":"String","email":"String","isMain":false}],"phones":[{"description":"String","phone":"String","isMain":false,"prefixCountryId":"String","telephonePrefix":"String"}],"events":[{"eventId":0,"eventDescription":"String","eventTypeOther":"String","comment":"String","eventDay":0,"eventMonth":0,"eventYear":0}],"registrationDate":"\/Date(-62135596800000-0000)\/"}