ipnoos

Version : 1.0

Contact : david@soulayrol.name

Chemin : /ipnoos/v1

Licence : CC-BY-NC-SA-4.0

Sommaire


Description

ipnoos est une Interface Publique de nooSFere. Il s'agit d'une interface d'inspiration REST.

Choix de conception

Une large partie de l'interface expose le contenu de la base de données comme un ensemble de collections ; par exemple les auteurs, les livres, les éditeurs ou encore les adhérents ou les événements recensés sur le site. Ces collections sont toutes présentées présentées de manière homogène. Elles sont paginées, il est possible de les restreindre par différents critères de recherche ou d'en choisir l'ordre de tri. De même, consulter un élément en particulier, le modifier ou en ajouter un nouveau se fait d'une manière similaire d'une collection à l'autre, tant que les opérations ont un sens et sont permises pour l'utilisateur connecté. Au delà de cette base commune, l'interface fournit des fonctions supplémentaires et spécifiques pour, par exemple, extraire des statistiques ou réaliser de manière optimisée une opération particulière.

Les chemins, les paramètres d'URL, les noms et les clefs des entités sont écrits en anglais pour sa concision (en général) et parce que le jeu de caractères nécessaire tient dans l'encodage ASCII, lequel nécessite moins d'attention, dans l'usage des URL en particulier. Toute la documentation, ainsi que les données transitant par l'interface, sont en revanche en français et encodées en UTF-8.

ipnoos utilise autant que possible les entêtes HTTP standards selon l'usage qui est normalisé. Lorsque des informations supplémentaires sont utiles, des entêtes spécifiques sont utilisés en suivant pour cela les recommandations fournies sur cette page.

Parce que l'interface permet des traitements automatisés et l'exploration systématique de la base de données, son utilisation est soumise à une authentification, et donc réservée aux adhérents de l'association.

Utilisation des collections

En accord avec l'architecture REST, les données présentées sous forme de collections se manipulent à l'aide des verbes HTTP ; GET, POST, PUT, etc. Chacun de ces verbes s'accompagne d'une sémantique propre (par exemple, lire une donnée, ou modifier une donnée).

Quelle que soit la collection visitée, les opérations décrites ci-après sont stables. La collection visitée est représentée par le terme générique COLLECTION. Il est indiqué les exceptions ou les compléments qui peuvent êtres rencontrés. La documentation complète de chacune de ces opérations se trouve dans la section Méthodes.

Il est à noter que l'ajout ou la modification d'éléments nécessite le plus souvent des droits particuliers. Par ailleurs, la suppression d'un élément est une opération très rare, voire dangereuse sur certaines collections. Elle peut donc être soumise à des contrôles spécifiques, voire ne pas être implémentée du tout.

Lister les éléments

La consultation d'une collection entière est l'opération la plus complète en terme d'options. Elle est réalisée avec le verbe GET sur le chemin racine de la collection visitée.

Toutes les réponses sur une collection entière sont paginées. Les parcourir se fait donc en sélectionnant un numéro de page et une taille de page, puis en envoyant d'autres requêtes pour obtenir la page précédente ou la page suivante si nécessaire.

Dans les exemple ci-dessous, il est d'abord demandé la première page de la collection, avec sa taille par défaut, puis la page 42, puis la première page mais avec une taille de page différente. Enfin, le dernier exmple démontre la possibilité de combiner les deux paramètres.

GET /ipnoos/v1/COLLECTION
GET /ipnoos/v1/COLLECTION?page=42
GET /ipnoos/v1/COLLECTION?size=50
GET /ipnoos/v1/COLLECTION?page=2&size=25

Il est également possible d'utiliser des filtres et choisir l'ordre de tri.

GET /ipnoos/v1/COLLECTION[?[filter[&filter]][sort]]

Consulter un élément

Tous les éléments de collection possèdent un identifiant unique sur la collection. Il est donc possible de demander un élément en spécifiant cet identifiant.

GET /ipnoos/v1/COLLECTION/by-id/ID

Selon la collection, un élément peut posséder une autre information, ou un groupe d'information unique. L'interface peut alors proposer le moyen d'obtenir un élément selon ces critères. Par exemple :

GET /ipnoos/v1/members/by-email/EMAIL

Ajouter un élément

Lorsqu'un élément est ajouté à une collection, le serveur lui affecte un identifiant unique.

POST /ipnoos/v1/COLLECTION

Modifier un élément

PUT /ipnoos/v1/COLLECTION/by-id/ID

Supprimer un élément

DELETE /ipnoos/v1/COLLECTION/by-id/ID

