| POST | /users/favorite | Add an company as favorite to the logged in user | Add an company as favorite to the logged in user. |
|---|
"use strict";
/** @typedef {'Sample'|'RcoM5'|'AxemaVaka'|'VanderbiltOmnis'|'ParakeyParakey'|'AmidoDax'|'TelkeyTelkey'|'TechSolutionsSiedle'|'Accessy'|'Zesec'|'Enabla'} */
export var CodeLockSystemType;
(function (CodeLockSystemType) {
CodeLockSystemType["Sample"] = "Sample"
CodeLockSystemType["RcoM5"] = "RcoM5"
CodeLockSystemType["AxemaVaka"] = "AxemaVaka"
CodeLockSystemType["VanderbiltOmnis"] = "VanderbiltOmnis"
CodeLockSystemType["ParakeyParakey"] = "ParakeyParakey"
CodeLockSystemType["AmidoDax"] = "AmidoDax"
CodeLockSystemType["TelkeyTelkey"] = "TelkeyTelkey"
CodeLockSystemType["TechSolutionsSiedle"] = "TechSolutionsSiedle"
CodeLockSystemType["Accessy"] = "Accessy"
CodeLockSystemType["Zesec"] = "Zesec"
CodeLockSystemType["Enabla"] = "Enabla"
})(CodeLockSystemType || (CodeLockSystemType = {}));
export class CompanyBookingSettings {
/** @param {{EnableMobileApp?:boolean,BookingReceiptMessage?:string,ShowFreeTimesLeft?:boolean,EnableShowBookedTimes?:boolean,BookingAgreement?:string,WeekNumberSetting?:number,ShowBookedTimes?:boolean,PaymentProviderId?:number,BookOnlyOnExistingCustomers?:boolean,PaymentEnabled?:boolean,BookingPinCodeRestriction?:string,CustomerInvoiceAdressRequired?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {boolean} */
EnableMobileApp;
/** @type {string} */
BookingReceiptMessage;
/** @type {boolean} */
ShowFreeTimesLeft;
/** @type {boolean} */
EnableShowBookedTimes;
/** @type {string} */
BookingAgreement;
/**
* @type {number}
* @description The settings for how to display week number. 1 = ShowWeekNumberFromDate, 2 = ShowWeekNumberToDate, 3 = ShowWeekNumberFromToDate, 4 = DontShowWeekNumber */
WeekNumberSetting;
/** @type {boolean} */
ShowBookedTimes;
/**
* @type {number}
* @description The payment provider id. To get the full payment provider for the company call GET /payment/settings */
PaymentProviderId;
/**
* @type {boolean}
* @description If it's only allowed for existing customers to book */
BookOnlyOnExistingCustomers;
/**
* @type {boolean}
* @description If payment is enabled */
PaymentEnabled;
/** @type {string} */
BookingPinCodeRestriction;
/** @type {boolean} */
CustomerInvoiceAdressRequired;
}
export class CompanySystemSettings {
/** @param {{Active?:boolean,InactiveMessage?:string,Searchable?:boolean,GATrackingId?:string,GoogleAdsConversionId?:string,LinkedinTagId?:string,GoogleAdsConversionLabel?:string,GTMTrackingId?:string,FacebookPixelId?:string,MultiLanguage?:boolean,ShowOnMarketplace?:boolean,EnableAPITranslation?:boolean,DefaultLanguage?:string,SendCustomerInformationToExternalProviders?:boolean,SMSMessageDailySendLimit?:number,EmailMessageDailySendLimit?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {boolean}
* @description If the booking is active or not */
Active;
/**
* @type {string}
* @description If the booking is not active, what message to show to the customers */
InactiveMessage;
/**
* @type {boolean}
* @description If the company should be visible in search results on homepage */
Searchable;
/**
* @type {string}
* @description If you have a Google Analytics account and want to track your customers behaviors. */
GATrackingId;
/**
* @type {string}
* @description If you have a Google Ads Conversion Id account and want to track your customers behaviors. */
GoogleAdsConversionId;
/**
* @type {string}
* @description If you have a LinkedIn account and want to track your customers behaviors. */
LinkedinTagId;
/**
* @type {string}
* @description If you have a Google Ads Conversion Label and want to track your customers behaviors. */
GoogleAdsConversionLabel;
/**
* @type {string}
* @description If you have a Google Tag Manager account and want to track your customers behaviors. */
GTMTrackingId;
/**
* @type {string}
* @description If you have a Facebook account and want to track your customers behaviors. */
FacebookPixelId;
/**
* @type {boolean}
* @description If you want your customers to be able to change language on your homepage */
MultiLanguage;
/**
* @type {boolean}
* @description If the company should be visible on the marketplace */
ShowOnMarketplace;
/**
* @type {boolean}
* @description If you want your own written text on your homepage to be translated using Google Translate when a user changes language */
EnableAPITranslation;
/**
* @type {string}
* @description What is the standard language your homepage information is written in. Select from the different countries, i.e. SE,NO,EN */
DefaultLanguage;
/**
* @type {boolean}
* @description If you want to allow to send customer information in the tracking events to the external providers. Note you as a company are responsible for informing your customers and handling the data in terms of GDPR. */
SendCustomerInformationToExternalProviders;
/**
* @type {number}
* @description The maximum number of SMS messages that can be sent per day. */
SMSMessageDailySendLimit;
/**
* @type {number}
* @description The maximum number of email messages that can be sent per day. */
EmailMessageDailySendLimit;
}
export class CompanyWidgetSettings {
/** @param {{ServiceLayoutId?:number,TimeLayoutId?:number,BookingLayoutId?:number,PrimaryColor?:string,ShowServiceImage?:boolean,ShowRebateCodeField?:boolean,ShowNextAvailableTime?:boolean,ShowEndTime?:boolean,BookedTimeSlotText?:string,DarkTheme?:boolean,ShowSubscribeToNewsletter?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {number}
* @description The service layouts id. */
ServiceLayoutId;
/**
* @type {number}
* @description The time layouts id. */
TimeLayoutId;
/**
* @type {number}
* @description The booking layouts id. */
BookingLayoutId;
/**
* @type {string}
* @description The primary color of the booking widget. */
PrimaryColor;
/**
* @type {boolean}
* @description If you should show the service image in the booking widget. */
ShowServiceImage;
/**
* @type {boolean}
* @description If you should show the rebate code field in the booking widget. */
ShowRebateCodeField;
/**
* @type {boolean}
* @description If you should show the next available time in the booking widget. */
ShowNextAvailableTime;
/**
* @type {boolean}
* @description If you should show the end time in the booking widget. */
ShowEndTime;
/**
* @type {string}
* @description What text to show on booked time slots. Default text is Booked */
BookedTimeSlotText;
/**
* @type {boolean}
* @description If the widget should be displayed in dark theme */
DarkTheme;
/**
* @type {boolean}
* @description If you should show the subscribe to newsletter checkbox in the booking widget. */
ShowSubscribeToNewsletter;
}
export class HomepageSettingsResponse {
/** @param {{HomepageHeading?:string,WelcomePageHeading?:string,WelcomePageBody?:string,AboutUsPageHeading?:string,AboutUsPageBody?:string,ImageUrl?:string,CoverImage?:string,ShowRating?:boolean,HomePageTemplateId?:number,HeroSectionStyleId?:number,EnableHomepage?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description The text for homepage heading */
HomepageHeading;
/**
* @type {string}
* @description The text for homepage startpage heading */
WelcomePageHeading;
/**
* @type {string}
* @description The text for homepage startpage body */
WelcomePageBody;
/**
* @type {string}
* @description The text for homepage about us page heading */
AboutUsPageHeading;
/**
* @type {string}
* @description The text for homepage about us page body */
AboutUsPageBody;
/**
* @type {string}
* @description The startpage image url */
ImageUrl;
/**
* @type {string}
* @description The cover image url */
CoverImage;
/**
* @type {boolean}
* @description Show rating on the page */
ShowRating;
/**
* @type {number}
* @description The template for the homepage */
HomePageTemplateId;
/**
* @type {number}
* @description The hero section style for the homepage */
HeroSectionStyleId;
/**
* @type {boolean}
* @description Enable the BokaMera Homepage */
EnableHomepage;
}
export class CompanyRatingSummary {
/** @param {{AverageScore?:number,RatingScore1Count?:number,RatingScore2Count?:number,RatingScore3Count?:number,RaingScore4Count?:number,RatingScore5Count?:number,Count?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {number}
* @description The average rating score */
AverageScore;
/**
* @type {number}
* @description The number of ratings of score 1 */
RatingScore1Count;
/**
* @type {number}
* @description The number of ratings of score 2 */
RatingScore2Count;
/**
* @type {number}
* @description The number of ratings of score 3 */
RatingScore3Count;
/**
* @type {number}
* @description The number of ratings of score 4 */
RaingScore4Count;
/**
* @type {number}
* @description The number of ratings of score 5 */
RatingScore5Count;
/**
* @type {number}
* @description The number of ratings */
Count;
}
export class RatingReviewResponse {
/** @param {{Title?:string,Description?:string,RatingScore?:number,Author?:string,Created?:string,ReviewAnswer?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description The title for the review */
Title;
/**
* @type {string}
* @description The description for the review */
Description;
/**
* @type {number}
* @description The rating score */
RatingScore;
/**
* @type {string}
* @description The review author */
Author;
/**
* @type {string}
* @description The created date */
Created;
/**
* @type {string}
* @description The review answer from the company */
ReviewAnswer;
}
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 CompanyQueryResponse {
/** @param {{Id?:string,Name?:string,OrganisationNumber?:string,TypeId?:number,Details?:string,CategoryId?:number,Category?:string,LogoType?:string,CoverImage?:string,Street1?:string,Street2?:string,ZipCode?:string,City?:string,CountryId?:string,Longitude?:string,Latitude?:string,Distance?:number,Phone?:string,Email?:string,Homepage?:string,SitePath?:string,Active?:boolean,CodeLockSystem?:CodeLockSystemType,IsFreeAccount?:boolean,Updated?:string,Created?:string,StatusId?:number,IsFavorite?:boolean,BookingAgreements?:string,BookingSettings?:CompanyBookingSettings,SystemSettings?:CompanySystemSettings,WidgetSettings?:CompanyWidgetSettings,HomepageSettings?:HomepageSettingsResponse,RatingSummary?:CompanyRatingSummary,Reviews?:RatingReviewResponse[],CustomerCustomFields?:CustomFieldConfigData[],ResponseStatus?:ResponseStatus}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
Id;
/** @type {string} */
Name;
/**
* @type {string}
* @description The organisation number will only be visible if you are the owner of the company. */
OrganisationNumber;
/**
* @type {?number}
* @description What type of company. If it's used for personal use or as a company. */
TypeId;
/** @type {string} */
Details;
/** @type {number} */
CategoryId;
/** @type {string} */
Category;
/** @type {string} */
LogoType;
/** @type {string} */
CoverImage;
/** @type {string} */
Street1;
/** @type {string} */
Street2;
/** @type {string} */
ZipCode;
/** @type {string} */
City;
/** @type {string} */
CountryId;
/** @type {string} */
Longitude;
/** @type {string} */
Latitude;
/** @type {?number} */
Distance;
/** @type {string} */
Phone;
/** @type {string} */
Email;
/** @type {string} */
Homepage;
/** @type {string} */
SitePath;
/** @type {boolean} */
Active;
/** @type {?CodeLockSystemType} */
CodeLockSystem;
/** @type {boolean} */
IsFreeAccount;
/**
* @type {?string}
* @description Will show when the company was updated, note it will only be shown if your logged in as admin for the company. */
Updated;
/**
* @type {?string}
* @description Will show when the company was created, note it will only be shown if your logged in as admin for the company. */
Created;
/** @type {number} */
StatusId;
/**
* @type {boolean}
* @description If the company is marked as favourite for the logged in user */
IsFavorite;
/** @type {string} */
BookingAgreements;
/** @type {?CompanyBookingSettings} */
BookingSettings;
/** @type {?CompanySystemSettings} */
SystemSettings;
/** @type {?CompanyWidgetSettings} */
WidgetSettings;
/** @type {HomepageSettingsResponse} */
HomepageSettings;
/** @type {?CompanyRatingSummary} */
RatingSummary;
/** @type {RatingReviewResponse[]} */
Reviews = [];
/** @type {CustomFieldConfigData[]} */
CustomerCustomFields = [];
/** @type {ResponseStatus} */
ResponseStatus;
}
export class UserFavorites {
/** @param {{CompanyId?:string,Company?:CompanyQueryResponse}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
CompanyId;
/** @type {CompanyQueryResponse} */
Company;
}
export class AddFavorite {
/** @param {{CompanyId?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description Id of the company */
CompanyId;
}
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 /users/favorite HTTP/1.1
Host: api.bokamera.se
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<AddFavorite 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>
</AddFavorite>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<UserFavorites xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
<Company>
<Active>false</Active>
<BookingAgreements>String</BookingAgreements>
<BookingSettings>
<BookOnlyOnExistingCustomers>false</BookOnlyOnExistingCustomers>
<BookingAgreement>String</BookingAgreement>
<BookingPinCodeRestriction>String</BookingPinCodeRestriction>
<BookingReceiptMessage>String</BookingReceiptMessage>
<CustomerInvoiceAdressRequired>false</CustomerInvoiceAdressRequired>
<EnableMobileApp>false</EnableMobileApp>
<EnableShowBookedTimes>false</EnableShowBookedTimes>
<PaymentEnabled>false</PaymentEnabled>
<PaymentProviderId>0</PaymentProviderId>
<ShowBookedTimes>false</ShowBookedTimes>
<ShowFreeTimesLeft>false</ShowFreeTimesLeft>
<WeekNumberSetting>0</WeekNumberSetting>
</BookingSettings>
<Category>String</Category>
<CategoryId>0</CategoryId>
<City>String</City>
<CodeLockSystem>Sample</CodeLockSystem>
<CountryId>String</CountryId>
<CoverImage i:nil="true" />
<Created>0001-01-01T00:00:00</Created>
<CustomerCustomFields>
<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>
</CustomerCustomFields>
<Details>String</Details>
<Distance>0</Distance>
<Email>String</Email>
<Homepage>String</Homepage>
<HomepageSettings>
<AboutUsPageBody>String</AboutUsPageBody>
<AboutUsPageHeading>String</AboutUsPageHeading>
<CoverImage i:nil="true" />
<EnableHomepage>false</EnableHomepage>
<HeroSectionStyleId>0</HeroSectionStyleId>
<HomePageTemplateId>0</HomePageTemplateId>
<HomepageHeading>String</HomepageHeading>
<ImageUrl i:nil="true" />
<ShowRating>false</ShowRating>
<WelcomePageBody>String</WelcomePageBody>
<WelcomePageHeading>String</WelcomePageHeading>
</HomepageSettings>
<Id>00000000-0000-0000-0000-000000000000</Id>
<IsFavorite>false</IsFavorite>
<IsFreeAccount>false</IsFreeAccount>
<Latitude>String</Latitude>
<LogoType i:nil="true" />
<Longitude>String</Longitude>
<Name>String</Name>
<OrganisationNumber>String</OrganisationNumber>
<Phone>String</Phone>
<RatingSummary>
<AverageScore>0</AverageScore>
<Count>0</Count>
<RaingScore4Count>0</RaingScore4Count>
<RatingScore1Count>0</RatingScore1Count>
<RatingScore2Count>0</RatingScore2Count>
<RatingScore3Count>0</RatingScore3Count>
<RatingScore5Count>0</RatingScore5Count>
</RatingSummary>
<ResponseStatus xmlns:d3p1="http://schemas.servicestack.net/types">
<d3p1:ErrorCode>String</d3p1:ErrorCode>
<d3p1:Message>String</d3p1:Message>
<d3p1:StackTrace>String</d3p1:StackTrace>
<d3p1:Errors>
<d3p1:ResponseError>
<d3p1:ErrorCode>String</d3p1:ErrorCode>
<d3p1:FieldName>String</d3p1:FieldName>
<d3p1:Message>String</d3p1:Message>
<d3p1:Meta xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d6p1:KeyValueOfstringstring>
<d6p1:Key>String</d6p1:Key>
<d6p1:Value>String</d6p1:Value>
</d6p1:KeyValueOfstringstring>
</d3p1:Meta>
</d3p1:ResponseError>
</d3p1:Errors>
<d3p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfstringstring>
<d4p1:Key>String</d4p1:Key>
<d4p1:Value>String</d4p1:Value>
</d4p1:KeyValueOfstringstring>
</d3p1:Meta>
</ResponseStatus>
<Reviews>
<RatingReviewResponse>
<Author>String</Author>
<Created>0001-01-01T00:00:00</Created>
<Description>String</Description>
<RatingScore>0</RatingScore>
<ReviewAnswer>String</ReviewAnswer>
<Title>String</Title>
</RatingReviewResponse>
</Reviews>
<SitePath>String</SitePath>
<StatusId>0</StatusId>
<Street1>String</Street1>
<Street2>String</Street2>
<SystemSettings>
<Active>false</Active>
<DefaultLanguage>String</DefaultLanguage>
<EmailMessageDailySendLimit>0</EmailMessageDailySendLimit>
<EnableAPITranslation>false</EnableAPITranslation>
<FacebookPixelId>String</FacebookPixelId>
<GATrackingId>String</GATrackingId>
<GTMTrackingId>String</GTMTrackingId>
<GoogleAdsConversionId>String</GoogleAdsConversionId>
<GoogleAdsConversionLabel>String</GoogleAdsConversionLabel>
<InactiveMessage>String</InactiveMessage>
<LinkedinTagId>String</LinkedinTagId>
<MultiLanguage>false</MultiLanguage>
<SMSMessageDailySendLimit>0</SMSMessageDailySendLimit>
<Searchable>false</Searchable>
<SendCustomerInformationToExternalProviders>false</SendCustomerInformationToExternalProviders>
<ShowOnMarketplace>false</ShowOnMarketplace>
</SystemSettings>
<TypeId>0</TypeId>
<Updated>0001-01-01T00:00:00</Updated>
<WidgetSettings>
<BookedTimeSlotText>String</BookedTimeSlotText>
<BookingLayoutId>0</BookingLayoutId>
<DarkTheme>false</DarkTheme>
<PrimaryColor>String</PrimaryColor>
<ServiceLayoutId>0</ServiceLayoutId>
<ShowEndTime>false</ShowEndTime>
<ShowNextAvailableTime>false</ShowNextAvailableTime>
<ShowRebateCodeField>false</ShowRebateCodeField>
<ShowServiceImage>false</ShowServiceImage>
<ShowSubscribeToNewsletter>false</ShowSubscribeToNewsletter>
<TimeLayoutId>0</TimeLayoutId>
</WidgetSettings>
<ZipCode>String</ZipCode>
</Company>
<CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
</UserFavorites>