2024-09-12 22:01:00 +00:00
|
|
|
openapi: 3.0.0
|
|
|
|
info:
|
|
|
|
title: Project Management API
|
|
|
|
description: An API for Managing Internal tools
|
|
|
|
version: 1.0.0
|
|
|
|
servers:
|
|
|
|
- url: /api/v1
|
2024-09-27 10:17:17 +00:00
|
|
|
security:
|
|
|
|
- JWTAuth: []
|
2024-09-12 22:01:00 +00:00
|
|
|
|
|
|
|
components:
|
2024-09-27 10:17:17 +00:00
|
|
|
securitySchemes:
|
|
|
|
JWTAuth:
|
|
|
|
type: http
|
|
|
|
scheme: bearer
|
|
|
|
bearerFormat: JWT
|
2024-10-02 06:48:15 +00:00
|
|
|
schemas:
|
|
|
|
ProjectInfo:
|
2024-09-12 22:01:00 +00:00
|
|
|
type: object
|
2024-10-02 06:48:15 +00:00
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
name:
|
2024-09-12 22:01:00 +00:00
|
|
|
type: string
|
2024-10-02 06:48:15 +00:00
|
|
|
GetAllProjectsDTO:
|
|
|
|
type: array
|
|
|
|
items:
|
|
|
|
$ref: "#/components/schemas/ProjectInfo"
|
2024-10-07 13:53:26 +00:00
|
|
|
CreateProjectDTO:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
goal:
|
|
|
|
type: string
|
|
|
|
customerId:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
administratorId:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
start:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
plannedEnd:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
CreatedProjectDTO:
|
|
|
|
type: object
|
|
|
|
properties:
|
|
|
|
id:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
name:
|
|
|
|
type: string
|
|
|
|
goal:
|
|
|
|
type: string
|
|
|
|
customerId:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
administratorId:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
start:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
|
|
|
plannedEnd:
|
|
|
|
type: string
|
|
|
|
format: date-time
|
2024-09-12 22:01:00 +00:00
|
|
|
responses:
|
2024-10-07 13:53:26 +00:00
|
|
|
Unauthorized:
|
|
|
|
description: "Unauthorized"
|
|
|
|
NotFound:
|
|
|
|
description: "Not Found"
|
|
|
|
content:
|
|
|
|
text/plain:
|
|
|
|
schema:
|
|
|
|
type: string
|
2024-10-07 13:54:06 +00:00
|
|
|
Conflict:
|
|
|
|
description: "Conflict"
|
|
|
|
content:
|
|
|
|
text/plain:
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
UnprocessableContent:
|
|
|
|
description: "Unprocessable Content"
|
|
|
|
content:
|
|
|
|
text/plain:
|
|
|
|
schema:
|
|
|
|
type: string
|
2024-09-12 22:01:00 +00:00
|
|
|
InternalError:
|
|
|
|
description: "Internal Server Error"
|
|
|
|
content:
|
|
|
|
text/plain:
|
|
|
|
schema:
|
|
|
|
type: string
|
2024-10-07 13:54:06 +00:00
|
|
|
ServiceUnavailable:
|
|
|
|
description: "Service Unavailable"
|
|
|
|
content:
|
|
|
|
text/plain:
|
|
|
|
schema:
|
|
|
|
type: string
|
2024-09-12 22:01:00 +00:00
|
|
|
paths:
|
2024-10-02 06:48:15 +00:00
|
|
|
/project:
|
2024-09-12 22:01:00 +00:00
|
|
|
get:
|
2024-10-02 06:48:15 +00:00
|
|
|
operationId: "getAllProjects"
|
|
|
|
description: "Get a List of all Projects"
|
2024-09-12 22:01:00 +00:00
|
|
|
responses:
|
|
|
|
200:
|
2024-10-02 08:02:10 +00:00
|
|
|
description: "Returns a List of all Projects"
|
2024-09-12 22:01:00 +00:00
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
2024-10-02 06:48:15 +00:00
|
|
|
$ref: "#/components/schemas/GetAllProjectsDTO"
|
|
|
|
401:
|
2024-10-07 13:53:26 +00:00
|
|
|
$ref: "#/components/responses/Unauthorized"
|
|
|
|
500:
|
|
|
|
$ref: "#/components/responses/InternalError"
|
|
|
|
post:
|
|
|
|
operationId: "CreateProject"
|
|
|
|
description: "Creates a new Project"
|
|
|
|
requestBody:
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/CreateProjectDTO"
|
|
|
|
responses:
|
|
|
|
201:
|
|
|
|
description: "Project created successfully"
|
|
|
|
content:
|
|
|
|
application/json:
|
|
|
|
schema:
|
|
|
|
$ref: "#/components/schemas/CreatedProjectDTO"
|
|
|
|
401:
|
|
|
|
$ref: "#/components/responses/Unauthorized"
|
|
|
|
404:
|
|
|
|
$ref: "#/components/responses/NotFound"
|
2024-10-07 13:54:06 +00:00
|
|
|
409:
|
|
|
|
$ref: "#/components/responses/Conflict"
|
|
|
|
422:
|
|
|
|
$ref: "#/components/responses/UnprocessableContent"
|
2024-09-12 22:01:00 +00:00
|
|
|
500:
|
2024-10-09 08:49:49 +00:00
|
|
|
$ref: "#/components/responses/InternalError"
|
2024-10-07 13:54:06 +00:00
|
|
|
503:
|
|
|
|
$ref: "#/components/responses/ServiceUnavailable"
|
|
|
|
|
|
|
|
|
2024-10-09 08:49:49 +00:00
|
|
|
/project/{id}:
|
|
|
|
delete:
|
|
|
|
operationId: "deleteProject"
|
|
|
|
description: "Delete a specific Project"
|
|
|
|
parameters:
|
|
|
|
- in: path
|
|
|
|
name: id
|
|
|
|
schema:
|
|
|
|
type: integer
|
|
|
|
format: int64
|
|
|
|
required: true
|
|
|
|
responses:
|
|
|
|
204:
|
|
|
|
description: "Deletes a specific Project"
|
|
|
|
401:
|
2024-10-07 13:54:06 +00:00
|
|
|
$ref: "#/components/responses/Unauthorized"
|
2024-10-09 08:49:49 +00:00
|
|
|
404:
|
|
|
|
description: "Project not found"
|
|
|
|
content:
|
|
|
|
text/plain:
|
|
|
|
schema:
|
|
|
|
type: string
|
|
|
|
500:
|
|
|
|
$ref: "#/components/responses/InternalError"
|
|
|
|
|
2024-10-16 13:02:56 +00:00
|
|
|
/project/{id}/employee/{employeeId}:
|
|
|
|
post:
|
|
|
|
operationId: "addEmployee"
|
|
|
|
description: "Adds an employee to a specific Project"
|
|
|
|
parameters:
|
|
|
|
- in: path
|
|
|
|
name: id
|
|
|
|
responses:
|
|
|
|
204:
|
|
|
|
description: "Employee successfully added to the specific Project"
|
|
|
|
409:
|
|
|
|
$ref: "#/components/responses/Conflict"
|
|
|
|
404:
|
|
|
|
$ref: "#/components/responses/NotFound"
|
|
|
|
|