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: 'api.bookmore.dev', 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 .xml suffix or ?format=xml

HTTP + XML

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: api.bookmore.dev 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<UpdateArticleMappings xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <ArticleMappings>
    <ArticleMappingToHandle>
      <ArticleId>0</ArticleId>
      <ExternalReference>String</ExternalReference>
      <Id>00000000-0000-0000-0000-000000000000</Id>
      <ReferenceType>String</ReferenceType>
    </ArticleMappingToHandle>
  </ArticleMappings>
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
</UpdateArticleMappings>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ArrayOfArticleMappingResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <ArticleMappingResponse>
    <ArticleId>0</ArticleId>
    <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
    <ExternalReference>String</ExternalReference>
    <Id>00000000-0000-0000-0000-000000000000</Id>
    <ReferenceType>String</ReferenceType>
  </ArticleMappingResponse>
</ArrayOfArticleMappingResponse>