API/.insomnia/ApiSpec/spc_df2177e61a724e24bc4fc1796d631d51.yml
Sebastian H. Gabrielli 13f0c6df6c yes
2023-12-25 17:59:19 +01:00

891 lines
14 KiB
YAML
Executable File

_id: spc_df2177e61a724e24bc4fc1796d631d51
type: ApiSpec
parentId: wrk_0627d19078e64bb7877a6c1703c0fab8
modified: 1703520317303
created: 1703261567280
fileName: member-spec-sample.yaml
contents: "openapi: 3.0.0
info:
\ description: \"This is a sample/Proof of concept OmegaV v2 server API
specification.\"
\ version: 0.0.1
\ title: OmegaV v2 API demo
\ contact:
\ email: edb@omegav.no
\ license:
\ name: Apache 2.0
\ url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
\ - url: \"api.omegav.no\"
\ description: \"OmegaV API server\"
\ - url: \"http://127.0.0.1:8000\"
\ description: \"Local test\"
tags:
\ - name: member
\ description: \"Operations about a member\"
paths:
\ /members:
\ get:
\ tags:
\ - member
\ summary: \"Get a list of all members\"
\ description: \"Get a list of all members\"
\ operationId: getMembers
\ responses:
\ '200':
\ description: \"Success\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/members'
\ /member:
\ post:
\ tags:
\ - member
\ summary: \"Add a new member\"
\ description: \"Add a new member\"
\ operationId: addMember
\ requestBody:
\ description: \"Create a new member\"
\ content:
\ application/json:
\ schema:
\ $ref: \"#/components/schemas/minimalMemberWithoutId\"
\ required: true
\ responses:
\ '200':
\ description: \"Success\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/minimalMember'
\ \
\ /member/{memberId}:
\ get:
\ tags:
\ - member
\ summary: \"Get a member\"
\ description: \"Get a single member\"
\ operationId: getMember
\ parameters:
\ - name: memberId
\ in: path
\ description: \"ID of the user's who's balance will be fetched\"
\ required: true
\ schema:
\ type: integer
\ format: uint64
\ responses:
\ '200':
\ description: \"Success\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/member'
\ '404':
\ description: \"Member not found\"
\ \
\ put:
\ tags:
\ - member
\ summary: \"Update a member's details\"
\ description: \"Update a member's details\"
\ operationId: updateMember
\ parameters:
\ - name: memberId
\ in: path
\ description: \"ID of the user's who's info that will be updated\"
\ required: true
\ schema:
\ type: integer
\ format: uint64
\ requestBody:
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/minimalMemberWithoutId'
\ responses:
\ '200':
\ description: \"Success\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/member'
\ '404':
\ description: \"Member not found\"
\ \
\ \
\ \
\ /member/{memberId}/balance:
\ get:
\ tags:
\ - member
\ summary: \"Get a member's balance\"
\ description: \"Get a member's balance\"
\ operationId: getBalance
\ parameters:
\ - name: memberId
\ in: path
\ description: \"ID of the user's who's balance will be fetched\"
\ required: true
\ schema:
\ type: integer
\ format: uint64
\ \
\ responses:
\ '200':
\ description: \"Success\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/balance'
\ '404':
\ description: \"Member not found\"
\ \
\ put:
\ tags:
\ - member
\ summary: \"Change a member's balance\"
\ description: \"Add to a member's balance\"
\ operationId: putBalance
\ parameters:
\ - name: memberId
\ in: path
\ description: \"ID of the user's who's balance will be added to\"
\ required: true
\ schema:
\ type: integer
\ format: uint64
\ requestBody:
\ description: \"The values to be added to the member's balance\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/balance'
\ \
\ responses:
\ '200':
\ description: \"Success, returnes the new balance\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/balance'
\ '400':
\ description: \"Malformed request\"
\ '404':
\ description: \"Member not found\"
\ \
\ /member/{memberId}/imagePreference:
\ get:
\ tags:
\ - member
\ summary: \"Get a member's image preference\"
\ description: \"Get a member's image preference\"
\ operationId: getImagePreference
\ parameters:
\ - name: memberId
\ in: path
\ description: \"ID of the user's who's info will be fetched\"
\ required: true
\ schema:
\ type: integer
\ format: uint64
\ \
\ responses:
\ '200':
\ description: \"Success\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/imagePreference'
\ '404':
\ description: \"Member not found\"
\ \
\ put:
\ tags:
\ - member
\ summary: \"Change a member's image preference\"
\ description: \"Add to a member's image preference\"
\ operationId: changeImagePreference
\ parameters:
\ - name: memberId
\ in: path
\ description: \"ID of the user's who's info will be changed\"
\ required: true
\ schema:
\ type: integer
\ format: uint64
\ requestBody:
\ description: \"The image preference to set for the member\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/imagePreference'
\ \
\ responses:
\ '200':
\ description: \"Success, returnes the new image preference\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/imagePreference'
\ '400':
\ description: \"Malformed request\"
\ '404':
\ description: \"Member not found\"
\ \
\ /member/{memberId}/rfid:
\ get:
\ tags:
\ - member
\ summary: \"Get a member's RFID cards\"
\ description: \"Get all of a member's RFID cards\"
\ operationId: getRfids
\ parameters:
\ - name: memberId
\ in: path
\ description: \"ID of the user's who's info will be fetched\"
\ required: true
\ schema:
\ type: integer
\ format: uint64
\ \
\ responses:
\ '200':
\ description: \"Success\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/rfidCards'
\ '404':
\ description: \"Member not found\"
\ \
\ post:
\ tags:
\ - member
\ summary: \"Add RFID card\"
\ description: \"Add an RFID card to a member\"
\ operationId: addRfid
\ parameters:
\ - name: memberId
\ in: path
\ description: \"ID of the user's who's info will be added to\"
\ required: true
\ schema:
\ type: integer
\ format: uint64
\ requestBody:
\ description: \"Info about the RFID card to add\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/rfidCard'
\ \
\ responses:
\ '200':
\ description: \"Success, returns the new RFID card info\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/rfidCard'
\ '400':
\ description: \"Malformed request\"
\ '404':
\ description: \"Member not found\"
\ \
components:
\ schemas:
\ members:
\ type: object
\ description: \"An array containing multimple `member` objects\"
\ properties:
\ members:
\ type: array
\ items:
\ $ref: '#/components/schemas/member'
\\
\ minimalMemberWithoutId:
\ type: object
\ description: \"The minimal values needed to create a member\"
\ properties:
\ ntnuUsername:
\ type: string
\ description: \"The NTNU username of the member\"
\ example: \"sebasthg\"
\ firstName:
\ type: string
\ description: \"First name of the member\"
\ example: \"Sebastian\"
\ lastName:
\ type: string
\ description: \"Last name of the member\"
\ example: \"Gabrielli\"
\ email:
\ type: string
\ description: \"The member's non-ntnu e-mail\"
\ example: \"sebastian@fastmail.mx\"
\ \
\ \
\ minimalMember:
\ type: object
\ description: \"The minimal values returned when createing a member\"
\ properties:
\ id:
\ type: integer
\ description: \"The internal member ID of the user\"
\ format: uint64
\ example: 1337
\ ntnuUsername:
\ type: string
\ description: \"The NTNU username of the member\"
\ example: \"sebasthg\"
\ firstName:
\ type: string
\ description: \"First name of the member\"
\ example: \"Sebastian\"
\ lastName:
\ type: string
\ description: \"Last name of the member\"
\ example: \"Gabrielli\"
\ email:
\ type: string
\ description: \"The member's non-ntnu e-mail\"
\ example: \"sebastian@fastmail.mx\"
\ \
\ member:
\ type: object
\ description: \"A collection of all the values associated with a
member\"
\ properties:
\ id:
\ type: integer
\ description: \"The internal member ID of the user\"
\ format: uint64
\ example: 1337
\ ntnuUsername:
\ type: string
\ description: \"The NTNU username of the member\"
\ example: \"sebasthg\"
\ firstName:
\ type: string
\ description: \"First name of the member\"
\ example: \"Sebastian\"
\ lastName:
\ type: string
\ description: \"Last name of the member\"
\ example: \"Gabrielli\"
\ email:
\ type: string
\ description: \"The member's non-ntnu e-mail\"
\ example: \"sebastian@fastmail.mx\"
\ balance:
\ type: integer
\ description: \"The balance on the member's OBS account\"
\ format: int64
\ example: 1337
\ imagePreference:
\ type: string
\ description: \"The image series shown upon an OBS purchase\"
\ example: \"Sexy stallman\"
\ enum:
\ - \"Sexy stallman\"
\ - \"Propaganda\"
\ - \"Money\"
\ rfidCards:
\ type: array
\ items:
\ $ref: '#/components/schemas/rfidCard' \
\ rfidCards:
\ type: object
\ description: \"An array of rfidCard objects\"
\ properties:
\ rfidCards:
\ type: array
\ items:
\ $ref: '#/components/schemas/rfidCard'
\ rfidCard:
\ type: object
\ description: \"An RFID card\"
\ properties:
\ cardId:
\ type: string
\ example: \"0364249683\"
\ cardComment:
\ type: string
\ example: \"Studentkort\"
\ \
\ imagePreference:
\ type: object
\ description: \"A member's image preference\"
\ properties:
\ imagePreference:
\ type: string
\ description: \"The image series shown upon an OBS purchase\"
\ example: \"Sexy stallman\"
\ enum:
\ - \"Sexy stallman\"
\ - \"Propaganda\"
\ - \"Money\"
\ \
\ balance:
\ type: object
\ description: \"A member's balance\"
\ properties:
\ balance:
\ type: integer
\ format: int64
\ example: 1337
\ \
\ requestBodies:
\ minimalMember:
\ description: \"Add a member\"
\ content:
\ application/json:
\ schema:
\ $ref: '#/components/schemas/minimalMember'
\ "
contentType: yaml