BokaMera.API.Host

<back to all web services

CreateCustomerComments

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/customers/{CustomerId}/commentsAdd a customers commentsGet all connected customer comments for the company.
import 'package:servicestack/servicestack.dart';

class CustomerCommentsResponse implements IConvertible
{
    int? Id;
    String? CustomerId;
    String? Comments;
    DateTime? Updated;
    DateTime? Created;
    Uri? ImageUrl;

    CustomerCommentsResponse({this.Id,this.CustomerId,this.Comments,this.Updated,this.Created,this.ImageUrl});
    CustomerCommentsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        CustomerId = json['CustomerId'];
        Comments = json['Comments'];
        Updated = JsonConverters.fromJson(json['Updated'],'DateTime',context!);
        Created = JsonConverters.fromJson(json['Created'],'DateTime',context!);
        ImageUrl = JsonConverters.fromJson(json['ImageUrl'],'Uri',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'CustomerId': CustomerId,
        'Comments': Comments,
        'Updated': JsonConverters.toJson(Updated,'DateTime',context!),
        'Created': JsonConverters.toJson(Created,'DateTime',context!),
        'ImageUrl': JsonConverters.toJson(ImageUrl,'Uri',context!)
    };

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

// @ApiResponse(Description="Returned if there is a validation error on the input parameters", StatusCode=400)
// @ApiResponse(Description="Returned if the current user is not allowed to perform the action", StatusCode=401)
// @ValidateRequest(Validator="IsAuthenticated")
class CreateCustomerComments implements ICompany, IConvertible
{
    // @ApiMember(IsRequired=true, ParameterType="path")
    String? CustomerId;

    // @ApiMember(IsRequired=true)
    String? Comments;

    // @ApiMember()
    Uri? ImageUrl;

    // @ApiMember()
    String? CompanyId;

    CreateCustomerComments({this.CustomerId,this.Comments,this.ImageUrl,this.CompanyId});
    CreateCustomerComments.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CustomerId = json['CustomerId'];
        Comments = json['Comments'];
        ImageUrl = JsonConverters.fromJson(json['ImageUrl'],'Uri',context!);
        CompanyId = json['CompanyId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CustomerId': CustomerId,
        'Comments': Comments,
        'ImageUrl': JsonConverters.toJson(ImageUrl,'Uri',context!),
        'CompanyId': CompanyId
    };

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

TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: <String, TypeInfo> {
    'CustomerCommentsResponse': TypeInfo(TypeOf.Class, create:() => CustomerCommentsResponse()),
    'Uri': TypeInfo(TypeOf.Class, create:() => Uri()),
    'CreateCustomerComments': TypeInfo(TypeOf.Class, create:() => CreateCustomerComments()),
});

Dart CreateCustomerComments DTOs

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

HTTP + CSV

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

POST /customers/{CustomerId}/comments HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"Comments":"String","CompanyId":"00000000-0000-0000-0000-000000000000"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Id":0,"Comments":"String"}