AlbaApi

<back to all web services

AdminAppReq

The following routes are available for this service:
All Verbs/admin/app
All Verbs/admin/app/{Country}
All Verbs/admin/app/{Country}/{Lang}

export class SiteSection
{
    public route?: string;
    public public?: boolean;
    public parent?: string;
    public roles?: number;
    public hideFrom?: string[];
    public order?: number;

    public constructor(init?: Partial<SiteSection>) { (Object as any).assign(this, init); }
}

export class Entity implements IEntity
{
    public id?: string;

    public constructor(init?: Partial<Entity>) { (Object as any).assign(this, init); }
}

export class ListItem extends Entity
{
    public listId?: string;
    public country?: string;
    public relatedId?: string;
    public code?: string;
    public custom?: string;

    public constructor(init?: Partial<ListItem>) { super(init); (Object as any).assign(this, init); }
}

export class Country
{
    public name?: string;
    public languages?: { [index: string]: string; };

    public constructor(init?: Partial<Country>) { (Object as any).assign(this, init); }
}

export class Content extends Entity
{
    public section?: string;
    public itemId?: string;
    public itemCode?: string;
    public country?: string;
    public lang?: string;
    public app?: string;
    public companyId?: string;
    public company?: string;
    public elements?: { [index: string]: string; };

    public constructor(init?: Partial<Content>) { super(init); (Object as any).assign(this, init); }
}

// @Flags()
export enum Roles
{
    None = 0,
    Employee = 1,
    Member = 2,
    Employer = 4,
    Broker = 8,
    Developer = 16,
    SysAdmin = 32,
}

export class User
{
    public roles?: Roles;

    public constructor(init?: Partial<User>) { (Object as any).assign(this, init); }
}

export class ScriptTracker extends Entity
{
    public sprint?: string;
    public country?: string;
    public language?: string;
    public section?: string;
    public itemCode?: string;
    public element?: string;
    public value?: string;
    public isFromMerge?: boolean;

    public constructor(init?: Partial<ScriptTracker>) { super(init); (Object as any).assign(this, init); }
}

export class Configuration extends Entity
{
    public category?: string;
    public countries?: { [index: string]: Country; };
    public listItems?: ListItem[];
    public listRelationships?: { [index: string]: string; };
    public sectionElements?: { [index: string]: string[]; };
    public siteStructure?: { [index: string]: SiteSection; };
    public version?: number;
    public createdBy?: string;
    public dateCreated?: string;
    public updatedBy?: string;
    public dateUpdated?: string;

    public constructor(init?: Partial<Configuration>) { super(init); (Object as any).assign(this, init); }
}

export class AdminAppData
{
    public siteStructure?: { [index: string]: SiteSection; };
    public sectionElements?: { [index: string]: string[]; };
    public listRelationships?: { [index: string]: string; };
    public listItems?: ListItem[];
    public countries?: { [index: string]: Country; };
    public content?: Content[];
    public user?: User;
    public scriptTrackerRecords?: ScriptTracker[];
    public configurations?: Configuration[];

    public constructor(init?: Partial<AdminAppData>) { (Object as any).assign(this, init); }
}

export class AdminAppReq
{
    public country?: string;
    public lang?: string;

    public constructor(init?: Partial<AdminAppReq>) { (Object as any).assign(this, init); }
}

TypeScript AdminAppReq 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 /admin/app HTTP/1.1 
Host: hcbtas-q-albamfs-api.azurewebsites.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	country: String,
	lang: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	siteStructure: 
	{
		String: 
		{
			route: String,
			public: False,
			parent: String,
			roles: 0,
			hideFrom: 
			[
				String
			],
			order: 0
		}
	},
	sectionElements: 
	{
		String: 
		[
			String
		]
	},
	listRelationships: 
	{
		String: String
	},
	listItems: 
	[
		{
			listId: String,
			country: String,
			relatedId: String,
			code: String,
			custom: String,
			id: String
		}
	],
	countries: 
	{
		String: 
		{
			name: String,
			languages: 
			{
				String: String
			}
		}
	},
	content: 
	[
		{
			section: String,
			itemId: String,
			itemCode: String,
			country: String,
			lang: String,
			app: String,
			companyId: String,
			company: String,
			elements: 
			{
				String: String
			},
			id: String
		}
	],
	user: 
	{
		roles: 0
	},
	scriptTrackerRecords: 
	[
		{
			sprint: String,
			country: String,
			language: String,
			section: String,
			itemCode: String,
			element: String,
			value: String,
			isFromMerge: False,
			id: String
		}
	]
}