Files
matosbox/backend/docs/swagger.yaml

1425 lines
35 KiB
YAML

basePath: /v1
definitions:
champpersonnalise.TypeChamp:
enum:
- string
- string
- int
- bool
- date
type: string
x-enum-varnames:
- DefaultTypeChamp
- TypeChampString
- TypeChampInt
- TypeChampBool
- TypeChampDate
ent.Categorie:
properties:
created_at:
description: Date de creation
type: string
edges:
allOf:
- $ref: '#/definitions/ent.CategorieEdges'
description: |-
Edges holds the relations/edges for other nodes in the graph.
The values are being populated by the CategorieQuery when eager-loading is set.
icone:
description: Nom ou code d'icone
type: string
id:
description: |-
ID of the ent.
Identifiant unique de la categorie
type: string
nom:
description: Nom de la categorie
type: string
parent_id:
description: Identifiant du parent
type: string
slug:
description: Slug URL-friendly
type: string
updated_at:
description: Date de derniere mise a jour
type: string
type: object
ent.CategorieEdges:
properties:
enfants:
description: Enfants holds the value of the enfants edge.
items:
$ref: '#/definitions/ent.Categorie'
type: array
parent:
allOf:
- $ref: '#/definitions/ent.Categorie'
description: Lien parent/enfants pour l'arbre des categories
type: object
ent.ChampPersonnalise:
properties:
created_at:
description: Date de creation
type: string
edges:
allOf:
- $ref: '#/definitions/ent.ChampPersonnaliseEdges'
description: |-
Edges holds the relations/edges for other nodes in the graph.
The values are being populated by the ChampPersonnaliseQuery when eager-loading is set.
id:
description: |-
ID of the ent.
Identifiant unique du champ
type: string
nom_champ:
description: Nom du champ
type: string
objet_id:
description: Identifiant de l'objet
type: string
type_champ:
allOf:
- $ref: '#/definitions/champpersonnalise.TypeChamp'
description: Type du champ
unite:
description: Unite (si applicable)
type: string
updated_at:
description: Date de derniere mise a jour
type: string
valeur:
description: Valeur stockee en texte
type: string
type: object
ent.ChampPersonnaliseEdges:
properties:
objet:
allOf:
- $ref: '#/definitions/ent.Objet'
description: Objet holds the value of the objet edge.
type: object
ent.Emplacement:
properties:
created_at:
description: Date de creation
type: string
edges:
allOf:
- $ref: '#/definitions/ent.EmplacementEdges'
description: |-
Edges holds the relations/edges for other nodes in the graph.
The values are being populated by the EmplacementQuery when eager-loading is set.
icone:
description: Nom ou code d'icone
type: string
id:
description: |-
ID of the ent.
Identifiant unique de l'emplacement
type: string
meuble:
description: Meuble associe
type: string
nom:
description: Nom de l'emplacement
type: string
numero_boite:
description: Numero de boite
type: string
parent_id:
description: Identifiant du parent
type: string
piece:
description: Piece associee
type: string
slug:
description: Slug URL-friendly
type: string
updated_at:
description: Date de derniere mise a jour
type: string
type: object
ent.EmplacementEdges:
properties:
enfants:
description: Enfants holds the value of the enfants edge.
items:
$ref: '#/definitions/ent.Emplacement'
type: array
liens_objets:
description: Liens entre emplacements et objets
items:
$ref: '#/definitions/ent.LienObjetEmplacement'
type: array
parent:
allOf:
- $ref: '#/definitions/ent.Emplacement'
description: Lien parent/enfants pour l'arbre des emplacements
type: object
ent.LienObjetEmplacement:
properties:
created_at:
description: Date de creation
type: string
edges:
allOf:
- $ref: '#/definitions/ent.LienObjetEmplacementEdges'
description: |-
Edges holds the relations/edges for other nodes in the graph.
The values are being populated by the LienObjetEmplacementQuery when eager-loading is set.
emplacement_id:
description: Identifiant de l'emplacement
type: string
id:
description: |-
ID of the ent.
Identifiant unique du lien
type: string
objet_id:
description: Identifiant de l'objet
type: string
type:
allOf:
- $ref: '#/definitions/lienobjetemplacement.Type'
description: Type de relation
updated_at:
description: Date de derniere mise a jour
type: string
type: object
ent.LienObjetEmplacementEdges:
properties:
emplacement:
allOf:
- $ref: '#/definitions/ent.Emplacement'
description: Emplacement holds the value of the emplacement edge.
objet:
allOf:
- $ref: '#/definitions/ent.Objet'
description: Objet holds the value of the objet edge.
type: object
ent.Objet:
properties:
boutique:
description: Boutique ou fournisseur
type: string
caracteristiques:
additionalProperties: true
description: Caracteristiques personnalisees
type: object
created_at:
description: Date de creation
type: string
date_achat:
description: Date d'achat
type: string
description:
description: Description libre
type: string
edges:
allOf:
- $ref: '#/definitions/ent.ObjetEdges'
description: |-
Edges holds the relations/edges for other nodes in the graph.
The values are being populated by the ObjetQuery when eager-loading is set.
fabricant:
description: Fabricant
type: string
id:
description: |-
ID of the ent.
Identifiant unique de l'objet
type: string
nom:
description: Nom de l'objet
type: string
numero_modele:
description: Numero de modele
type: string
numero_serie:
description: Numero de serie
type: string
prix_achat:
description: Prix d'achat
type: number
quantite:
description: Quantite en stock
type: integer
statut:
allOf:
- $ref: '#/definitions/objet.Statut'
description: Statut de l'objet
updated_at:
description: Date de derniere mise a jour
type: string
type: object
ent.ObjetEdges:
properties:
champs_personnalises:
description: ChampsPersonnalises holds the value of the champs_personnalises
edge.
items:
$ref: '#/definitions/ent.ChampPersonnalise'
type: array
liens_emplacements:
description: LiensEmplacements holds the value of the liens_emplacements edge.
items:
$ref: '#/definitions/ent.LienObjetEmplacement'
type: array
pieces_jointes:
description: PiecesJointes holds the value of the pieces_jointes edge.
items:
$ref: '#/definitions/ent.PieceJointe'
type: array
type: object
ent.PieceJointe:
properties:
categorie:
allOf:
- $ref: '#/definitions/piecejointe.Categorie'
description: Categorie de la piece jointe
chemin:
description: Chemin de stockage
type: string
created_at:
description: Date de creation
type: string
edges:
allOf:
- $ref: '#/definitions/ent.PieceJointeEdges'
description: |-
Edges holds the relations/edges for other nodes in the graph.
The values are being populated by the PieceJointeQuery when eager-loading is set.
est_principale:
description: Piece jointe principale
type: boolean
id:
description: |-
ID of the ent.
Identifiant unique de la piece jointe
type: string
nom_fichier:
description: Nom du fichier
type: string
objet_id:
description: Identifiant de l'objet
type: string
type_mime:
description: Type MIME
type: string
updated_at:
description: Date de derniere mise a jour
type: string
type: object
ent.PieceJointeEdges:
properties:
objet:
allOf:
- $ref: '#/definitions/ent.Objet'
description: Objet holds the value of the objet edge.
type: object
handlers.categorieRequest:
properties:
icone:
type: string
nom:
type: string
parent_id:
type: string
slug:
type: string
type: object
handlers.champPersonnaliseRequest:
properties:
nom_champ:
type: string
type_champ:
type: string
unite:
type: string
valeur:
type: string
type: object
handlers.emplacementRequest:
properties:
icone:
type: string
meuble:
type: string
nom:
type: string
numero_boite:
type: string
parent_id:
type: string
piece:
type: string
slug:
type: string
type: object
handlers.lienObjetEmplacementRequest:
properties:
emplacement_id:
type: string
type:
type: string
type: object
handlers.lienObjetEmplacementUpdateRequest:
properties:
emplacement_id:
type: string
type:
type: string
type: object
handlers.objetRequest:
properties:
boutique:
type: string
caracteristiques:
additionalProperties: {}
type: object
date_achat:
type: string
description:
type: string
fabricant:
type: string
nom:
type: string
numero_modele:
type: string
numero_serie:
type: string
prix_achat:
type: number
quantite:
type: integer
statut:
type: string
type: object
lienobjetemplacement.Type:
enum:
- stocke
- stocke
- utilise_dans
type: string
x-enum-varnames:
- DefaultType
- TypeStocke
- TypeUtiliseDans
objet.Statut:
enum:
- en_stock
- en_stock
- pret
- hors_service
- archive
type: string
x-enum-varnames:
- DefaultStatut
- StatutEnStock
- StatutPret
- StatutHorsService
- StatutArchive
piecejointe.Categorie:
enum:
- image
- image
- pdf_notice
- markdown_tuto
type: string
x-enum-varnames:
- DefaultCategorie
- CategorieImage
- CategoriePdfNotice
- CategorieMarkdownTuto
info:
contact: {}
description: API MatosBox pour la gestion d'inventaire.
title: MatosBox API
version: 0.1.0
paths:
/categories:
get:
parameters:
- description: Page
in: query
name: page
type: integer
- description: Limite
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Lister les categories
tags:
- Categories
post:
consumes:
- application/json
parameters:
- description: Categorie a creer
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.categorieRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/ent.Categorie'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Creer une categorie
tags:
- Categories
/categories/{id}:
delete:
parameters:
- description: ID categorie
in: path
name: id
required: true
type: string
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Supprimer une categorie
tags:
- Categories
get:
parameters:
- description: ID categorie
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ent.Categorie'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Recuperer une categorie
tags:
- Categories
put:
consumes:
- application/json
parameters:
- description: ID categorie
in: path
name: id
required: true
type: string
- description: Categorie a mettre a jour
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.categorieRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ent.Categorie'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Mettre a jour une categorie
tags:
- Categories
/champs_personnalises/{id}:
delete:
parameters:
- description: ID champ
in: path
name: id
required: true
type: string
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Supprimer un champ personnalise
tags:
- ChampsPersonnalises
put:
consumes:
- application/json
parameters:
- description: ID champ
in: path
name: id
required: true
type: string
- description: Champ personnalise
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.champPersonnaliseRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ent.ChampPersonnalise'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Mettre a jour un champ personnalise
tags:
- ChampsPersonnalises
/emplacements:
get:
parameters:
- description: Page
in: query
name: page
type: integer
- description: Limite
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Lister les emplacements
tags:
- Emplacements
post:
consumes:
- application/json
parameters:
- description: Emplacement a creer
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.emplacementRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/ent.Emplacement'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Creer un emplacement
tags:
- Emplacements
/emplacements/{id}:
delete:
parameters:
- description: ID emplacement
in: path
name: id
required: true
type: string
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Supprimer un emplacement
tags:
- Emplacements
get:
parameters:
- description: ID emplacement
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ent.Emplacement'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Recuperer un emplacement
tags:
- Emplacements
put:
consumes:
- application/json
parameters:
- description: ID emplacement
in: path
name: id
required: true
type: string
- description: Emplacement a mettre a jour
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.emplacementRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ent.Emplacement'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Mettre a jour un emplacement
tags:
- Emplacements
/liens_emplacements/{id}:
delete:
parameters:
- description: ID lien
in: path
name: id
required: true
type: string
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Supprimer un lien objet/emplacement
tags:
- LiensEmplacements
put:
consumes:
- application/json
parameters:
- description: ID lien
in: path
name: id
required: true
type: string
- description: Mise a jour
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.lienObjetEmplacementUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ent.LienObjetEmplacement'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"409":
description: Conflict
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Mettre a jour un lien objet/emplacement
tags:
- LiensEmplacements
/objets:
get:
parameters:
- description: Page
in: query
name: page
type: integer
- description: Limite
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Lister les objets
tags:
- Objets
post:
consumes:
- application/json
parameters:
- description: Objet a creer
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.objetRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/ent.Objet'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Creer un objet
tags:
- Objets
/objets/{id}:
delete:
parameters:
- description: ID objet
in: path
name: id
required: true
type: string
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Supprimer un objet
tags:
- Objets
get:
parameters:
- description: ID objet
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ent.Objet'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Recuperer un objet
tags:
- Objets
put:
consumes:
- application/json
parameters:
- description: ID objet
in: path
name: id
required: true
type: string
- description: Objet a mettre a jour
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.objetRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ent.Objet'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Mettre a jour un objet
tags:
- Objets
/objets/{id}/champs_personnalises:
get:
parameters:
- description: ID objet
in: path
name: id
required: true
type: string
- description: Page
in: query
name: page
type: integer
- description: Limite
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Lister les champs personnalises
tags:
- ChampsPersonnalises
post:
consumes:
- application/json
parameters:
- description: ID objet
in: path
name: id
required: true
type: string
- description: Champ personnalise
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.champPersonnaliseRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/ent.ChampPersonnalise'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Creer un champ personnalise
tags:
- ChampsPersonnalises
/objets/{id}/liens_emplacements:
get:
parameters:
- description: ID objet
in: path
name: id
required: true
type: string
- description: Page
in: query
name: page
type: integer
- description: Limite
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Lister les liens objet/emplacement
tags:
- LiensEmplacements
post:
consumes:
- application/json
parameters:
- description: ID objet
in: path
name: id
required: true
type: string
- description: Lien
in: body
name: body
required: true
schema:
$ref: '#/definitions/handlers.lienObjetEmplacementRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/ent.LienObjetEmplacement'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"409":
description: Conflict
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Creer un lien objet/emplacement
tags:
- LiensEmplacements
/objets/{id}/pieces_jointes:
get:
parameters:
- description: ID objet
in: path
name: id
required: true
type: string
- description: Page
in: query
name: page
type: integer
- description: Limite
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Lister les pieces jointes
tags:
- PiecesJointes
post:
consumes:
- multipart/form-data
parameters:
- description: ID objet
in: path
name: id
required: true
type: string
- description: Fichiers (multi)
in: formData
name: fichiers
required: true
type: file
produces:
- application/json
responses:
"201":
description: Created
schema:
additionalProperties: true
type: object
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"413":
description: Request Entity Too Large
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Uploader des pieces jointes
tags:
- PiecesJointes
/pieces_jointes/{id}:
delete:
parameters:
- description: ID piece jointe
in: path
name: id
required: true
type: string
responses:
"204":
description: No Content
schema:
type: string
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Supprimer une piece jointe
tags:
- PiecesJointes
/pieces_jointes/{id}/principale:
put:
parameters:
- description: ID piece jointe
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ent.PieceJointe'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
"500":
description: Internal Server Error
schema:
additionalProperties:
type: string
type: object
summary: Definir la piece jointe principale
tags:
- PiecesJointes
swagger: "2.0"