GET | /rating/ | Get Ratings | Get Ratings. |
---|
import 'package:servicestack/servicestack.dart';
// @DataContract
abstract class QueryBase
{
/**
* Skip over a given number of elements in a sequence and then return the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?skip=10&orderBy=Id</code>
*/
// @DataMember(Order=1)
int? Skip;
/**
* Return a given number of elements in a sequence and then skip over the remainder. Use this when you need paging.<br/><br/><strong>Example:</strong><br/><code>?take=20</code>
*/
// @DataMember(Order=2)
int? Take;
/**
* Comma separated list of fields to order by. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderBy=Id,-Age,FirstName</code>
*/
// @DataMember(Order=3)
String? OrderBy;
/**
* Comma separated list of fields to order by in descending order. Prefix the field name with a minus if you wan't to invert the sort for that field.<br/><br/><strong>Example:</strong><br/><code>?orderByDesc=Id,-Age,FirstName</code>
*/
// @DataMember(Order=4)
String? OrderByDesc;
/**
* Include any of the aggregates <code>AVG, COUNT, FIRST, LAST, MAX, MIN, SUM</code> in your result set. The results will be returned in the meta field.<br/><br/><strong>Example:</strong><br/><code>?include=COUNT(*) as Total</code><br/><br/>or multiple fields with<br/><code>?include=Count(*) Total, Min(Age), AVG(Age) AverageAge</code><br/></br>or unique with<br/><code>?include=COUNT(DISTINCT LivingStatus) as UniqueStatus</code>
*/
// @DataMember(Order=5)
String? Include;
// @DataMember(Order=6)
String? Fields;
// @DataMember(Order=7)
Map<String,String?>? Meta;
QueryBase({this.Skip,this.Take,this.OrderBy,this.OrderByDesc,this.Include,this.Fields,this.Meta});
QueryBase.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Skip = json['Skip'];
Take = json['Take'];
OrderBy = json['OrderBy'];
OrderByDesc = json['OrderByDesc'];
Include = json['Include'];
Fields = json['Fields'];
Meta = JsonConverters.toStringMap(json['Meta']);
return this;
}
Map<String, dynamic> toJson() => {
'Skip': Skip,
'Take': Take,
'OrderBy': OrderBy,
'OrderByDesc': OrderByDesc,
'Include': Include,
'Fields': Fields,
'Meta': Meta
};
getTypeName() => "QueryBase";
TypeContext? context = _ctx;
}
abstract class QueryDb2<From,Into> extends QueryBase
{
QueryDb2();
QueryDb2.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "QueryDb<$From,$Into>";
TypeContext? context = _ctx;
}
class RatingReviewResponse implements IConvertible
{
/**
* The title for the review
*/
// @ApiMember(Description="The title for the review")
String? Title;
/**
* The description for the review
*/
// @ApiMember(Description="The description for the review")
String? Description;
/**
* The rating score
*/
// @ApiMember(Description="The rating score")
int? RatingScore;
/**
* The review author
*/
// @ApiMember(Description="The review author")
String? Author;
/**
* The created date
*/
// @ApiMember(Description="The created date")
DateTime? Created;
/**
* The review answer from the company
*/
// @ApiMember(Description="The review answer from the company")
String? ReviewAnswer;
RatingReviewResponse({this.Title,this.Description,this.RatingScore,this.Author,this.Created,this.ReviewAnswer});
RatingReviewResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Title = json['Title'];
Description = json['Description'];
RatingScore = json['RatingScore'];
Author = json['Author'];
Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
ReviewAnswer = json['ReviewAnswer'];
return this;
}
Map<String, dynamic> toJson() => {
'Title': Title,
'Description': Description,
'RatingScore': RatingScore,
'Author': Author,
'Created': JsonConverters.toJson(Created,'DateTime',context!),
'ReviewAnswer': ReviewAnswer
};
getTypeName() => "RatingReviewResponse";
TypeContext? context = _ctx;
}
class CompanyRatingResponse implements IConvertible
{
/**
*
*/
// @ApiMember(Description="")
String? CompanyId;
/**
* Id of the booking
*/
// @ApiMember(Description="Id of the booking")
int? BookingId;
/**
* The status of the rating, 1 = Active
*/
// @ApiMember(Description="The status of the rating, 1 = Active")
int? Status;
/**
* The rating score
*/
// @ApiMember(Description="The rating score")
int? RatingScore;
/**
* The review if any exists to the rating
*/
// @ApiMember(Description="The review if any exists to the rating")
RatingReviewResponse? Review;
DateTime? CreatedDate;
DateTime? UpdatedDate;
CompanyRatingResponse({this.CompanyId,this.BookingId,this.Status,this.RatingScore,this.Review,this.CreatedDate,this.UpdatedDate});
CompanyRatingResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CompanyId = json['CompanyId'];
BookingId = json['BookingId'];
Status = json['Status'];
RatingScore = json['RatingScore'];
Review = JsonConverters.fromJson(json['Review'],'RatingReviewResponse',context!);
CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!);
UpdatedDate = JsonConverters.fromJson(json['UpdatedDate'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'CompanyId': CompanyId,
'BookingId': BookingId,
'Status': Status,
'RatingScore': RatingScore,
'Review': JsonConverters.toJson(Review,'RatingReviewResponse',context!),
'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!),
'UpdatedDate': JsonConverters.toJson(UpdatedDate,'DateTime',context!)
};
getTypeName() => "CompanyRatingResponse";
TypeContext? context = _ctx;
}
class BaseModel implements IConvertible
{
BaseModel();
BaseModel.fromJson(Map<String, dynamic> json) : super();
fromMap(Map<String, dynamic> json) {
return this;
}
Map<String, dynamic> toJson() => {};
getTypeName() => "BaseModel";
TypeContext? context = _ctx;
}
class Review extends BaseModel implements IConvertible
{
String? ReviewId;
// @Required()
String? CompanyId;
// @Required()
String? Title;
// @Required()
String? Description;
// @Required()
String? Author;
// @Required()
int? Status;
// @Required()
DateTime? Created;
// @Required()
DateTime? Updated;
DateTime? ModifiedDate;
String? ReviewAnswer;
Review({this.ReviewId,this.CompanyId,this.Title,this.Description,this.Author,this.Status,this.Created,this.Updated,this.ModifiedDate,this.ReviewAnswer});
Review.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
ReviewId = json['ReviewId'];
CompanyId = json['CompanyId'];
Title = json['Title'];
Description = json['Description'];
Author = json['Author'];
Status = json['Status'];
Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
Updated = JsonConverters.fromJson(json['Updated'],'DateTime',context!);
ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
ReviewAnswer = json['ReviewAnswer'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'ReviewId': ReviewId,
'CompanyId': CompanyId,
'Title': Title,
'Description': Description,
'Author': Author,
'Status': Status,
'Created': JsonConverters.toJson(Created,'DateTime',context!),
'Updated': JsonConverters.toJson(Updated,'DateTime',context!),
'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
'ReviewAnswer': ReviewAnswer
});
getTypeName() => "Review";
TypeContext? context = _ctx;
}
class Rating extends BaseModel implements IConvertible
{
String? ReviewId;
Review? Review;
// @Required()
String? CompanyId;
// @Required()
int? BookingId;
// @Required()
int? RatingScore;
// @Required()
int? Status;
// @Required()
DateTime? Created;
// @Required()
DateTime? Updated;
DateTime? ModifiedDate;
Rating({this.ReviewId,this.Review,this.CompanyId,this.BookingId,this.RatingScore,this.Status,this.Created,this.Updated,this.ModifiedDate});
Rating.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
ReviewId = json['ReviewId'];
Review = JsonConverters.fromJson(json['Review'],'Review',context!);
CompanyId = json['CompanyId'];
BookingId = json['BookingId'];
RatingScore = json['RatingScore'];
Status = json['Status'];
Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
Updated = JsonConverters.fromJson(json['Updated'],'DateTime',context!);
ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'ReviewId': ReviewId,
'Review': JsonConverters.toJson(Review,'Review',context!),
'CompanyId': CompanyId,
'BookingId': BookingId,
'RatingScore': RatingScore,
'Status': Status,
'Created': JsonConverters.toJson(Created,'DateTime',context!),
'Updated': JsonConverters.toJson(Updated,'DateTime',context!),
'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!)
});
getTypeName() => "Rating";
TypeContext? context = _ctx;
}
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
class RatingQuery extends QueryDb2<Rating,CompanyRatingResponse> implements ICompany, IConvertible
{
/**
*
*/
// @ApiMember(Description="")
String? CompanyId;
/**
* Id of the booking
*/
// @DataMember(Name="BookedEventId")
// @ApiMember(Description="Id of the booking")
int? BookedEventId;
/**
* If you want to collect only active ratings. Ratings are only active after one has past since creation date.
*/
// @ApiMember(Description="If you want to collect only active ratings. Ratings are only active after one has past since creation date.")
bool? Active;
/**
* If you want to include the rating reviews
*/
// @ApiMember(DataType="boolean", Description="If you want to include the rating reviews", ParameterType="query")
bool? IncludeRatingReviews;
/**
* Start of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339
*/
// @ApiMember(DataType="dateTime", Description="Start of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")
DateTime? CreatedFrom;
/**
* End of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339
*/
// @ApiMember(DataType="dateTime", Description="End of interval to query for bookings when they where created. UTC+0 and parameter as defined by date-time - RFC3339", ParameterType="query")
DateTime? CreatedTo;
RatingQuery({this.CompanyId,this.BookedEventId,this.Active,this.IncludeRatingReviews,this.CreatedFrom,this.CreatedTo});
RatingQuery.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
CompanyId = json['CompanyId'];
BookedEventId = json['BookingId'];
Active = json['Active'];
IncludeRatingReviews = json['IncludeRatingReviews'];
CreatedFrom = JsonConverters.fromJson(json['CreatedFrom'],'DateTime',context!);
CreatedTo = JsonConverters.fromJson(json['CreatedTo'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'CompanyId': CompanyId,
'BookedEventId': BookedEventId,
'Active': Active,
'IncludeRatingReviews': IncludeRatingReviews,
'CreatedFrom': JsonConverters.toJson(CreatedFrom,'DateTime',context!),
'CreatedTo': JsonConverters.toJson(CreatedTo,'DateTime',context!)
});
getTypeName() => "RatingQuery";
TypeContext? context = _ctx;
}
class AccessKeyTypeResponse implements IConvertible
{
int? Id;
String? KeyType;
String? Description;
AccessKeyTypeResponse({this.Id,this.KeyType,this.Description});
AccessKeyTypeResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
KeyType = json['KeyType'];
Description = json['Description'];
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'KeyType': KeyType,
'Description': Description
};
getTypeName() => "AccessKeyTypeResponse";
TypeContext? context = _ctx;
}
// @DataContract
class QueryResponse<AccessKeyTypeResponse> implements IConvertible
{
// @DataMember(Order=1)
int? Offset;
// @DataMember(Order=2)
int? Total;
// @DataMember(Order=3)
List<AccessKeyTypeResponse>? Results;
// @DataMember(Order=4)
Map<String,String?>? Meta;
// @DataMember(Order=5)
ResponseStatus? ResponseStatus;
QueryResponse({this.Offset,this.Total,this.Results,this.Meta,this.ResponseStatus});
QueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Offset = json['Offset'];
Total = json['Total'];
Results = JsonConverters.fromJson(json['Results'],'List<${runtimeGenericTypeDefs(this,[0]).join(",")}>',context!);
Meta = JsonConverters.toStringMap(json['Meta']);
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Offset': Offset,
'Total': Total,
'Results': JsonConverters.toJson(Results,'List<AccessKeyTypeResponse>',context!),
'Meta': Meta,
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
};
getTypeName() => "QueryResponse<$AccessKeyTypeResponse>";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
'RatingReviewResponse': TypeInfo(TypeOf.Class, create:() => RatingReviewResponse()),
'CompanyRatingResponse': TypeInfo(TypeOf.Class, create:() => CompanyRatingResponse()),
'BaseModel': TypeInfo(TypeOf.Class, create:() => BaseModel()),
'Review': TypeInfo(TypeOf.Class, create:() => Review()),
'Rating': TypeInfo(TypeOf.Class, create:() => Rating()),
'RatingQuery': TypeInfo(TypeOf.Class, create:() => RatingQuery()),
'List<CompanyRatingResponse>': TypeInfo(TypeOf.Class, create:() => <CompanyRatingResponse>[]),
'AccessKeyTypeResponse': TypeInfo(TypeOf.Class, create:() => AccessKeyTypeResponse()),
'QueryResponse<AccessKeyTypeResponse>': TypeInfo(TypeOf.Class, create:() => QueryResponse<AccessKeyTypeResponse>()),
});
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.
GET /rating/ HTTP/1.1 Host: api.bokamera.se Accept: text/csv
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"Offset":0,"Total":0,"Results":[{"BookingId":0,"Status":0,"RatingScore":0,"Review":{"Title":"String","Description":"String","RatingScore":0,"Author":"String","ReviewAnswer":"String"}}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}