BokaMera.API.Host

<back to all web services

UpdateArticleMappings

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
PUT/articles/mappingsUpdate external article mappings for the company articlesCreate or update mappings between BokaMera articles and articles in an external system, for example e-accounting
import 'package:servicestack/servicestack.dart';

class ArticleMappingToHandle implements IConvertible
{
    /**
    * The id of an existing mapping to update; leave empty to create a new one
    */
    // @ApiMember(Description="The id of an existing mapping to update; leave empty to create a new one")
    String? Id;

    /**
    * The BokaMera article id
    */
    // @ApiMember(Description="The BokaMera article id")
    int ArticleId = 0;

    /**
    * The Reference Type: StripeArticle = 1, EAccountingArticle = 2
    */
    // @ApiMember(Description="The Reference Type: StripeArticle = 1, EAccountingArticle = 2")
    String ReferenceType = "";

    /**
    * The external reference; Values for EAccountingArticle, StripeArticle
    */
    // @ApiMember(Description="The external reference; Values for EAccountingArticle, StripeArticle")
    String ExternalReference = "";

    ArticleMappingToHandle({this.Id,this.ArticleId,this.ReferenceType,this.ExternalReference});
    ArticleMappingToHandle.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        ArticleId = json['ArticleId'];
        ReferenceType = json['ReferenceType'];
        ExternalReference = json['ExternalReference'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'ArticleId': ArticleId,
        'ReferenceType': ReferenceType,
        'ExternalReference': ExternalReference
    };

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

// @ValidateRequest(Validator="IsAuthenticated")
class UpdateArticleMappings implements ICompany, IConvertible
{
    /**
    * Company to update article mappings for
    */
    // @ApiMember(Description="Company to update article mappings for")
    String? CompanyId;

    /**
    * The article mappings to create or update
    */
    // @ApiMember(Description="The article mappings to create or update", IsRequired=true)
    List<ArticleMappingToHandle> ArticleMappings = [];

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

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

    Map<String, dynamic> toJson() => {
        'CompanyId': CompanyId,
        'ArticleMappings': JsonConverters.toJson(ArticleMappings,'List<ArticleMappingToHandle>',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'testapi.bokamera.se', types: <String, TypeInfo> {
    'ArticleMappingToHandle': TypeInfo(TypeOf.Class, create:() => ArticleMappingToHandle()),
    'UpdateArticleMappings': TypeInfo(TypeOf.Class, create:() => UpdateArticleMappings()),
    'List<ArticleMappingToHandle>': TypeInfo(TypeOf.Class, create:() => <ArticleMappingToHandle>[]),
});

Dart UpdateArticleMappings DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

PUT /articles/mappings HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","ArticleMappings":[{"Id":"00000000-0000-0000-0000-000000000000","ArticleId":0,"ReferenceType":"String","ExternalReference":"String"}]}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

[{"ArticleId":0,"ExternalReference":"String","ReferenceType":"String"}]