Cochrane+ App API

<back to all web services

GetDashboardInfo

Requires Authentication
The following routes are available for this service:
GET/dashboard/info
import 'package:servicestack/servicestack.dart';

class ApiServiceRequest implements IServiceRequest, IHasApiKey, IHasDeviceInfo, IConvertible
{
    /**
    * The API Key required for authentication
    */
    // @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
    String? apiKey;

    /**
    * Latitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Latitude of the user making this request")
    double? latitude;

    /**
    * Longitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Longitude of the user making this request")
    double? longitude;

    ApiServiceRequest({this.apiKey,this.latitude,this.longitude});
    ApiServiceRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        apiKey = json['apiKey'];
        latitude = JsonConverters.toDouble(json['latitude']);
        longitude = JsonConverters.toDouble(json['longitude']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'apiKey': apiKey,
        'latitude': latitude,
        'longitude': longitude
    };

    getTypeName() => "ApiServiceRequest";
    TypeContext? context = _ctx;
}

class ApiServiceResponse implements IServiceResponse, IConvertible
{
    String? description;
    String? heading;
    bool? wasSuccessful;
    dynamic? modelState;

    ApiServiceResponse({this.description,this.heading,this.wasSuccessful,this.modelState});
    ApiServiceResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        description = json['description'];
        heading = json['heading'];
        wasSuccessful = json['wasSuccessful'];
        modelState = JsonConverters.fromJson(json['modelState'],'dynamic',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'description': description,
        'heading': heading,
        'wasSuccessful': wasSuccessful,
        'modelState': JsonConverters.toJson(modelState,'dynamic',context!)
    };

    getTypeName() => "ApiServiceResponse";
    TypeContext? context = _ctx;
}

class MeetingData implements IConvertible
{
    int? meetingId;
    String? startTime;
    String? arrivalTime;
    String? leftTime;
    String? duration;
    bool? showTimeFields;
    String? arrivalStatus;
    String? email;
    bool? hasEmail;
    String? contactName;
    double? latitude;
    double? longitude;
    String? location;
    String? address;
    String? subject;
    String? description;
    String? endTime;
    String? company;
    String? contactNumber;
    bool? hasContactNumber;
    bool? hasLocation;
    String? setBy;
    String? virtualOrInPerson;

    MeetingData({this.meetingId,this.startTime,this.arrivalTime,this.leftTime,this.duration,this.showTimeFields,this.arrivalStatus,this.email,this.hasEmail,this.contactName,this.latitude,this.longitude,this.location,this.address,this.subject,this.description,this.endTime,this.company,this.contactNumber,this.hasContactNumber,this.hasLocation,this.setBy,this.virtualOrInPerson});
    MeetingData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        meetingId = json['meetingId'];
        startTime = json['startTime'];
        arrivalTime = json['arrivalTime'];
        leftTime = json['leftTime'];
        duration = json['duration'];
        showTimeFields = json['showTimeFields'];
        arrivalStatus = json['arrivalStatus'];
        email = json['email'];
        hasEmail = json['hasEmail'];
        contactName = json['contactName'];
        latitude = JsonConverters.toDouble(json['latitude']);
        longitude = JsonConverters.toDouble(json['longitude']);
        location = json['location'];
        address = json['address'];
        subject = json['subject'];
        description = json['description'];
        endTime = json['endTime'];
        company = json['company'];
        contactNumber = json['contactNumber'];
        hasContactNumber = json['hasContactNumber'];
        hasLocation = json['hasLocation'];
        setBy = json['setBy'];
        virtualOrInPerson = json['virtualOrInPerson'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'meetingId': meetingId,
        'startTime': startTime,
        'arrivalTime': arrivalTime,
        'leftTime': leftTime,
        'duration': duration,
        'showTimeFields': showTimeFields,
        'arrivalStatus': arrivalStatus,
        'email': email,
        'hasEmail': hasEmail,
        'contactName': contactName,
        'latitude': latitude,
        'longitude': longitude,
        'location': location,
        'address': address,
        'subject': subject,
        'description': description,
        'endTime': endTime,
        'company': company,
        'contactNumber': contactNumber,
        'hasContactNumber': hasContactNumber,
        'hasLocation': hasLocation,
        'setBy': setBy,
        'virtualOrInPerson': virtualOrInPerson
    };

    getTypeName() => "MeetingData";
    TypeContext? context = _ctx;
}

class AttendanceEventType
{
    static const AttendanceEventType ClockOut = const AttendanceEventType._(0);
    static const AttendanceEventType ClockIn = const AttendanceEventType._(1);
    static const AttendanceEventType StartLunch = const AttendanceEventType._(2);
    static const AttendanceEventType EndLunch = const AttendanceEventType._(3);
    static const AttendanceEventType StartBreak = const AttendanceEventType._(4);
    static const AttendanceEventType EndBreak = const AttendanceEventType._(5);

    final int _value;
    const AttendanceEventType._(this._value);
    int get value => _value;
    static List<AttendanceEventType> get values => const [ClockOut,ClockIn,StartLunch,EndLunch,StartBreak,EndBreak];
}

class GetDashboardInfoResponse extends ApiServiceResponse implements IConvertible
{
    int? unreadNotificationCount;
    String? nextMeetingDate;
    int? totalMeetingsToday;
    int? outstandingRatingsCount;
    double? usersAverageRating;
    bool? hasSharedRatings;
    bool? isSalesPerson;
    int? usersRatingTotalVotes;
    int? usersRatingPosition;
    List<int>? teamIds;
    MeetingData? nextMeeting;
    AttendanceEventType? attendanceEventType;
    int? outstandingDebriefsToReviewCount;
    int? outstandingTemplateApprovalsCount;

    GetDashboardInfoResponse({this.unreadNotificationCount,this.nextMeetingDate,this.totalMeetingsToday,this.outstandingRatingsCount,this.usersAverageRating,this.hasSharedRatings,this.isSalesPerson,this.usersRatingTotalVotes,this.usersRatingPosition,this.teamIds,this.nextMeeting,this.attendanceEventType,this.outstandingDebriefsToReviewCount,this.outstandingTemplateApprovalsCount});
    GetDashboardInfoResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        unreadNotificationCount = json['unreadNotificationCount'];
        nextMeetingDate = json['nextMeetingDate'];
        totalMeetingsToday = json['totalMeetingsToday'];
        outstandingRatingsCount = json['outstandingRatingsCount'];
        usersAverageRating = JsonConverters.toDouble(json['usersAverageRating']);
        hasSharedRatings = json['hasSharedRatings'];
        isSalesPerson = json['isSalesPerson'];
        usersRatingTotalVotes = json['usersRatingTotalVotes'];
        usersRatingPosition = json['usersRatingPosition'];
        teamIds = JsonConverters.fromJson(json['teamIds'],'List<int>',context!);
        nextMeeting = JsonConverters.fromJson(json['nextMeeting'],'MeetingData',context!);
        attendanceEventType = JsonConverters.fromJson(json['attendanceEventType'],'AttendanceEventType',context!);
        outstandingDebriefsToReviewCount = json['outstandingDebriefsToReviewCount'];
        outstandingTemplateApprovalsCount = json['outstandingTemplateApprovalsCount'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'unreadNotificationCount': unreadNotificationCount,
        'nextMeetingDate': nextMeetingDate,
        'totalMeetingsToday': totalMeetingsToday,
        'outstandingRatingsCount': outstandingRatingsCount,
        'usersAverageRating': usersAverageRating,
        'hasSharedRatings': hasSharedRatings,
        'isSalesPerson': isSalesPerson,
        'usersRatingTotalVotes': usersRatingTotalVotes,
        'usersRatingPosition': usersRatingPosition,
        'teamIds': JsonConverters.toJson(teamIds,'List<int>',context!),
        'nextMeeting': JsonConverters.toJson(nextMeeting,'MeetingData',context!),
        'attendanceEventType': JsonConverters.toJson(attendanceEventType,'AttendanceEventType',context!),
        'outstandingDebriefsToReviewCount': outstandingDebriefsToReviewCount,
        'outstandingTemplateApprovalsCount': outstandingTemplateApprovalsCount
    });

    getTypeName() => "GetDashboardInfoResponse";
    TypeContext? context = _ctx;
}

class GetDashboardInfo extends ApiServiceRequest implements IConvertible
{
    GetDashboardInfo();
    GetDashboardInfo.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() => "GetDashboardInfo";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'cochraneplus_api_dev.happen.zone', types: <String, TypeInfo> {
    'ApiServiceRequest': TypeInfo(TypeOf.Class, create:() => ApiServiceRequest()),
    'ApiServiceResponse': TypeInfo(TypeOf.Class, create:() => ApiServiceResponse()),
    'MeetingData': TypeInfo(TypeOf.Class, create:() => MeetingData()),
    'AttendanceEventType': TypeInfo(TypeOf.Enum, enumValues:AttendanceEventType.values),
    'GetDashboardInfoResponse': TypeInfo(TypeOf.Class, create:() => GetDashboardInfoResponse()),
    'GetDashboardInfo': TypeInfo(TypeOf.Class, create:() => GetDashboardInfo()),
});

Dart GetDashboardInfo DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /dashboard/info HTTP/1.1 
Host: cochraneplus-api-dev.happen.zone 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<GetDashboardInfoResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WebService.ServiceModel">
  <Description xmlns="http://schemas.datacontract.org/2004/07/CommonService.Api.Models.Base">String</Description>
  <Heading xmlns="http://schemas.datacontract.org/2004/07/CommonService.Api.Models.Base">String</Heading>
  <ModelState xmlns="http://schemas.datacontract.org/2004/07/CommonService.Api.Models.Base" />
  <WasSuccessful xmlns="http://schemas.datacontract.org/2004/07/CommonService.Api.Models.Base">false</WasSuccessful>
  <AttendanceEventType>ClockOut</AttendanceEventType>
  <HasSharedRatings>false</HasSharedRatings>
  <IsSalesPerson>false</IsSalesPerson>
  <NextMeeting>
    <Address>String</Address>
    <ArrivalStatus>String</ArrivalStatus>
    <ArrivalTime>String</ArrivalTime>
    <Company>String</Company>
    <ContactName>String</ContactName>
    <ContactNumber>String</ContactNumber>
    <Description>String</Description>
    <Duration>String</Duration>
    <Email>String</Email>
    <EndTime>String</EndTime>
    <Latitude>0</Latitude>
    <LeftTime>String</LeftTime>
    <Location>String</Location>
    <Longitude>0</Longitude>
    <MeetingId>0</MeetingId>
    <SetBy>String</SetBy>
    <ShowTimeFields>false</ShowTimeFields>
    <StartTime>String</StartTime>
    <Subject>String</Subject>
    <VirtualOrInPerson>String</VirtualOrInPerson>
  </NextMeeting>
  <NextMeetingDate>String</NextMeetingDate>
  <OutstandingDebriefsToReviewCount>0</OutstandingDebriefsToReviewCount>
  <OutstandingRatingsCount>0</OutstandingRatingsCount>
  <OutstandingTemplateApprovalsCount>0</OutstandingTemplateApprovalsCount>
  <TeamIds xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:int>0</d2p1:int>
  </TeamIds>
  <TotalMeetingsToday>0</TotalMeetingsToday>
  <UnreadNotificationCount>0</UnreadNotificationCount>
  <UsersAverageRating>0</UsersAverageRating>
  <UsersRatingPosition>0</UsersRatingPosition>
  <UsersRatingTotalVotes>0</UsersRatingTotalVotes>
</GetDashboardInfoResponse>