BokaMera.API.Host

<back to all web services

CreateIncentiveAction

Requires Authentication
Requires the role:superadmin
The following routes are available for this service:
POST/superadmin/incentives/actionAdd a new incentive action
"use strict";
/** @typedef {number} */
export var IncentiveActionType;
(function (IncentiveActionType) {
    IncentiveActionType[IncentiveActionType["Upgrade"] = 1] = "Upgrade"
    IncentiveActionType[IncentiveActionType["AddOn"] = 2] = "AddOn"
    IncentiveActionType[IncentiveActionType["Information"] = 3] = "Information"
})(IncentiveActionType || (IncentiveActionType = {}));
export class LicenseItemsResponse {
    /** @param {{Id?:number,Name?:string,AllowedItems?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    Name;
    /** @type {number} */
    AllowedItems;
}
export class BaseModel {
    constructor(init) { Object.assign(this, init) }
}
export class Currency extends BaseModel {
    /** @param {{Name?:string,CurrencySign?:string,Active?:boolean,ModifiedDate?:string,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    Name;
    /** @type {string} */
    CurrencySign;
    /** @type {boolean} */
    Active;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    Id;
}
export class Country extends BaseModel {
    /** @param {{CurrencyId?:string,CurrencyInfo?:Currency,Name?:string,Culture?:string,TimeZone?:string,ModifiedDate?:string,Id?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    CurrencyId;
    /** @type {Currency} */
    CurrencyInfo;
    /** @type {string} */
    Name;
    /** @type {string} */
    Culture;
    /** @type {string} */
    TimeZone;
    /** @type {?string} */
    ModifiedDate;
    /** @type {string} */
    Id;
}
export class LicensePrice extends BaseModel {
    /** @param {{Country?:Country,MonthlyPayment?:boolean,LicenseTypeId?:number,CountryId?:string,Price?:number,ModifiedDate?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {Country} */
    Country;
    /** @type {boolean} */
    MonthlyPayment;
    /** @type {number} */
    LicenseTypeId;
    /** @type {string} */
    CountryId;
    /** @type {number} */
    Price;
    /** @type {?string} */
    ModifiedDate;
}
export class LicenseTypeQueryResponse {
    /** @param {{Id?:number,Name?:string,Description?:string,IsExtraLicenseOption?:boolean,PeriodOfNoticeDays?:number,Items?:LicenseItemsResponse[],Prices?:LicensePrice[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description The license type id */
    Id;
    /**
     * @type {string}
     * @description The license type name */
    Name;
    /**
     * @type {string}
     * @description The license type description */
    Description;
    /**
     * @type {boolean}
     * @description If the license type is not a standard license but instead an extra license option. An example would be sending new letter license. */
    IsExtraLicenseOption;
    /**
     * @type {number}
     * @description The period of notice for the license in days. */
    PeriodOfNoticeDays;
    /**
     * @type {LicenseItemsResponse[]}
     * @description The license items for the license type */
    Items;
    /**
     * @type {LicensePrice[]}
     * @description The license prices in each country for the license type */
    Prices;
}
export class IncentiveActionResponse {
    /** @param {{Id?:number,Description?:string,ActionType?:IncentiveActionType,Page?:string,Segment?:string,Element?:string,LicenseTypeId?:number,SuggestedLicenseToUpgrade?:LicenseTypeQueryResponse}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    Description;
    /** @type {IncentiveActionType} */
    ActionType;
    /** @type {string} */
    Page;
    /** @type {string} */
    Segment;
    /** @type {string} */
    Element;
    /** @type {?number} */
    LicenseTypeId;
    /** @type {LicenseTypeQueryResponse} */
    SuggestedLicenseToUpgrade;
}
export class CreateIncentiveAction {
    /** @param {{Id?:number,ActionType?:IncentiveActionType,Description?:string,Page?:string,Segment?:string,Element?:string,LicenseTypeId?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {IncentiveActionType} */
    ActionType;
    /** @type {string} */
    Description;
    /** @type {string} */
    Page;
    /** @type {string} */
    Segment;
    /** @type {string} */
    Element;
    /** @type {?number} */
    LicenseTypeId;
}

JavaScript CreateIncentiveAction DTOs

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

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /superadmin/incentives/action HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	ActionType: Upgrade,
	Description: String,
	Page: String,
	Segment: String,
	Element: String,
	LicenseTypeId: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	Description: String,
	ActionType: Upgrade,
	Page: String,
	Segment: String,
	Element: String,
	LicenseTypeId: 0,
	SuggestedLicenseToUpgrade: 
	{
		Id: 0,
		Name: String,
		Description: String,
		IsExtraLicenseOption: False,
		PeriodOfNoticeDays: 0,
		Items: 
		[
			{
				Id: 0,
				Name: String,
				AllowedItems: 0
			}
		],
		Prices: 
		[
			{
				Country: 
				{
					CurrencyId: String,
					CurrencyInfo: 
					{
						Name: String,
						CurrencySign: String,
						Active: False,
						ModifiedDate: 0001-01-01T00:00:00.0000000+00:00,
						Id: String
					},
					Name: String,
					Culture: String,
					TimeZone: String,
					ModifiedDate: 0001-01-01T00:00:00.0000000+00:00,
					Id: String
				},
				MonthlyPayment: True,
				LicenseTypeId: 0,
				CountryId: String,
				Price: 0,
				ModifiedDate: 0001-01-01T00:00:00.0000000+00:00
			}
		]
	}
}