digitaluapi

<back to all web services

ClientRegister

Requires Authentication
Required role:Partner
The following routes are available for this service:
POST/clientregister
import 'package:servicestack/servicestack.dart';

class UserAuth implements IConvertible
{
    int? Id;
    String? UserName;
    String? Email;
    String? PrimaryEmail;
    String? PhoneNumber;
    String? FirstName;
    String? LastName;
    String? DisplayName;
    String? Company;
    DateTime? BirthDate;
    String? BirthDateRaw;
    String? Address;
    String? Address2;
    String? City;
    String? State;
    String? Country;
    String? Culture;
    String? FullName;
    String? Gender;
    String? Language;
    String? MailAddress;
    String? Nickname;
    String? PostalCode;
    String? TimeZone;
    String? Salt;
    String? PasswordHash;
    String? DigestHa1Hash;
    List<String>? Roles;
    List<String>? Permissions;
    DateTime? CreatedDate;
    DateTime? ModifiedDate;
    int? InvalidLoginAttempts;
    DateTime? LastLoginAttempt;
    DateTime? LockedDate;
    String? RecoveryToken;
    int? RefId;
    String? RefIdStr;
    Map<String,String?>? Meta;

    UserAuth({this.Id,this.UserName,this.Email,this.PrimaryEmail,this.PhoneNumber,this.FirstName,this.LastName,this.DisplayName,this.Company,this.BirthDate,this.BirthDateRaw,this.Address,this.Address2,this.City,this.State,this.Country,this.Culture,this.FullName,this.Gender,this.Language,this.MailAddress,this.Nickname,this.PostalCode,this.TimeZone,this.Salt,this.PasswordHash,this.DigestHa1Hash,this.Roles,this.Permissions,this.CreatedDate,this.ModifiedDate,this.InvalidLoginAttempts,this.LastLoginAttempt,this.LockedDate,this.RecoveryToken,this.RefId,this.RefIdStr,this.Meta});
    UserAuth.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        UserName = json['UserName'];
        Email = json['Email'];
        PrimaryEmail = json['PrimaryEmail'];
        PhoneNumber = json['PhoneNumber'];
        FirstName = json['FirstName'];
        LastName = json['LastName'];
        DisplayName = json['DisplayName'];
        Company = json['Company'];
        BirthDate = JsonConverters.fromJson(json['BirthDate'],'DateTime',context!);
        BirthDateRaw = json['BirthDateRaw'];
        Address = json['Address'];
        Address2 = json['Address2'];
        City = json['City'];
        State = json['State'];
        Country = json['Country'];
        Culture = json['Culture'];
        FullName = json['FullName'];
        Gender = json['Gender'];
        Language = json['Language'];
        MailAddress = json['MailAddress'];
        Nickname = json['Nickname'];
        PostalCode = json['PostalCode'];
        TimeZone = json['TimeZone'];
        Salt = json['Salt'];
        PasswordHash = json['PasswordHash'];
        DigestHa1Hash = json['DigestHa1Hash'];
        Roles = JsonConverters.fromJson(json['Roles'],'List<String>',context!);
        Permissions = JsonConverters.fromJson(json['Permissions'],'List<String>',context!);
        CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!);
        ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
        InvalidLoginAttempts = json['InvalidLoginAttempts'];
        LastLoginAttempt = JsonConverters.fromJson(json['LastLoginAttempt'],'DateTime',context!);
        LockedDate = JsonConverters.fromJson(json['LockedDate'],'DateTime',context!);
        RecoveryToken = json['RecoveryToken'];
        RefId = json['RefId'];
        RefIdStr = json['RefIdStr'];
        Meta = JsonConverters.toStringMap(json['Meta']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'UserName': UserName,
        'Email': Email,
        'PrimaryEmail': PrimaryEmail,
        'PhoneNumber': PhoneNumber,
        'FirstName': FirstName,
        'LastName': LastName,
        'DisplayName': DisplayName,
        'Company': Company,
        'BirthDate': JsonConverters.toJson(BirthDate,'DateTime',context!),
        'BirthDateRaw': BirthDateRaw,
        'Address': Address,
        'Address2': Address2,
        'City': City,
        'State': State,
        'Country': Country,
        'Culture': Culture,
        'FullName': FullName,
        'Gender': Gender,
        'Language': Language,
        'MailAddress': MailAddress,
        'Nickname': Nickname,
        'PostalCode': PostalCode,
        'TimeZone': TimeZone,
        'Salt': Salt,
        'PasswordHash': PasswordHash,
        'DigestHa1Hash': DigestHa1Hash,
        'Roles': JsonConverters.toJson(Roles,'List<String>',context!),
        'Permissions': JsonConverters.toJson(Permissions,'List<String>',context!),
        'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!),
        'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
        'InvalidLoginAttempts': InvalidLoginAttempts,
        'LastLoginAttempt': JsonConverters.toJson(LastLoginAttempt,'DateTime',context!),
        'LockedDate': JsonConverters.toJson(LockedDate,'DateTime',context!),
        'RecoveryToken': RecoveryToken,
        'RefId': RefId,
        'RefIdStr': RefIdStr,
        'Meta': Meta
    };

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

