digitaluapi

<back to all web services

ClientRegister

Requires Authentication
Required role:Partner
The following routes are available for this service:
POST/clientregister
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UserAuth:
    id: int = 0
    user_name: Optional[str] = None
    email: Optional[str] = None
    primary_email: Optional[str] = None
    phone_number: Optional[str] = None
    first_name: Optional[str] = None
    last_name: Optional[str] = None
    display_name: Optional[str] = None
    company: Optional[str] = None
    birth_date: Optional[datetime.datetime] = None
    birth_date_raw: Optional[str] = None
    address: Optional[str] = None
    address2: Optional[str] = None
    city: Optional[str] = None
    state: Optional[str] = None
    country: Optional[str] = None
    culture: Optional[str] = None
    full_name: Optional[str] = None
    gender: Optional[str] = None
    language: Optional[str] = None
    mail_address: Optional[str] = None
    nickname: Optional[str] = None
    postal_code: Optional[str] = None
    time_zone: Optional[str] = None
    salt: Optional[str] = None
    password_hash: Optional[str] = None
    digest_ha1_hash: Optional[str] = None
    roles: Optional[List[str]] = None
    permissions: Optional[List[str]] = None
    created_date: datetime.datetime = datetime.datetime(1, 1, 1)
    modified_date: datetime.datetime = datetime.datetime(1, 1, 1)
    invalid_login_attempts: int = 0
    last_login_attempt: Optional[datetime.datetime] = None
    locked_date: Optional[datetime.datetime] = None
    recovery_token: Optional[str] = None
    ref_id: Optional[int] = None
    ref_id_str: Optional[str] = None
    meta: Optional[Dict[str, str]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ClientRegister:
    # @Validate(Validator="Email")
    e_mail: Optional[str] = None

    # @Validate(Validator="[NotNull,NotEmpty]")
    first_name: Optional[str] = None

    # @Validate(Validator="[NotNull,NotEmpty]")
    last_name: Optional[str] = None

    # @Validate(Validator="[NotNull,NotEmpty]")
    password: Optional[str] = None

    confirm_password: Optional[str] = None
    # @Validate(Validator="NotNull")
    company: Optional[str] = None

    partner_user_i_d: int = 0
    roles: Optional[List[str]] = None
    response_status: Optional[ResponseStatus] = None

Python 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
	}
}