Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
POST | /support/cases | Add a new support case | Add a new support case to the company of the currently logged in user, only administrators are allowed to add support cases. |
---|
import java.math.*;
import java.util.*;
import net.servicestack.client.*;
public class dtos
{
@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")
public static class CreateSupportCase implements ICompany
{
/**
* 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 UUID CompanyId = null;
/**
* The case title.
*/
@ApiMember(Description="The case title.")
public String Title = null;
/**
* The case description.
*/
@ApiMember(Description="The case description.")
public String Description = null;
/**
* If the case type id.
*/
@ApiMember(Description="If the case type id.")
public Integer CaseTypeId = null;
/**
* If the case area id.
*/
@ApiMember(Description="If the case area id.")
public Integer CaseAreaId = null;
public UUID getCompanyId() { return CompanyId; }
public CreateSupportCase setCompanyId(UUID value) { this.CompanyId = value; return this; }
public String getTitle() { return Title; }
public CreateSupportCase setTitle(String value) { this.Title = value; return this; }
public String getDescription() { return Description; }
public CreateSupportCase setDescription(String value) { this.Description = value; return this; }
public Integer getCaseTypeId() { return CaseTypeId; }
public CreateSupportCase setCaseTypeId(Integer value) { this.CaseTypeId = value; return this; }
public Integer getCaseAreaId() { return CaseAreaId; }
public CreateSupportCase setCaseAreaId(Integer value) { this.CaseAreaId = value; return this; }
}
public static class SupportCaseQueryResponse
{
/**
* The support case id
*/
@ApiMember(Description="The support case id")
public Integer Id = null;
/**
* The company user id
*/
@ApiMember(Description="The company user id")
public UUID CompanyUserId = null;
/**
* The case title.
*/
@ApiMember(Description="The case title.")
public String Title = null;
/**
* The case description.
*/
@ApiMember(Description="The case description.")
public String Description = null;
/**
* The case status id.
*/
@ApiMember(Description="The case status id.")
public Integer CaseStatusId = null;
/**
* If the case type id.
*/
@ApiMember(Description="If the case type id.")
public Integer CaseTypeId = null;
/**
* If the case area id.
*/
@ApiMember(Description="If the case area id.")
public Integer CaseAreaId = null;
/**
* The case created by.
*/
@ApiMember(Description="The case created by.")
public String CreatedBy = null;
/**
* The case updated by.
*/
@ApiMember(Description="The case updated by.")
public String UpdatedBy = null;
/**
* The case solved by.
*/
@ApiMember(Description="The case solved by.")
public String SolvedBy = null;
/**
* If case updated date.
*/
@ApiMember(Description="If case updated date.")
public Date Updated = null;
/**
* If case created date.
*/
@ApiMember(Description="If case created date.")
public Date Created = null;
/**
* Who owns the support case.
*/
@ApiMember(Description="Who owns the support case.")
public String CaseOwner = null;
/**
* The case status information.
*/
@ApiMember(Description="The case status information.")
public SupportCaseStatusResponse CaseStatus = null;
/**
* The case type information.
*/
@ApiMember(Description="The case type information.")
public SupportCaseTypeResponse CaseType = null;
/**
* The case area information.
*/
@ApiMember(Description="The case area information.")
public SupportCaseAreaResponse CaseArea = null;
/**
* The case comments.
*/
@ApiMember(Description="The case comments.")
public ArrayList<SupportCaseCommentsResponse> Comments = null;
/**
* The case attachments.
*/
@ApiMember(Description="The case attachments.")
public ArrayList<SupportCaseAttachmentResponse> Attachments = null;
/**
* The case status options to select from.
*/
@ApiMember(Description="The case status options to select from.")
public ArrayList<SupportCaseStatusResponse> CaseStatusOptions = null;
/**
* The case type options to select from.
*/
@ApiMember(Description="The case type options to select from.")
public ArrayList<SupportCaseTypeResponse> CaseTypeOptions = null;
/**
* The case area options to select from.
*/
@ApiMember(Description="The case area options to select from.")
public ArrayList<SupportCaseAreaResponse> CaseAreaOptions = null;
public Integer getId() { return Id; }
public SupportCaseQueryResponse setId(Integer value) { this.Id = value; return this; }
public UUID getCompanyUserId() { return CompanyUserId; }
public SupportCaseQueryResponse setCompanyUserId(UUID value) { this.CompanyUserId = value; return this; }
public String getTitle() { return Title; }
public SupportCaseQueryResponse setTitle(String value) { this.Title = value; return this; }
public String getDescription() { return Description; }
public SupportCaseQueryResponse setDescription(String value) { this.Description = value; return this; }
public Integer getCaseStatusId() { return CaseStatusId; }
public SupportCaseQueryResponse setCaseStatusId(Integer value) { this.CaseStatusId = value; return this; }
public Integer getCaseTypeId() { return CaseTypeId; }
public SupportCaseQueryResponse setCaseTypeId(Integer value) { this.CaseTypeId = value; return this; }
public Integer getCaseAreaId() { return CaseAreaId; }
public SupportCaseQueryResponse setCaseAreaId(Integer value) { this.CaseAreaId = value; return this; }
public String getCreatedBy() { return CreatedBy; }
public SupportCaseQueryResponse setCreatedBy(String value) { this.CreatedBy = value; return this; }
public String getUpdatedBy() { return UpdatedBy; }
public SupportCaseQueryResponse setUpdatedBy(String value) { this.UpdatedBy = value; return this; }
public String getSolvedBy() { return SolvedBy; }
public SupportCaseQueryResponse setSolvedBy(String value) { this.SolvedBy = value; return this; }
public Date getUpdated() { return Updated; }
public SupportCaseQueryResponse setUpdated(Date value) { this.Updated = value; return this; }
public Date getCreated() { return Created; }
public SupportCaseQueryResponse setCreated(Date value) { this.Created = value; return this; }
public String getCaseOwner() { return CaseOwner; }
public SupportCaseQueryResponse setCaseOwner(String value) { this.CaseOwner = value; return this; }
public SupportCaseStatusResponse getCaseStatus() { return CaseStatus; }
public SupportCaseQueryResponse setCaseStatus(SupportCaseStatusResponse value) { this.CaseStatus = value; return this; }
public SupportCaseTypeResponse getCaseType() { return CaseType; }
public SupportCaseQueryResponse setCaseType(SupportCaseTypeResponse value) { this.CaseType = value; return this; }
public SupportCaseAreaResponse getCaseArea() { return CaseArea; }
public SupportCaseQueryResponse setCaseArea(SupportCaseAreaResponse value) { this.CaseArea = value; return this; }
public ArrayList<SupportCaseCommentsResponse> getComments() { return Comments; }
public SupportCaseQueryResponse setComments(ArrayList<SupportCaseCommentsResponse> value) { this.Comments = value; return this; }
public ArrayList<SupportCaseAttachmentResponse> getAttachments() { return Attachments; }
public SupportCaseQueryResponse setAttachments(ArrayList<SupportCaseAttachmentResponse> value) { this.Attachments = value; return this; }
public ArrayList<SupportCaseStatusResponse> getCaseStatusOptions() { return CaseStatusOptions; }
public SupportCaseQueryResponse setCaseStatusOptions(ArrayList<SupportCaseStatusResponse> value) { this.CaseStatusOptions = value; return this; }
public ArrayList<SupportCaseTypeResponse> getCaseTypeOptions() { return CaseTypeOptions; }
public SupportCaseQueryResponse setCaseTypeOptions(ArrayList<SupportCaseTypeResponse> value) { this.CaseTypeOptions = value; return this; }
public ArrayList<SupportCaseAreaResponse> getCaseAreaOptions() { return CaseAreaOptions; }
public SupportCaseQueryResponse setCaseAreaOptions(ArrayList<SupportCaseAreaResponse> value) { this.CaseAreaOptions = value; return this; }
}
public static class SupportCaseStatusResponse
{
/**
* The status id
*/
@ApiMember(Description="The status id")
public Integer Id = null;
/**
* The status name
*/
@ApiMember(Description="The status name")
public String Name = null;
/**
* The status description
*/
@ApiMember(Description="The status description")
public String Description = null;
/**
* The status icon
*/
@ApiMember(Description="The status icon")
public String Icon = null;
/**
* The status color
*/
@ApiMember(Description="The status color")
public String Color = null;
public Integer getId() { return Id; }
public SupportCaseStatusResponse setId(Integer value) { this.Id = value; return this; }
public String getName() { return Name; }
public SupportCaseStatusResponse setName(String value) { this.Name = value; return this; }
public String getDescription() { return Description; }
public SupportCaseStatusResponse setDescription(String value) { this.Description = value; return this; }
public String getIcon() { return Icon; }
public SupportCaseStatusResponse setIcon(String value) { this.Icon = value; return this; }
public String getColor() { return Color; }
public SupportCaseStatusResponse setColor(String value) { this.Color = value; return this; }
}
public static class SupportCaseTypeResponse
{
/**
* The type id
*/
@ApiMember(Description="The type id")
public Integer Id = null;
/**
* The type name
*/
@ApiMember(Description="The type name")
public String Name = null;
/**
* The type description
*/
@ApiMember(Description="The type description")
public String Description = null;
public Integer getId() { return Id; }
public SupportCaseTypeResponse setId(Integer value) { this.Id = value; return this; }
public String getName() { return Name; }
public SupportCaseTypeResponse setName(String value) { this.Name = value; return this; }
public String getDescription() { return Description; }
public SupportCaseTypeResponse setDescription(String value) { this.Description = value; return this; }
}
public static class SupportCaseAreaResponse
{
/**
* The area id
*/
@ApiMember(Description="The area id")
public Integer Id = null;
/**
* The area name
*/
@ApiMember(Description="The area name")
public String Name = null;
/**
* The area description
*/
@ApiMember(Description="The area description")
public String Description = null;
public Integer getId() { return Id; }
public SupportCaseAreaResponse setId(Integer value) { this.Id = value; return this; }
public String getName() { return Name; }
public SupportCaseAreaResponse setName(String value) { this.Name = value; return this; }
public String getDescription() { return Description; }
public SupportCaseAreaResponse setDescription(String value) { this.Description = value; return this; }
}
public static class SupportCaseCommentsResponse
{
/**
* The case id
*/
@ApiMember(Description="The case id")
public Integer SupportCaseId = null;
/**
* The comments id
*/
@ApiMember(Description="The comments id")
public Integer Id = null;
/**
* The case comment
*/
@ApiMember(Description="The case comment")
public String Comment = null;
/**
* The case comment created by
*/
@ApiMember(Description="The case comment created by")
public String CreatedBy = null;
/**
* The case comment created date
*/
@ApiMember(Description="The case comment created date")
public Date Created = null;
public Integer getSupportCaseId() { return SupportCaseId; }
public SupportCaseCommentsResponse setSupportCaseId(Integer value) { this.SupportCaseId = value; return this; }
public Integer getId() { return Id; }
public SupportCaseCommentsResponse setId(Integer value) { this.Id = value; return this; }
public String getComment() { return Comment; }
public SupportCaseCommentsResponse setComment(String value) { this.Comment = value; return this; }
public String getCreatedBy() { return CreatedBy; }
public SupportCaseCommentsResponse setCreatedBy(String value) { this.CreatedBy = value; return this; }
public Date getCreated() { return Created; }
public SupportCaseCommentsResponse setCreated(Date value) { this.Created = value; return this; }
}
public static class SupportCaseAttachmentResponse
{
/**
* The attachment id
*/
@ApiMember(Description="The attachment id")
public Integer Id = null;
/**
* The attachment file url
*/
@ApiMember(Description="The attachment file url")
public String FileUrl = null;
public Integer getId() { return Id; }
public SupportCaseAttachmentResponse setId(Integer value) { this.Id = value; return this; }
public String getFileUrl() { return FileUrl; }
public SupportCaseAttachmentResponse setFileUrl(String value) { this.FileUrl = value; return this; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
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: api.bokamera.se
Accept: text/csv
Content-Type: text/csv
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/csv 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"}]}