Modèle de données

Le format utilisé pour les échanges est JSON.

Réponses

Ipnoos-Collection

La valeur de cet entête est une succession de quatre champs qui renseignent sur le format et la taille de la collection visitée. Il est présent sur toutes les réponses paginées.

Exemple :

Ipnoos-Collection: page-index=1; page-size=10; total-pages=3; total-elements=23

Link

Les URL permettant de naviguer rapidement à l'intérieur de la collection. Son contenu est une liste d'URLs tel que définit dans la RFC 8288.

Dans chaque réponse, l'entête comporte le lien qualifié canonical qui fournit l'URL de référence associée au contenu obtenu. Dans le cas d'une réponse paginée, l'entête comporte également les liens first et next qui représentent respectivement l'URL canonique de la page, le lien vers la première et la dernière page de la collection. Selon la page retournée dans la réponse et la taille de la collection, les liens prev et next peuvent aussi être présents pour naviguer vers la page précédente et la suivante.


Méthodes d'accès


Méthodes

Index

Authors

Members

Publishers

Security

Authors

get /authors/by-id/{id}

Obtenir la fiche d'un auteur (getAuthor)

Path parameters

id (required)
Path Parameter — default: null

Return type

AuthorDetails

Example data

Content-Type: application/json
{
  "country" : "country",
  "lastName" : "lastName",
  "sffOnly" : true,
  "city" : "city",
  "deathCity" : "deathCity",
  "created" : "",
  "fullName" : "fullName",
  "birthCity" : "birthCity",
  "birthDate" : "2000-01-23",
  "noolink" : "noolink",
  "firstName" : "firstName",
  "birthArea" : "birthArea",
  "name" : "name",
  "birthCountry" : "birthCountry",
  "deathArea" : "deathArea",
  "deathDate" : "2000-01-23",
  "comment" : "comment",
  "id" : "id",
  "dissolved" : "",
  "deathCountry" : "deathCountry",
  "email" : "email"
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La fiche d'un auteur. AuthorDetails

default

Erreur RequestError

get /authors

Lister les auteurs. (getAuthors)

Query parameters

page (optional)
Query Parameter — Le numéro de la page. default: 1 format: int32
size (optional)
Query Parameter — Le nombre d'éléments par page. default: 10 format: int32
filter (optional)
Query Parameter

Un ou plusieurs critères à appliquer sur la recherche afin de la filtrer. Le format général est le suivant. Les critères disponibles dépendent de la collection visée.

?filter=critère:valeur[,critère:valeur[...]]
default: null
sort (optional)
Query Parameter — default: null

Return type

array[AuthorIdentity]

Example data

Content-Type: application/json
[ {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
}, {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
}, {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
}, {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
}, {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
} ]

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Une page de la liste des auteurs.

default

Erreur RequestError

Members

post /members

Créer un nouvel adhérent. (addMember)

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

Body Parameter

Return type

MemberDetails

Example data

Content-Type: application/json;schema=member-details
{
  "firstname" : "firstname",
  "subscriptions" : [ {
    "date" : "2000-01-23",
    "amount" : 1,
    "year" : 5,
    "currency" : "EURO",
    "id" : 6
  }, {
    "date" : "2000-01-23",
    "amount" : 1,
    "year" : 5,
    "currency" : "EURO",
    "id" : 6
  } ],
  "role" : "MEMBER",
  "surname" : "surname",
  "description" : "description",
  "id" : 0,
  "membership" : {
    "endDate" : "2000-01-23",
    "endMessage" : "endMessage",
    "startDate" : "2000-01-23",
    "status" : "ACTIVE"
  },
  "email" : "email",
  "lastname" : "lastname"
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La fiche de l'adhérent MemberDetails

default

Erreur RequestError

post /members/{selectorType}/{selectorValue}/subscriptions

Ajouter une cotisation pour un adhérent. (addSubscription)

Le format pour créer une cotisation est le même que celui utilisé dans la collection des cotisations. Cependant, seules les propriétés amount, date et year sont nécessaires. L'identifiant est généré par le serveur et la seule monnaie supportée aujourd'hui est l'EURO.

Path parameters

selectorType (required)
Path Parameter — default: null
selectorValue (required)
Path Parameter — default: null

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

Body Parameter

Return type

SubscriptionDetails

Example data

Content-Type: application/json
{
  "date" : "2000-01-23",
  "amount" : 1,
  "year" : 5,
  "currency" : "EURO",
  "id" : 6
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La cotisation a correctement été enregistrée. SubscriptionDetails

default

Erreur RequestError

delete /members/{selectorType}/{selectorValue}

Supprimer la fiche d'un adhérent (deleteMemberBySelector)

Path parameters

selectorType (required)
Path Parameter — default: null
selectorValue (required)
Path Parameter — default: null

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Succès

default

Erreur RequestError

delete /members/{selectorType}/{selectorValue}/subscriptions/{id}

Supprimer une cotisation. (deleteSubscription)

Path parameters

selectorType (required)
Path Parameter — default: null
selectorValue (required)
Path Parameter — default: null
id (required)
Path Parameter — default: null

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La cotisation a correctement été supprimée.

default

Erreur RequestError

get /members/export

Exportation de la liste complète des adhérents. Contrairement à la requête /members, celle-ci ne permet ni pagination ni tri de la réponse. (exportMembers)

Return type

String

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

L'export complet de la table des adhérents. Le résultat est un fichier CSV. Les champs sont, dans cet ordre :

String

default

Erreur RequestError

get /members/{selectorType}/{selectorValue}

Obtenir la fiche d'un adhérent (getMemberBySelector)

Path parameters

selectorType (required)
Path Parameter — default: null
selectorValue (required)
Path Parameter — default: null

Query parameters

subscriptions (optional)
Query Parameter — Demande la liste des cotisations du membre default: false

Return type

MemberDetails

Example data

Content-Type: application/json;schema=member-details
{
  "firstname" : "firstname",
  "subscriptions" : [ {
    "date" : "2000-01-23",
    "amount" : 1,
    "year" : 5,
    "currency" : "EURO",
    "id" : 6
  }, {
    "date" : "2000-01-23",
    "amount" : 1,
    "year" : 5,
    "currency" : "EURO",
    "id" : 6
  } ],
  "role" : "MEMBER",
  "surname" : "surname",
  "description" : "description",
  "id" : 0,
  "membership" : {
    "endDate" : "2000-01-23",
    "endMessage" : "endMessage",
    "startDate" : "2000-01-23",
    "status" : "ACTIVE"
  },
  "email" : "email",
  "lastname" : "lastname"
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La fiche de l'adhérent MemberDetails

default

Erreur RequestError

get /members

Lister les adhérents de l'association (getMembers)

Query parameters

page (optional)
Query Parameter — Le numéro de la page. default: 1 format: int32
size (optional)
Query Parameter — Le nombre d'éléments par page. default: 10 format: int32
filter (optional)
Query Parameter

Un ou plusieurs critères à appliquer sur la recherche afin de la filtrer. Le format général est le suivant. Les critères disponibles dépendent de la collection visée.

?filter=critère:valeur[,critère:valeur[...]]
default: null
sort (optional)
Query Parameter — default: null

Return type

array[MemberIdentity]

Example data

Content-Type: application/json
[ {
  "firstname" : "firstname",
  "surname" : "surname",
  "id" : 0,
  "lastname" : "lastname"
}, {
  "firstname" : "firstname",
  "surname" : "surname",
  "id" : 0,
  "lastname" : "lastname"
}, {
  "firstname" : "firstname",
  "surname" : "surname",
  "id" : 0,
  "lastname" : "lastname"
}, {
  "firstname" : "firstname",
  "surname" : "surname",
  "id" : 0,
  "lastname" : "lastname"
}, {
  "firstname" : "firstname",
  "surname" : "surname",
  "id" : 0,
  "lastname" : "lastname"
} ]

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Une page de la liste des adhérents

default

Erreur RequestError

get /members/self

Obtenir la fiche de l'adhérent connecté. (getSelf)

Query parameters

subscriptions (optional)
Query Parameter — Demande la liste des cotisations du membre default: false

Return type

MemberDetails

Example data

Content-Type: application/json;schema=member-details
{
  "firstname" : "firstname",
  "subscriptions" : [ {
    "date" : "2000-01-23",
    "amount" : 1,
    "year" : 5,
    "currency" : "EURO",
    "id" : 6
  }, {
    "date" : "2000-01-23",
    "amount" : 1,
    "year" : 5,
    "currency" : "EURO",
    "id" : 6
  } ],
  "role" : "MEMBER",
  "surname" : "surname",
  "description" : "description",
  "id" : 0,
  "membership" : {
    "endDate" : "2000-01-23",
    "endMessage" : "endMessage",
    "startDate" : "2000-01-23",
    "status" : "ACTIVE"
  },
  "email" : "email",
  "lastname" : "lastname"
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La fiche de l'adhérent MemberDetails

default

Erreur RequestError

get /members/{selectorType}/{selectorValue}/subscriptions

Lister les cotisations d'un adhérent (getSubscriptions)

Path parameters

selectorType (required)
Path Parameter — default: null
selectorValue (required)
Path Parameter — default: null

Return type

array[SubscriptionDetails]

Example data

Content-Type: application/json;schema=subscription-array
[ {
  "date" : "2000-01-23",
  "amount" : 1,
  "year" : 5,
  "currency" : "EURO",
  "id" : 6
}, {
  "date" : "2000-01-23",
  "amount" : 1,
  "year" : 5,
  "currency" : "EURO",
  "id" : 6
} ]

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La liste des cotisations.

default

Erreur RequestError

put /members/{selectorType}/{selectorValue}

Modifier la fiche d'un adhérent. (updateMemberBySelector)

Path parameters

selectorType (required)
Path Parameter — default: null
selectorValue (required)
Path Parameter — default: null

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

Body Parameter

Return type

MemberDetails

Example data

Content-Type: application/json;schema=member-details
{
  "firstname" : "firstname",
  "subscriptions" : [ {
    "date" : "2000-01-23",
    "amount" : 1,
    "year" : 5,
    "currency" : "EURO",
    "id" : 6
  }, {
    "date" : "2000-01-23",
    "amount" : 1,
    "year" : 5,
    "currency" : "EURO",
    "id" : 6
  } ],
  "role" : "MEMBER",
  "surname" : "surname",
  "description" : "description",
  "id" : 0,
  "membership" : {
    "endDate" : "2000-01-23",
    "endMessage" : "endMessage",
    "startDate" : "2000-01-23",
    "status" : "ACTIVE"
  },
  "email" : "email",
  "lastname" : "lastname"
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La fiche de l'adhérent MemberDetails

default

Erreur RequestError

put /members/{selectorType}/{selectorValue}/subscriptions/{id}

Modifier une cotisation. (updateSubscription)

Path parameters

selectorType (required)
Path Parameter — default: null
selectorValue (required)
Path Parameter — default: null
id (required)
Path Parameter — default: null

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

Body Parameter

Return type

SubscriptionDetails

Example data

Content-Type: application/json
{
  "date" : "2000-01-23",
  "amount" : 1,
  "year" : 5,
  "currency" : "EURO",
  "id" : 6
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La cotisation modifiée avec succès. SubscriptionDetails

default

Erreur RequestError

Publishers

get /collections/by-id/{id}

Obtenir la fiche d'une collection d'édition (getCollection)

Path parameters

id (required)
Path Parameter — default: null

Return type

CollectionDetails

Example data

Content-Type: application/json
{
  "sffOnly" : true,
  "creationYear" : "",
  "name" : "name",
  "ended" : true,
  "publisher" : {
    "country" : "country",
    "city" : "city",
    "name" : "name",
    "id" : "id"
  },
  "comment" : "comment",
  "id" : "id",
  "endYear" : "",
  "noolink" : "noolink",
  "youth" : true
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La fiche d'une collection. CollectionDetails

default

Erreur RequestError

get /collections

Lister les collections d'édition. (getCollections)

Query parameters

page (optional)
Query Parameter — Le numéro de la page. default: 1 format: int32
size (optional)
Query Parameter — Le nombre d'éléments par page. default: 10 format: int32
filter (optional)
Query Parameter

Un ou plusieurs critères à appliquer sur la recherche afin de la filtrer. Le format général est le suivant. Les critères disponibles dépendent de la collection visée.

?filter=critère:valeur[,critère:valeur[...]]
default: null
sort (optional)
Query Parameter — default: null

Return type

array[CollectionIdentity]

Example data

Content-Type: application/json
[ {
  "name" : "name",
  "id" : "id"
}, {
  "name" : "name",
  "id" : "id"
}, {
  "name" : "name",
  "id" : "id"
}, {
  "name" : "name",
  "id" : "id"
}, {
  "name" : "name",
  "id" : "id"
} ]

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Une page de la liste des collections.

default

Erreur RequestError

get /publishers/by-id/{id}

Obtenir la fiche d'un éditeur (getPublisher)

Path parameters

id (required)
Path Parameter — default: null

Return type

PublisherDetails

Example data

Content-Type: application/json
{
  "country" : "country",
  "website" : "website",
  "sffOnly" : true,
  "address" : "address",
  "city" : "city",
  "created" : "",
  "noolink" : "noolink",
  "name" : "name",
  "postCode" : "postCode",
  "comment" : "comment",
  "id" : "id",
  "dissolved" : "",
  "email" : "email"
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La fiche d'un éditeur. PublisherDetails

default

Erreur RequestError

get /publishers

Lister les éditeurs. (getPublishers)

Query parameters

page (optional)
Query Parameter — Le numéro de la page. default: 1 format: int32
size (optional)
Query Parameter — Le nombre d'éléments par page. default: 10 format: int32
filter (optional)
Query Parameter

Un ou plusieurs critères à appliquer sur la recherche afin de la filtrer. Le format général est le suivant. Les critères disponibles dépendent de la collection visée.

?filter=critère:valeur[,critère:valeur[...]]
default: null
sort (optional)
Query Parameter — default: null

Return type

array[PublisherIdentity]

Example data

Content-Type: application/json
[ {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
}, {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
}, {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
}, {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
}, {
  "country" : "country",
  "city" : "city",
  "name" : "name",
  "id" : "id"
} ]

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Une page de la liste des éditeurs.

default

Erreur RequestError

Security

post /auth/login

Obtenir un jeton d'accès (login)

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

Body Parameter

Return type

SessionInfo

Example data

Content-Type: application/json
{
  "expired" : true,
  "authorities" : [ "authorities", "authorities" ],
  "enabled" : true,
  "username" : "username",
  "token" : "token"
}

Example data

Content-Type: application/json
{
  "reason" : "reason"
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

La réponse pour une authentification avec succès. SessionInfo

default

Erreur RequestError

Models

Index

AuthInfo - AuthInfo

Propriété Type Description
login String
password String

AuthorDetails - AuthorDetails

Propriété Type Description
id String
name String
city (optional) String
country (optional) String
lastName (optional) String
firstName (optional) String
fullName (optional) String
email (optional) String
comment (optional) String
birthCity (optional) String
birthArea (optional) String
birthCountry (optional) String
birthDate (optional) date
format: date
La date de naissance de l'auteur.
deathCity (optional) String
deathArea (optional) String
deathCountry (optional) String
deathDate (optional) date
format: date
La date de décès de l'auteur.
noolink (optional) String
sffOnly (optional) Boolean
created (optional) Integer
dissolved (optional) Integer

AuthorIdentity - AuthorIdentity

Propriété Type Description
id String
name String
city (optional) String
country (optional) String

CollectionDetails - CollectionDetails

Propriété Type Description
id String
name String
comment (optional) String
ended (optional) Boolean
publisher (optional) PublisherIdentity
noolink (optional) String
sffOnly (optional) Boolean
creationYear (optional) Integer
endYear (optional) Integer
youth (optional) Boolean

CollectionIdentity - CollectionIdentity

Propriété Type Description
id String
name String

MemberDetails - MemberDetails

Propriété Type Description
id (optional) Long
format: int64
firstname (optional) String
lastname (optional) String
surname (optional) String
description (optional) String
email (optional) String
membership (optional) Membership
role (optional) String
Enum:
  • MEMBER
  • WRITER
  • EDITOR
  • ADMIN
subscriptions (optional) array[SubscriptionDetails]

MemberIdentity - MemberIdentity

Propriété Type Description
id (optional) Long
format: int64
firstname (optional) String
lastname (optional) String
surname (optional) String

Membership - Membership

Propriété Type Description
status (optional) String
Enum:
  • ACTIVE
  • GUEST
  • INACTIVE
startDate (optional) date
format: date
endDate (optional) date
format: date
endMessage (optional) String

PublisherDetails - PublisherDetails

Propriété Type Description
id String
name String
city (optional) String
country (optional) String
address (optional) String
postCode (optional) String
email (optional) String
website (optional) String
noolink (optional) String
comment (optional) String
sffOnly (optional) Boolean
created (optional) Integer
dissolved (optional) Integer

PublisherIdentity - PublisherIdentity

Propriété Type Description
id String
name String
city (optional) String
country (optional) String

RequestError - RequestError

Propriété Type Description
reason (optional) String

SessionInfo - SessionInfo

Propriété Type Description
username String
authorities (optional) array[String]
enabled (optional) Boolean
expired (optional) Boolean
token String

SubscriptionDetails - SubscriptionDetails

La représentation d'une cotisation.

Propriété Type Description
id (optional) Long
format: int64
amount (optional) Integer
Le montant de la cotisation.
currency (optional) String
Enum:
  • EURO
  • FRANC
La monnaie qualifiant le montant de la cotisation. Seul l'EURO est supporté aujourd'hui.
date (optional) date
format: date
La date de paiement de la cotisation.
year (optional) Integer
L'année couverte par la cotisation.