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}
namespace AlbaApi.ServiceModel

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type SiteSection() = 
        member val Route:String = null with get,set
        member val Public:Boolean = new Boolean() with get,set
        member val Parent:String = null with get,set
        member val Roles:Int32 = new Int32() with get,set
        member val HideFrom:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Order:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type Entity() = 
        member val Id:String = null with get,set

    [<AllowNullLiteral>]
    type ListItem() = 
        inherit Entity()
        member val ListId:String = null with get,set
        member val Country:String = null with get,set
        member val RelatedId:String = null with get,set
        member val Code:String = null with get,set
        member val Custom:String = null with get,set

    [<AllowNullLiteral>]
    type Country() = 
        member val Name:String = null with get,set
        member val Languages:Dictionary<String, String> = new Dictionary<String, String>() with get,set

    [<AllowNullLiteral>]
    type Content() = 
        inherit Entity()
        member val Section:String = null with get,set
        member val ItemId:String = null with get,set
        member val ItemCode:String = null with get,set
        member val Country:String = null with get,set
        member val Lang:String = null with get,set
        member val App:String = null with get,set
        member val CompanyId:String = null with get,set
        member val Company:String = null with get,set
        member val Elements:Dictionary<String, String> = new Dictionary<String, String>() with get,set

    [<Flags>]
    type Roles =
        | None = 0
        | Employee = 1
        | Member = 2
        | Employer = 4
        | Broker = 8
        | Developer = 16
        | SysAdmin = 32

    [<AllowNullLiteral>]
    type User() = 
        member val Roles:Roles = new Roles() with get,set

    [<AllowNullLiteral>]
    type ScriptTracker() = 
        inherit Entity()
        member val Sprint:String = null with get,set
        member val Country:String = null with get,set
        member val Language:String = null with get,set
        member val Section:String = null with get,set
        member val ItemCode:String = null with get,set
        member val Element:String = null with get,set
        member val Value:String = null with get,set
        member val IsFromMerge:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type Configuration() = 
        inherit Entity()
        member val Category:String = null with get,set
        member val Countries:Dictionary<String, Country> = new Dictionary<String, Country>() with get,set
        member val ListItems:ResizeArray<ListItem> = new ResizeArray<ListItem>() with get,set
        member val ListRelationships:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val SectionElements:Dictionary<String, List<String>> = new Dictionary<String, List<String>>() with get,set
        member val SiteStructure:Dictionary<String, SiteSection> = new Dictionary<String, SiteSection>() with get,set
        member val Version:Int32 = new Int32() with get,set
        member val CreatedBy:String = null with get,set
        member val DateCreated:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val UpdatedBy:String = null with get,set
        member val DateUpdated:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type AdminAppData() = 
        member val SiteStructure:Dictionary<String, SiteSection> = new Dictionary<String, SiteSection>() with get,set
        member val SectionElements:Dictionary<String, List<String>> = new Dictionary<String, List<String>>() with get,set
        member val ListRelationships:Dictionary<String, String> = new Dictionary<String, String>() with get,set
        member val ListItems:ResizeArray<ListItem> = new ResizeArray<ListItem>() with get,set
        member val Countries:Dictionary<String, Country> = new Dictionary<String, Country>() with get,set
        member val Content:ResizeArray<Content> = new ResizeArray<Content>() with get,set
        member val User:User = null with get,set
        member val ScriptTrackerRecords:ResizeArray<ScriptTracker> = new ResizeArray<ScriptTracker>() with get,set
        member val Configurations:IEnumerable<Configuration> = null with get,set

    [<AllowNullLiteral>]
    type AdminAppReq() = 
        member val Country:String = null with get,set
        member val Lang:String = null with get,set

F# 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
		}
	]
}