BokaMera.API.Host

<back to all web services

CreateSupportCase

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/support/casesAdd a new support caseAdd a new support case to the company of the currently logged in user, only administrators are allowed to add support cases.

export class SupportCaseStatusResponse
{
    /** @description The status id */
    // @ApiMember(Description="The status id")
    public Id: number;

    /** @description The status name */
    // @ApiMember(Description="The status name")
    public Name: string;

    /** @description The status description */
    // @ApiMember(Description="The status description")
    public Description: string;

    /** @description The status icon */
    // @ApiMember(Description="The status icon")
    public Icon: string;

    /** @description The status color */
    // @ApiMember(Description="The status color")
    public Color: string;

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

export class SupportCaseTypeResponse
{
    /** @description The type id */
    // @ApiMember(Description="The type id")
    public Id: number;

    /** @description The type name */
    // @ApiMember(Description="The type name")
    public Name: string;

    /** @description The type description */
    // @ApiMember(Description="The type description")
    public Description: string;

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

export class SupportCaseAreaResponse
{
    /** @description The area id */
    // @ApiMember(Description="The area id")
    public Id: number;

    /** @description The area name */
    // @ApiMember(Description="The area name")
    public Name: string;

    /** @description The area description */
    // @ApiMember(Description="The area description")
    public Description: string;

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

export class SupportCaseCommentsResponse
{
    /** @description The case id */
    // @ApiMember(Description="The case id")
    public SupportCaseId: number;

    /** @description The comments id */
    // @ApiMember(Description="The comments id")
    public Id: number;

    /** @description The case comment */
    // @ApiMember(Description="The case comment")
    public Comment: string;

    /** @description The case comment created by */
    // @ApiMember(Description="The case comment created by")
    public CreatedBy: string;

    /** @description The case comment created date */
    // @ApiMember(Description="The case comment created date")
    public Created: string;

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

export class SupportCaseAttachmentResponse
{
    /** @description The attachment id */
    // @ApiMember(Description="The attachment id")
    public Id: number;

    /** @description The attachment file url */
    // @ApiMember(Description="The attachment file url")
    public FileUrl: string;

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

export class SupportCaseQueryResponse
{
    /** @description The support case id */
    // @ApiMember(Description="The support case id")
    public Id: number;

    /** @description The company user id */
    // @ApiMember(Description="The company user id")
    public CompanyUserId: string;

    /** @description The case title. */
    // @ApiMember(Description="The case title.")
    public Title: string;

    /** @description The case description. */
    // @ApiMember(Description="The case description.")
    public Description: string;

    /** @description The case status id. */
    // @ApiMember(Description="The case status id.")
    public CaseStatusId: number;

    /** @description If the case type id. */
    // @ApiMember(Description="If the case type id.")
    public CaseTypeId: number;

    /** @description If the case area id. */
    // @ApiMember(Description="If the case area id.")
    public CaseAreaId: number;

    /** @description The case created by. */
    // @ApiMember(Description="The case created by.")
    public CreatedBy: string;

    /** @description The case updated by. */
    // @ApiMember(Description="The case updated by.")
    public UpdatedBy: string;

    /** @description The case solved by. */
    // @ApiMember(Description="The case solved by.")
    public SolvedBy: string;

    /** @description If case updated date. */
    // @ApiMember(Description="If case updated date.")
    public Updated: string;

    /** @description If case created date. */
    // @ApiMember(Description="If case created date.")
    public Created: string;

    /** @description Who owns the support case. */
    // @ApiMember(Description="Who owns the support case.")
    public CaseOwner: string;

    /** @description The case status information. */
    // @ApiMember(Description="The case status information.")
    public CaseStatus: SupportCaseStatusResponse;

    /** @description The case type information. */
    // @ApiMember(Description="The case type information.")
    public CaseType: SupportCaseTypeResponse;

    /** @description The case area information. */
    // @ApiMember(Description="The case area information.")
    public CaseArea: SupportCaseAreaResponse;

    /** @description The case comments. */
    // @ApiMember(Description="The case comments.")
    public Comments: SupportCaseCommentsResponse[];

    /** @description The case attachments. */
    // @ApiMember(Description="The case attachments.")
    public Attachments: SupportCaseAttachmentResponse[];

    /** @description The case status options to select from. */
    // @ApiMember(Description="The case status options to select from.")
    public CaseStatusOptions: SupportCaseStatusResponse[];

    /** @description The case type  options to select from. */
    // @ApiMember(Description="The case type  options to select from.")
    public CaseTypeOptions: SupportCaseTypeResponse[];

    /** @description The case area  options to select from. */
    // @ApiMember(Description="The case area  options to select from.")
    public CaseAreaOptions: SupportCaseAreaResponse[];

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

// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ApiResponse(Description="You have too low privilegies to call this service", StatusCode=403)
// @ValidateRequest(Validator="IsAuthenticated")
export class CreateSupportCase implements ICompany
{
    /** @description Enter the company id, if blank company id and you are an admin, your company id will be used. */
    // @ApiMember(Description="Enter the company id, if blank company id and you are an admin, your company id will be used.", IsRequired=true)
    public CompanyId: string;

    /** @description The case title. */
    // @ApiMember(Description="The case title.")
    public Title: string;

    /** @description The case description. */
    // @ApiMember(Description="The case description.")
    public Description: string;

    /** @description If the case type id. */
    // @ApiMember(Description="If the case type id.")
    public CaseTypeId: number;

    /** @description If the case area id. */
    // @ApiMember(Description="If the case area id.")
    public CaseAreaId: number;

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

TypeScript CreateSupportCase 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 /support/cases HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	Title: String,
	Description: String,
	CaseTypeId: 0,
	CaseAreaId: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	Title: String,
	Description: String,
	CaseStatusId: 0,
	CaseTypeId: 0,
	CaseAreaId: 0,
	CreatedBy: String,
	UpdatedBy: String,
	SolvedBy: String,
	CaseOwner: String,
	CaseStatus: 
	{
		Id: 0,
		Name: String,
		Description: String,
		Icon: String,
		Color: String
	},
	CaseType: 
	{
		Id: 0,
		Name: String,
		Description: String
	},
	CaseArea: 
	{
		Id: 0,
		Name: String,
		Description: String
	},
	Comments: 
	[
		{
			SupportCaseId: 0,
			Id: 0,
			Comment: String,
			CreatedBy: String
		}
	],
	Attachments: 
	[
		{
			Id: 0,
			FileUrl: String
		}
	],
	CaseStatusOptions: 
	[
		{
			Id: 0,
			Name: String,
			Description: String,
			Icon: String,
			Color: String
		}
	],
	CaseTypeOptions: 
	[
		{
			Id: 0,
			Name: String,
			Description: String
		}
	],
	CaseAreaOptions: 
	[
		{
			Id: 0,
			Name: String,
			Description: String
		}
	]
}