BokaMera.API.Host

<back to all web services

CreateAxemaUserSync

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/codelock/axema/usersyncStart a sync of users from the Axema Vaka system into BokaMera customersThis operation runs in the background and may take several minutes. Use the GET endpoint to check status. Only one sync can run at a time per company.
import 'package:servicestack/servicestack.dart';

class AxemaUserSyncJobResponse implements IConvertible
{
    String Id = "";
    String CompanyId = "";
    int Status = 0;
    String StatusName = "";
    int? UsersFound;
    int? UsersCreated;
    int? UsersUpdated;
    String? ErrorMessage;
    DateTime CreatedDate = DateTime(0);
    DateTime UpdatedDate = DateTime(0);

    AxemaUserSyncJobResponse({this.Id,this.CompanyId,this.Status,this.StatusName,this.UsersFound,this.UsersCreated,this.UsersUpdated,this.ErrorMessage,this.CreatedDate,this.UpdatedDate});
    AxemaUserSyncJobResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        CompanyId = json['CompanyId'];
        Status = json['Status'];
        StatusName = json['StatusName'];
        UsersFound = json['UsersFound'];
        UsersCreated = json['UsersCreated'];
        UsersUpdated = json['UsersUpdated'];
        ErrorMessage = json['ErrorMessage'];
        CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!);
        UpdatedDate = JsonConverters.fromJson(json['UpdatedDate'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'CompanyId': CompanyId,
        'Status': Status,
        'StatusName': StatusName,
        'UsersFound': UsersFound,
        'UsersCreated': UsersCreated,
        'UsersUpdated': UsersUpdated,
        'ErrorMessage': ErrorMessage,
        'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!),
        'UpdatedDate': JsonConverters.toJson(UpdatedDate,'DateTime',context!)
    };

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

// @ValidateRequest(Validator="IsAuthenticated")
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ApiResponse(Description="You have too low privileges to call this service", StatusCode=403)
class CreateAxemaUserSync implements ICompany, IConvertible
{
    /**
    * The company id, if empty will use the company id for the user you are logged in with.
    */
    // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
    String? CompanyId;

    CreateAxemaUserSync({this.CompanyId});
    CreateAxemaUserSync.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CompanyId = json['CompanyId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId
    };

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

TypeContext _ctx = TypeContext(library: 'api.bokamera.se', types: <String, TypeInfo> {
    'AxemaUserSyncJobResponse': TypeInfo(TypeOf.Class, create:() => AxemaUserSyncJobResponse()),
    'CreateAxemaUserSync': TypeInfo(TypeOf.Class, create:() => CreateAxemaUserSync()),
});

Dart CreateAxemaUserSync DTOs

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

HTTP + OTHER

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

POST /codelock/axema/usersync HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Status":0,"StatusName":"String","UsersFound":0,"UsersCreated":0,"UsersUpdated":0,"ErrorMessage":"String"}