AffiliationAPI

<back to all web services

PostUserAffiliateTokensRequest

Requires Authentication
The following routes are available for this service:
POST/v4/user-affiliate-tokensAdd user's affiliate info for a specific programList of supported affiliate programs may be retrieved by calling the GET /v3/affiliate-programs endpoint.
Parameter names must match and valid values must be provided.
import 'package:servicestack/servicestack.dart';

abstract class AffiliateTokensRequestBase
{
    // @DataMember(Name="username", IsRequired=true)
    String? username;

    // @DataMember(Name="parameters", IsRequired=true)
    Map<String,String?>? parameters;

    AffiliateTokensRequestBase({this.username,this.parameters});
    AffiliateTokensRequestBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        username = json['username'];
        parameters = JsonConverters.toStringMap(json['parameters']);
        return this;
    }

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

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

// @DataContract
class BaseResponse implements IConvertible
{
    // @DataMember(Name="responseStatus")
    ResponseStatus? responseStatus;

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

    fromMap(Map<String, dynamic> json) {
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
    };

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

// @DataContract
class PostUserAffiliateTokensResponse extends BaseResponse implements IConvertible
{
    // @DataMember
    bool? success;

    // @DataMember
    String? affiliateTokensId;

    PostUserAffiliateTokensResponse({this.success,this.affiliateTokensId});
    PostUserAffiliateTokensResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        success = json['success'];
        affiliateTokensId = json['affiliateTokensId'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'success': success,
        'affiliateTokensId': affiliateTokensId
    });

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

// @DataContract
class PostUserAffiliateTokensRequest extends AffiliateTokensRequestBase implements IConvertible
{
    // @DataMember(Name="programGuid", IsRequired=true)
    String? programGuid;

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

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

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'programGuid': programGuid
    });

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

TypeContext _ctx = TypeContext(library: 'affiliation_api_pr_4587.qa.platform.georiot.com', types: <String, TypeInfo> {
    'AffiliateTokensRequestBase': TypeInfo(TypeOf.AbstractClass),
    'BaseResponse': TypeInfo(TypeOf.Class, create:() => BaseResponse()),
    'PostUserAffiliateTokensResponse': TypeInfo(TypeOf.Class, create:() => PostUserAffiliateTokensResponse()),
    'PostUserAffiliateTokensRequest': TypeInfo(TypeOf.Class, create:() => PostUserAffiliateTokensRequest()),
});

Dart PostUserAffiliateTokensRequest 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 /v4/user-affiliate-tokens HTTP/1.1 
Host: affiliation-api-pr-4587.qa.platform.georiot.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	programGuid: String,
	username: String,
	parameters: 
	{
		String: String
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	success: False,
	affiliateTokensId: String,
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}