class ClientRegister implements IConvertible
{
    // @Validate(Validator="Email")
    String? EMail;

    // @Validate(Validator="[NotNull,NotEmpty]")
    String? FirstName;

    // @Validate(Validator="[NotNull,NotEmpty]")
    String? LastName;

    // @Validate(Validator="[NotNull,NotEmpty]")
    String? Password;

    String? ConfirmPassword;
    // @Validate(Validator="NotNull")
    String? Company;

    int? PartnerUserID;
    List<String>? Roles;
    ResponseStatus? ResponseStatus;

    ClientRegister({this.EMail,this.FirstName,this.LastName,this.Password,this.ConfirmPassword,this.Company,this.PartnerUserID,this.Roles,this.ResponseStatus});
    ClientRegister.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        EMail = json['EMail'];
        FirstName = json['FirstName'];
        LastName = json['LastName'];
        Password = json['Password'];
        ConfirmPassword = json['ConfirmPassword'];
        Company = json['Company'];
        PartnerUserID = json['PartnerUserID'];
        Roles = JsonConverters.fromJson(json['Roles'],'List<String>',context!);
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'EMail': EMail,
        'FirstName': FirstName,
        'LastName': LastName,
        'Password': Password,
        'ConfirmPassword': ConfirmPassword,
        'Company': Company,
        'PartnerUserID': PartnerUserID,
        'Roles': JsonConverters.toJson(Roles,'List<String>',context!),
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'duengageapi.uat.scadsoftware.com', types: <String, TypeInfo> {
    'UserAuth': TypeInfo(TypeOf.Class, create:() => UserAuth()),
    'ClientRegister': TypeInfo(TypeOf.Class, create:() => ClientRegister()),
});

Dart ClientRegister DTOs

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

HTTP + JSV

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

POST /clientregister HTTP/1.1 
Host: duengageapi.uat.scadsoftware.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	EMail: String,
	FirstName: String,
	LastName: String,
	Password: String,
	ConfirmPassword: String,
	Company: String,
	PartnerUserID: 0,
	Roles: 
	[
		String
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	UserName: String,
	Email: String,
	PrimaryEmail: String,
	PhoneNumber: String,
	FirstName: String,
	LastName: String,
	DisplayName: String,
	Company: String,
	BirthDate: 0001-01-01,
	BirthDateRaw: String,
	Address: String,
	Address2: String,
	City: String,
	State: String,
	Country: String,
	Culture: String,
	FullName: String,
	Gender: String,
	Language: String,
	MailAddress: String,
	Nickname: String,
	PostalCode: String,
	TimeZone: String,
	Salt: String,
	PasswordHash: String,
	DigestHa1Hash: String,
	Roles: 
	[
		String
	],
	Permissions: 
	[
		String
	],
	CreatedDate: 0001-01-01,
	ModifiedDate: 0001-01-01,
	InvalidLoginAttempts: 0,
	LastLoginAttempt: 0001-01-01,
	LockedDate: 0001-01-01,
	RecoveryToken: String,
	RefId: 0,
	RefIdStr: String,
	Meta: 
	{
		String: String
	}
}