4481 lines
167 KiB
JSON
4481 lines
167 KiB
JSON
{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"description": "This is a simple time tracker API.",
|
|
"title": "Time Tracker API",
|
|
"contact": {},
|
|
"version": "1.0"
|
|
},
|
|
"host": "localhost:8080",
|
|
"basePath": "/api",
|
|
"paths": {
|
|
"/": {
|
|
"get": {
|
|
"description": "Get a hello message",
|
|
"produces": [
|
|
"text/plain"
|
|
],
|
|
"summary": "Say hello",
|
|
"operationId": "hello",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Hello from the Time Tracker Backend!",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/activities": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of all activities",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"activities"
|
|
],
|
|
"summary": "Get all activities",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.ActivityDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Create a new activity",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"activities"
|
|
],
|
|
"summary": "Create a new activity",
|
|
"parameters": [
|
|
{
|
|
"description": "Activity data",
|
|
"name": "activity",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ActivityCreateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.ActivityDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/activities/{id}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get an activity by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"activities"
|
|
],
|
|
"summary": "Get activity by ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Activity ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.ActivityDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Update an existing activity",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"activities"
|
|
],
|
|
"summary": "Update an activity",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Activity ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "Activity data",
|
|
"name": "activity",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ActivityUpdateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.ActivityDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Delete an activity by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"activities"
|
|
],
|
|
"summary": "Delete an activity",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Activity ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"schema": {
|
|
"$ref": "#/definitions/utils.Response"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/auth/login": {
|
|
"post": {
|
|
"description": "Authenticate a user and get a JWT token",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Login",
|
|
"parameters": [
|
|
{
|
|
"description": "Login credentials",
|
|
"name": "credentials",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.LoginDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.TokenDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/auth/me": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get the currently authenticated user",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"auth"
|
|
],
|
|
"summary": "Get current user",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.UserDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/companies": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of all companies",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"companies"
|
|
],
|
|
"summary": "Get all companies",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.CompanyDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Create a new company",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"companies"
|
|
],
|
|
"summary": "Create a new company",
|
|
"parameters": [
|
|
{
|
|
"description": "Company data",
|
|
"name": "company",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.CompanyCreateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.CompanyDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/companies/{id}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a company by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"companies"
|
|
],
|
|
"summary": "Get company by ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Company ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.CompanyDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Update an existing company",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"companies"
|
|
],
|
|
"summary": "Update a company",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Company ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "Company data",
|
|
"name": "company",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.CompanyUpdateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.CompanyDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Delete a company by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"companies"
|
|
],
|
|
"summary": "Delete a company",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Company ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"schema": {
|
|
"$ref": "#/definitions/utils.Response"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/customers": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of all customers",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"customers"
|
|
],
|
|
"summary": "Get all customers",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.CustomerDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Create a new customer",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"customers"
|
|
],
|
|
"summary": "Create a new customer",
|
|
"parameters": [
|
|
{
|
|
"description": "Customer data",
|
|
"name": "customer",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.CustomerCreateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.CustomerDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/customers/company/{companyId}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of customers for a specific company",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"customers"
|
|
],
|
|
"summary": "Get customers by company ID",
|
|
"parameters": [
|
|
{
|
|
"type": "integer",
|
|
"description": "Company ID",
|
|
"name": "companyId",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.CustomerDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/customers/{id}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a customer by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"customers"
|
|
],
|
|
"summary": "Get customer by ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Customer ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.CustomerDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Update an existing customer",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"customers"
|
|
],
|
|
"summary": "Update a customer",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Customer ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "Customer data",
|
|
"name": "customer",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.CustomerUpdateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.CustomerDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Delete a customer by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"customers"
|
|
],
|
|
"summary": "Delete a customer",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Customer ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"schema": {
|
|
"$ref": "#/definitions/utils.Response"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/projects": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of all projects",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"projects"
|
|
],
|
|
"summary": "Get all projects",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.ProjectDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Create a new project",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"projects"
|
|
],
|
|
"summary": "Create a new project",
|
|
"parameters": [
|
|
{
|
|
"description": "Project data",
|
|
"name": "project",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ProjectCreateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.ProjectDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/projects/customer/{customerId}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of projects for a specific customer",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"projects"
|
|
],
|
|
"summary": "Get projects by customer ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Customer ID",
|
|
"name": "customerId",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.ProjectDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/projects/with-customers": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of all projects with their associated customer information",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"projects"
|
|
],
|
|
"summary": "Get all projects with customer information",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.ProjectDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/projects/{id}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a project by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"projects"
|
|
],
|
|
"summary": "Get project by ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Project ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.ProjectDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Update an existing project",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"projects"
|
|
],
|
|
"summary": "Update a project",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Project ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "Project data",
|
|
"name": "project",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ProjectUpdateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.ProjectDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Delete a project by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"projects"
|
|
],
|
|
"summary": "Delete a project",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Project ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"schema": {
|
|
"$ref": "#/definitions/utils.Response"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/time-entries": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of all time entries",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"time-entries"
|
|
],
|
|
"summary": "Get all time entries",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.TimeEntryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Create a new time entry",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"time-entries"
|
|
],
|
|
"summary": "Create a new time entry",
|
|
"parameters": [
|
|
{
|
|
"description": "Time Entry data",
|
|
"name": "timeEntry",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.TimeEntryCreateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.TimeEntryDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/time-entries/me": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of time entries for the currently authenticated user",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"time-entries"
|
|
],
|
|
"summary": "Get current user's time entries",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.TimeEntryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/time-entries/project/{projectId}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of time entries for a specific project",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"time-entries"
|
|
],
|
|
"summary": "Get time entries by project ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Project ID",
|
|
"name": "projectId",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.TimeEntryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/time-entries/range": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of time entries within a specific date range",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"time-entries"
|
|
],
|
|
"summary": "Get time entries by date range",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Start date (ISO 8601 format)",
|
|
"name": "start",
|
|
"in": "query",
|
|
"required": true
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "End date (ISO 8601 format)",
|
|
"name": "end",
|
|
"in": "query",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.TimeEntryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/time-entries/user/{userId}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of time entries for a specific user",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"time-entries"
|
|
],
|
|
"summary": "Get time entries by user ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "User ID",
|
|
"name": "userId",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.TimeEntryDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/time-entries/{id}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a time entry by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"time-entries"
|
|
],
|
|
"summary": "Get time entry by ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Time Entry ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.TimeEntryDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Update an existing time entry",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"time-entries"
|
|
],
|
|
"summary": "Update a time entry",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Time Entry ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "Time Entry data",
|
|
"name": "timeEntry",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.TimeEntryUpdateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.TimeEntryDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Delete a time entry by its ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"time-entries"
|
|
],
|
|
"summary": "Delete a time entry",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Time Entry ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"schema": {
|
|
"$ref": "#/definitions/utils.Response"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/users": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a list of all users",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Get all users",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.UserDto"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Create a new user",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Create a new user",
|
|
"parameters": [
|
|
{
|
|
"description": "User data",
|
|
"name": "user",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.UserCreateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Created",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.UserDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/users/{id}": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Get a user by their ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Get user by ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "User ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.UserDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Update an existing user",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Update a user",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "User ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "User data",
|
|
"name": "user",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.UserUpdateDto"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.UserDto"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Not Found",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "Delete a user by their ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"users"
|
|
],
|
|
"summary": "Delete a user",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "User ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content",
|
|
"schema": {
|
|
"$ref": "#/definitions/utils.Response"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/utils.Response"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"dto.ActivityCreateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"billingRate": {
|
|
"type": "number"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.ActivityDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"billingRate": {
|
|
"type": "number"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.ActivityUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"billingRate": {
|
|
"type": "number"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.CompanyCreateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.CompanyDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.CompanyUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.CustomerCreateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"companyId": {
|
|
"type": "integer"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.CustomerDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"companyId": {
|
|
"type": "integer"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.CustomerUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"companyId": {
|
|
"type": "integer"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.LoginDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.ProjectCreateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"customerId": {
|
|
"type": "integer"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.ProjectDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"customerId": {
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.ProjectUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"customerId": {
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.TimeEntryCreateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"activityId": {
|
|
"type": "integer"
|
|
},
|
|
"billable": {
|
|
"description": "Percentage (0-100)",
|
|
"type": "integer"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"end": {
|
|
"type": "string"
|
|
},
|
|
"projectId": {
|
|
"type": "integer"
|
|
},
|
|
"start": {
|
|
"type": "string"
|
|
},
|
|
"userId": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"dto.TimeEntryDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"activityId": {
|
|
"type": "integer"
|
|
},
|
|
"billable": {
|
|
"description": "Percentage (0-100)",
|
|
"type": "integer"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"end": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"projectId": {
|
|
"type": "integer"
|
|
},
|
|
"start": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
},
|
|
"userId": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"dto.TimeEntryUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"activityId": {
|
|
"type": "integer"
|
|
},
|
|
"billable": {
|
|
"description": "Percentage (0-100)",
|
|
"type": "integer"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"end": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"projectId": {
|
|
"type": "integer"
|
|
},
|
|
"start": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
},
|
|
"userId": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"dto.TokenDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"$ref": "#/definitions/dto.UserDto"
|
|
}
|
|
}
|
|
},
|
|
"dto.UserCreateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"companyId": {
|
|
"type": "integer"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"hourlyRate": {
|
|
"type": "number"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.UserDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"companyId": {
|
|
"type": "integer"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"hourlyRate": {
|
|
"type": "number"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.UserUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"companyId": {
|
|
"type": "integer"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"hourlyRate": {
|
|
"type": "number"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"lastEditorID": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"utils.ErrorInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"utils.Response": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {},
|
|
"error": {
|
|
"$ref": "#/definitions/utils.ErrorInfo"
|
|
},
|
|
"success": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"securityDefinitions": {
|
|
"BearerAuth": {
|
|
"type": "apiKey",
|
|
"name": "Authorization",
|
|
"in": "header"
|
|
}
|
|
}
|
|
} |