Blazor Diffusion

<back to all web services

UpdateUserProfile

User
Requires Authentication
import 'package:servicestack/servicestack.dart';

class UserProfile implements IConvertible
{
    String? displayName;
    String? avatar;
    String? handle;

    UserProfile({this.displayName,this.avatar,this.handle});
    UserProfile.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'displayName': displayName,
        'avatar': avatar,
        'handle': handle
    };

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

// @ValidateRequest(Validator="IsAuthenticated")
class UpdateUserProfile implements IUpdateDb<AppUser>, IConvertible
{
    // @Validate(Validator="NotEmpty")
    String? displayName;

    String? avatar;
    // @Validate(Validator="MaximumLength(20)")
    String? handle;

    UpdateUserProfile({this.displayName,this.avatar,this.handle});
    UpdateUserProfile.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'displayName': displayName,
        'avatar': avatar,
        'handle': handle
    };

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

TypeContext _ctx = TypeContext(library: 'blazordiffusion.com', types: <String, TypeInfo> {
    'UserProfile': TypeInfo(TypeOf.Class, create:() => UserProfile()),
    'UpdateUserProfile': TypeInfo(TypeOf.Class, create:() => UpdateUserProfile()),
});

Dart UpdateUserProfile 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 /jsv/reply/UpdateUserProfile HTTP/1.1 
Host: blazordiffusion.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	displayName: String,
	avatar: String,
	handle: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	displayName: String,
	avatar: String,
	handle: String
}