| Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
| POST | /customers/{CustomerId}/tags | Add tags to a customer | Attaches one or more tags to an existing customer. |
|---|
"use strict";
export class CustomFieldValueResponse {
/** @param {{Value?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
Value;
}
export class CustomFieldConfigData {
/** @param {{Id?:number,Name?:string,Description?:string,Width?:number,DataType?:string,DefaultValue?:string,IsMandatory?:boolean,MandatoryErrorMessage?:string,MaxLength?:number,MultipleLineText?:boolean,RegEx?:string,RegExErrorMessage?:string,Values?:CustomFieldValueResponse[]}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {number}
* @description Custom field id */
Id;
/**
* @type {string}
* @description Configuration name. Example: 'Number of persons'. */
Name;
/**
* @type {string}
* @description Custom field description. Example: 'For how many persons is this booking?' */
Description;
/**
* @type {?number}
* @description Field width. Example: 20 for 20px */
Width;
/**
* @type {string}
* @description Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */
DataType;
/**
* @type {string}
* @description Default value of the field. Example: '3' */
DefaultValue;
/**
* @type {boolean}
* @description Determines if the field is required to have a value or not */
IsMandatory;
/**
* @type {string}
* @description Error message shown to the user if the field data is required but not entered */
MandatoryErrorMessage;
/**
* @type {number}
* @description Max lenght of the field */
MaxLength;
/**
* @type {boolean}
* @description If the field should have multiple lines */
MultipleLineText;
/**
* @type {string}
* @description Regular expression used for validation of the field */
RegEx;
/**
* @type {string}
* @description Error message shown if the regular expression validation failed */
RegExErrorMessage;
/**
* @type {CustomFieldValueResponse[]}
* @description The values to select from if Datatype is DropDown for this custom field */
Values = [];
}
export class CustomFieldDataResponse {
/** @param {{Id?:number,Column?:string,Name?:string,Description?:string,Value?:string,DataType?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/** @type {string} */
Column;
/** @type {string} */
Name;
/** @type {string} */
Description;
/** @type {string} */
Value;
/**
* @type {string}
* @description Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */
DataType;
}
export class CustomerCommentsResponse {
/** @param {{Id?:number,CustomerId?:string,Comments?:string,Updated?:string,Created?:string,ImageUrl?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/** @type {string} */
CustomerId;
/** @type {string} */
Comments;
/** @type {string} */
Updated;
/** @type {string} */
Created;
/** @type {string} */
ImageUrl;
}
export class BaseModel {
constructor(init) { Object.assign(this, init) }
}
export class UserAccessKeys extends BaseModel {
/** @param {{CompanyId?:string,AccessKeyTypeId?:number,Value?:string,CustomerId?:string,Description?:string,Id?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {string} */
CompanyId;
/** @type {number} */
AccessKeyTypeId;
/** @type {string} */
Value;
/** @type {string} */
CustomerId;
/** @type {?string} */
Description;
/** @type {string} */
Id;
}
export class InvoiceAddressResponse {
/** @param {{InvoiceAddressId?:string,UserId?:string,CorporateIdentityNumber?:string,InvoiceAddress1?:string,InvoiceAddress2?:string,InvoiceCity?:string,InvoicePostalCode?:string,InvoiceCountryCode?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
InvoiceAddressId;
/** @type {?string} */
UserId;
/** @type {string} */
CorporateIdentityNumber;
/** @type {string} */
InvoiceAddress1;
/** @type {string} */
InvoiceAddress2;
/** @type {string} */
InvoiceCity;
/** @type {string} */
InvoicePostalCode;
/** @type {string} */
InvoiceCountryCode;
}
export class TagResponse {
/** @param {{Id?:number,CompanyId?:string,Name?:string,Scope?:number,Color?:string,SortOrder?:number,Active?:boolean,CreatedDate?:string,ResponseStatus?:ResponseStatus}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/** @type {string} */
CompanyId;
/** @type {string} */
Name;
/** @type {number} */
Scope;
/** @type {string} */
Color;
/** @type {number} */
SortOrder;
/** @type {boolean} */
Active;
/** @type {string} */
CreatedDate;
/** @type {ResponseStatus} */
ResponseStatus;
}
export class CustomerQueryResponse {
/** @param {{Id?:string,Firstname?:string,Lastname?:string,Email?:string,Phone?:string,ImageUrl?:string,PersonalIdentityNumber?:string,CustomFields?:CustomFieldConfigData[],CustomFieldValues?:CustomFieldDataResponse[],Comments?:CustomerCommentsResponse[],AccessKeys?:UserAccessKeys[],Updated?:string,Created?:string,ResponseStatus?:Object,SubscribedToNewsletter?:boolean,InvoiceAddress?:InvoiceAddressResponse,Tags?:TagResponse[]}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
Id;
/** @type {string} */
Firstname;
/** @type {string} */
Lastname;
/** @type {string} */
Email;
/** @type {string} */
Phone;
/** @type {string} */
ImageUrl;
/** @type {string} */
PersonalIdentityNumber;
/** @type {CustomFieldConfigData[]} */
CustomFields = [];
/** @type {CustomFieldDataResponse[]} */
CustomFieldValues = [];
/** @type {CustomerCommentsResponse[]} */
Comments = [];
/** @type {UserAccessKeys[]} */
AccessKeys = [];
/** @type {string} */
Updated;
/** @type {string} */
Created;
/** @type {Object} */
ResponseStatus;
/** @type {boolean} */
SubscribedToNewsletter;
/** @type {InvoiceAddressResponse} */
InvoiceAddress;
/** @type {TagResponse[]} */
Tags = [];
}
export class AddTagsToCustomer {
/** @param {{CompanyId?:string,CustomerId?:string,TagIds?:number[]}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {?string}
* @description The company id, if empty will use the company id for the user you are logged in with. */
CompanyId;
/**
* @type {string}
* @description The customer id. */
CustomerId;
/**
* @type {number[]}
* @description The ids of the tags to attach. */
TagIds = [];
}
JavaScript AddTagsToCustomer DTOs
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.
POST /customers/{CustomerId}/tags HTTP/1.1
Host: api.bookmore.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<AddTagsToCustomer xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
<CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
<CustomerId>00000000-0000-0000-0000-000000000000</CustomerId>
<TagIds xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:int>0</d2p1:int>
</TagIds>
</AddTagsToCustomer>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<CustomerQueryResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
<AccessKeys xmlns:d2p1="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Db">
<d2p1:UserAccessKeys>
<d2p1:AccessKeyTypeId>0</d2p1:AccessKeyTypeId>
<d2p1:CompanyId>00000000-0000-0000-0000-000000000000</d2p1:CompanyId>
<d2p1:CustomerId>00000000-0000-0000-0000-000000000000</d2p1:CustomerId>
<d2p1:Description>String</d2p1:Description>
<d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id>
<d2p1:Value>String</d2p1:Value>
</d2p1:UserAccessKeys>
</AccessKeys>
<Comments>
<CustomerCommentsResponse>
<Comments>String</Comments>
<Created>0001-01-01T00:00:00</Created>
<CustomerId>00000000-0000-0000-0000-000000000000</CustomerId>
<Id>0</Id>
<ImageUrl i:nil="true" />
<Updated>0001-01-01T00:00:00</Updated>
</CustomerCommentsResponse>
</Comments>
<Created>0001-01-01T00:00:00</Created>
<CustomFieldValues>
<CustomFieldDataResponse>
<Column>String</Column>
<DataType>String</DataType>
<Description>String</Description>
<Id>0</Id>
<Name>String</Name>
<Value>String</Value>
</CustomFieldDataResponse>
</CustomFieldValues>
<CustomFields>
<CustomFieldConfigData>
<DataType>String</DataType>
<DefaultValue>String</DefaultValue>
<Description>String</Description>
<Id>0</Id>
<IsMandatory>false</IsMandatory>
<MandatoryErrorMessage>String</MandatoryErrorMessage>
<MaxLength>0</MaxLength>
<MultipleLineText>false</MultipleLineText>
<Name>String</Name>
<RegEx>String</RegEx>
<RegExErrorMessage>String</RegExErrorMessage>
<Values>
<CustomFieldValueResponse>
<Value>String</Value>
</CustomFieldValueResponse>
</Values>
<Width>0</Width>
</CustomFieldConfigData>
</CustomFields>
<Email>String</Email>
<Firstname>String</Firstname>
<Id>00000000-0000-0000-0000-000000000000</Id>
<ImageUrl>String</ImageUrl>
<InvoiceAddress>
<CorporateIdentityNumber>String</CorporateIdentityNumber>
<InvoiceAddress1>String</InvoiceAddress1>
<InvoiceAddress2>String</InvoiceAddress2>
<InvoiceAddressId>00000000-0000-0000-0000-000000000000</InvoiceAddressId>
<InvoiceCity>String</InvoiceCity>
<InvoiceCountryCode>String</InvoiceCountryCode>
<InvoicePostalCode>String</InvoicePostalCode>
<UserId>00000000-0000-0000-0000-000000000000</UserId>
</InvoiceAddress>
<Lastname>String</Lastname>
<PersonalIdentityNumber>String</PersonalIdentityNumber>
<Phone>String</Phone>
<ResponseStatus />
<SubscribedToNewsletter>false</SubscribedToNewsletter>
<Tags>
<TagResponse>
<Active>false</Active>
<Color>String</Color>
<CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
<CreatedDate>0001-01-01T00:00:00</CreatedDate>
<Id>0</Id>
<Name>String</Name>
<ResponseStatus xmlns:d4p1="http://schemas.servicestack.net/types">
<d4p1:ErrorCode>String</d4p1:ErrorCode>
<d4p1:Message>String</d4p1:Message>
<d4p1:StackTrace>String</d4p1:StackTrace>
<d4p1:Errors>
<d4p1:ResponseError>
<d4p1:ErrorCode>String</d4p1:ErrorCode>
<d4p1:FieldName>String</d4p1:FieldName>
<d4p1:Message>String</d4p1:Message>
<d4p1:Meta xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d7p1:KeyValueOfstringstring>
<d7p1:Key>String</d7p1:Key>
<d7p1:Value>String</d7p1:Value>
</d7p1:KeyValueOfstringstring>
</d4p1:Meta>
</d4p1:ResponseError>
</d4p1:Errors>
<d4p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</d4p1:Meta>
</ResponseStatus>
<Scope>0</Scope>
<SortOrder>0</SortOrder>
</TagResponse>
</Tags>
<Updated>0001-01-01T00:00:00</Updated>
</CustomerQueryResponse>