| Requires any of the roles: | bookingsupplier-administrator-write, superadmin, bookingsupplier-administrator-read |
| GET | /survicate/metrics |
|---|
import 'package:servicestack/servicestack.dart';
class SurvicateMetricsResponse implements IConvertible
{
/**
* Number of distinct bookings paid via Stripe for the company.
*/
// @ApiMember(Description="Number of distinct bookings paid via Stripe for the company.")
int StripePaidBookingsCount = 0;
/**
* Number of distinct bookings paid via Qvickly for the company.
*/
// @ApiMember(Description="Number of distinct bookings paid via Qvickly for the company.")
int QvicklyPaidBookingsCount = 0;
/**
* Approximate number of bookings synced to a code lock / access control system. Derived from access-control external references (CodeLockAccessKey, IloqBookingKey); the system does not record confirmed syncs, so treat this as a proxy, not an exact count.
*/
// @ApiMember(Description="Approximate number of bookings synced to a code lock / access control system. Derived from access-control external references (CodeLockAccessKey, IloqBookingKey); the system does not record confirmed syncs, so treat this as a proxy, not an exact count.")
int CodelockSyncedBookingsCount = 0;
ResponseStatus ResponseStatus;
SurvicateMetricsResponse({this.StripePaidBookingsCount,this.QvicklyPaidBookingsCount,this.CodelockSyncedBookingsCount,this.ResponseStatus});
SurvicateMetricsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
StripePaidBookingsCount = json['StripePaidBookingsCount'];
QvicklyPaidBookingsCount = json['QvicklyPaidBookingsCount'];
CodelockSyncedBookingsCount = json['CodelockSyncedBookingsCount'];
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'StripePaidBookingsCount': StripePaidBookingsCount,
'QvicklyPaidBookingsCount': QvicklyPaidBookingsCount,
'CodelockSyncedBookingsCount': CodelockSyncedBookingsCount,
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
};
getTypeName() => "SurvicateMetricsResponse";
TypeContext? context = _ctx;
}
// @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")
class SurvicateMetricsQuery implements ICompany, IConvertible
{
/**
* Enter the company id. If blank and you are an admin, your own company id is used.
*/
// @ApiMember(Description="Enter the company id. If blank and you are an admin, your own company id is used.", ParameterType="query")
String? CompanyId;
SurvicateMetricsQuery({this.CompanyId});
SurvicateMetricsQuery.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CompanyId = json['CompanyId'];
return this;
}
Map<String, dynamic> toJson() => {
'CompanyId': CompanyId
};
getTypeName() => "SurvicateMetricsQuery";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.bookmore.com', types: <String, TypeInfo> {
'SurvicateMetricsResponse': TypeInfo(TypeOf.Class, create:() => SurvicateMetricsResponse()),
'SurvicateMetricsQuery': TypeInfo(TypeOf.Class, create:() => SurvicateMetricsQuery()),
});
Dart SurvicateMetricsQuery DTOs
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 /survicate/metrics HTTP/1.1 Host: api.bookmore.com Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"StripePaidBookingsCount":0,"QvicklyPaidBookingsCount":0,"CodelockSyncedBookingsCount":0,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}