chore: update env example and fix swagger host port

This commit is contained in:
Tiago Yamamoto 2025-12-15 10:44:28 -03:00
parent 3be9807d88
commit 1caeb72d7c
5 changed files with 989 additions and 885 deletions

View file

@ -6,9 +6,9 @@ DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=yourpassword
DB_NAME=gohorsejobs
DB_SSLMODE=require
DB_SSLMODE=disable
# S3/Object Storage Configuration (S3-compatible)
# S3/Object Storage Configuration (Civo S3-compatible)
AWS_REGION=nyc1
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
@ -23,7 +23,7 @@ PORT=8521
ENV=development
# CORS Origins (comma-separated)
CORS_ORIGINS=http://localhost:8963
CORS_ORIGINS=http://localhost:3000,http://localhost:8963
# File Upload
MAX_UPLOAD_SIZE=10485760

View file

@ -13,7 +13,7 @@ import (
// @title GoHorseJobs API
// @version 1.0
// @description API for GoHorseJobs recruitment platform.
// @host localhost:8080
// @host localhost:8521
// @BasePath /
func main() {
// Load .env file
@ -37,7 +37,7 @@ func main() {
port := os.Getenv("PORT")
if port == "" {
port = "8080"
port = "8521"
}
log.Println("Starting server on :" + port)

View file

@ -37,7 +37,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeResponse"
"$ref": "#/definitions/cloudflare.PurgeResponse"
}
},
"500": {
@ -74,7 +74,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeHostsRequest"
"$ref": "#/definitions/cloudflare.PurgeHostsRequest"
}
}
],
@ -82,7 +82,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeResponse"
"$ref": "#/definitions/cloudflare.PurgeResponse"
}
},
"400": {
@ -125,7 +125,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeTagsRequest"
"$ref": "#/definitions/cloudflare.PurgeTagsRequest"
}
}
],
@ -133,7 +133,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeResponse"
"$ref": "#/definitions/cloudflare.PurgeResponse"
}
},
"400": {
@ -176,7 +176,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeURLsRequest"
"$ref": "#/definitions/cloudflare.PurgeURLsRequest"
}
}
],
@ -184,7 +184,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeResponse"
"$ref": "#/definitions/cloudflare.PurgeResponse"
}
},
"400": {
@ -226,7 +226,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/internal_admin_cloudflare.Zone"
"$ref": "#/definitions/cloudflare.Zone"
}
}
},
@ -271,7 +271,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/internal_admin_cpanel.EmailAccount"
"$ref": "#/definitions/cpanel.EmailAccount"
}
}
},
@ -307,7 +307,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cpanel.CreateEmailRequest"
"$ref": "#/definitions/cpanel.CreateEmailRequest"
}
}
],
@ -420,7 +420,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cpanel.ChangePasswordRequest"
"$ref": "#/definitions/cpanel.ChangePasswordRequest"
}
}
],
@ -481,7 +481,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cpanel.UpdateQuotaRequest"
"$ref": "#/definitions/cpanel.UpdateQuotaRequest"
}
}
],
@ -530,7 +530,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.LoginRequest"
"$ref": "#/definitions/dto.LoginRequest"
}
}
],
@ -538,7 +538,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.AuthResponse"
"$ref": "#/definitions/dto.AuthResponse"
}
},
"400": {
@ -575,7 +575,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CompanyResponse"
"$ref": "#/definitions/dto.CompanyResponse"
}
}
},
@ -606,7 +606,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateCompanyRequest"
"$ref": "#/definitions/dto.CreateCompanyRequest"
}
}
],
@ -614,7 +614,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CompanyResponse"
"$ref": "#/definitions/dto.CompanyResponse"
}
},
"400": {
@ -657,7 +657,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handlers.DownloadURLRequest"
"$ref": "#/definitions/handlers.DownloadURLRequest"
}
}
],
@ -665,7 +665,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_handlers.DownloadURLResponse"
"$ref": "#/definitions/handlers.DownloadURLResponse"
}
},
"400": {
@ -754,7 +754,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handlers.UploadURLRequest"
"$ref": "#/definitions/handlers.UploadURLRequest"
}
}
],
@ -762,7 +762,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_handlers.UploadURLResponse"
"$ref": "#/definitions/handlers.UploadURLResponse"
}
},
"400": {
@ -804,7 +804,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse"
"$ref": "#/definitions/dto.UserResponse"
}
}
},
@ -846,7 +846,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateUserRequest"
"$ref": "#/definitions/dto.CreateUserRequest"
}
}
],
@ -854,7 +854,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse"
"$ref": "#/definitions/dto.UserResponse"
}
},
"400": {
@ -955,7 +955,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application"
"$ref": "#/definitions/models.Application"
}
}
},
@ -992,7 +992,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.CreateApplicationRequest"
"$ref": "#/definitions/dto.CreateApplicationRequest"
}
}
],
@ -1000,7 +1000,7 @@ const docTemplate = `{
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application"
"$ref": "#/definitions/models.Application"
}
},
"400": {
@ -1044,7 +1044,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application"
"$ref": "#/definitions/models.Application"
}
},
"400": {
@ -1089,7 +1089,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.UpdateApplicationStatusRequest"
"$ref": "#/definitions/dto.UpdateApplicationStatusRequest"
}
}
],
@ -1097,7 +1097,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application"
"$ref": "#/definitions/models.Application"
}
},
"400": {
@ -1158,7 +1158,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.PaginatedResponse"
"$ref": "#/definitions/dto.PaginatedResponse"
}
},
"500": {
@ -1188,7 +1188,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.CreateJobRequest"
"$ref": "#/definitions/dto.CreateJobRequest"
}
}
],
@ -1196,7 +1196,7 @@ const docTemplate = `{
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Job"
"$ref": "#/definitions/models.Job"
}
},
"400": {
@ -1240,7 +1240,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Job"
"$ref": "#/definitions/models.Job"
}
},
"400": {
@ -1283,7 +1283,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.UpdateJobRequest"
"$ref": "#/definitions/dto.UpdateJobRequest"
}
}
],
@ -1291,7 +1291,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Job"
"$ref": "#/definitions/models.Job"
}
},
"400": {
@ -1350,18 +1350,162 @@ const docTemplate = `{
}
},
"definitions": {
"github_com_rede5_gohorsejobs_backend_internal_core_dto.AuthResponse": {
"cloudflare.Error": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"message": {
"type": "string"
}
}
},
"cloudflare.PurgeHostsRequest": {
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"cloudflare.PurgeResponse": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"$ref": "#/definitions/cloudflare.Error"
}
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
},
"result": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"success": {
"type": "boolean"
}
}
},
"cloudflare.PurgeTagsRequest": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"cloudflare.PurgeURLsRequest": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"cloudflare.Zone": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
}
}
},
"cpanel.ChangePasswordRequest": {
"type": "object",
"properties": {
"password": {
"type": "string"
}
}
},
"cpanel.CreateEmailRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"quota": {
"description": "MB, 0 = unlimited",
"type": "integer"
}
}
},
"cpanel.EmailAccount": {
"type": "object",
"properties": {
"diskquota": {
"type": "string"
},
"diskused": {
"type": "string"
},
"domain": {
"type": "string"
},
"email": {
"type": "string"
},
"humandiskquota": {
"type": "string"
},
"humandiskused": {
"type": "string"
},
"login": {
"type": "string"
}
}
},
"cpanel.UpdateQuotaRequest": {
"type": "object",
"properties": {
"quota": {
"description": "MB",
"type": "integer"
}
}
},
"dto.AuthResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"user": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse"
"$ref": "#/definitions/dto.UserResponse"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.CompanyResponse": {
"dto.CompanyResponse": {
"type": "object",
"properties": {
"created_at": {
@ -1378,82 +1522,7 @@ const docTemplate = `{
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateCompanyRequest": {
"type": "object",
"properties": {
"admin_email": {
"type": "string"
},
"contact": {
"type": "string"
},
"document": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateUserRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"password": {
"type": "string"
},
"roles": {
"description": "e.g. [\"RECRUITER\"]",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.LoginRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.CreateApplicationRequest": {
"dto.CreateApplicationRequest": {
"type": "object",
"required": [
"jobId"
@ -1492,7 +1561,56 @@ const docTemplate = `{
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.CreateJobRequest": {
"dto.CreateCompanyRequest": {
"type": "object",
"required": [
"name",
"slug"
],
"properties": {
"address": {
"type": "string"
},
"cityId": {
"type": "integer"
},
"description": {
"type": "string"
},
"document": {
"type": "string"
},
"email": {
"type": "string"
},
"logoUrl": {
"type": "string"
},
"name": {
"type": "string",
"maxLength": 255,
"minLength": 3
},
"phone": {
"type": "string"
},
"regionId": {
"type": "integer"
},
"slug": {
"type": "string",
"maxLength": 255,
"minLength": 3
},
"type": {
"type": "string"
},
"website": {
"type": "string"
}
}
},
"dto.CreateJobRequest": {
"type": "object",
"required": [
"companyId",
@ -1571,16 +1689,54 @@ const docTemplate = `{
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.PaginatedResponse": {
"dto.CreateUserRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"password": {
"type": "string"
},
"roles": {
"description": "e.g. [\"RECRUITER\"]",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"dto.LoginRequest": {
"type": "object",
"required": [
"identifier",
"password"
],
"properties": {
"identifier": {
"type": "string",
"minLength": 3
},
"password": {
"type": "string",
"minLength": 8
}
}
},
"dto.PaginatedResponse": {
"type": "object",
"properties": {
"data": {},
"pagination": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.Pagination"
"$ref": "#/definitions/dto.Pagination"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.Pagination": {
"dto.Pagination": {
"type": "object",
"properties": {
"limit": {
@ -1594,7 +1750,7 @@ const docTemplate = `{
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.UpdateApplicationStatusRequest": {
"dto.UpdateApplicationStatusRequest": {
"type": "object",
"required": [
"status"
@ -1615,7 +1771,7 @@ const docTemplate = `{
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.UpdateJobRequest": {
"dto.UpdateJobRequest": {
"type": "object",
"properties": {
"benefits": {
@ -1686,7 +1842,86 @@ const docTemplate = `{
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_models.Application": {
"dto.UserResponse": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
}
}
},
"handlers.DownloadURLRequest": {
"type": "object",
"properties": {
"key": {
"type": "string"
}
}
},
"handlers.DownloadURLResponse": {
"type": "object",
"properties": {
"downloadUrl": {
"type": "string"
},
"expiresIn": {
"description": "seconds",
"type": "integer"
}
}
},
"handlers.UploadURLRequest": {
"type": "object",
"properties": {
"contentType": {
"type": "string"
},
"filename": {
"type": "string"
},
"folder": {
"description": "Optional: logos, resumes, documents",
"type": "string"
}
}
},
"handlers.UploadURLResponse": {
"type": "object",
"properties": {
"expiresIn": {
"description": "seconds",
"type": "integer"
},
"key": {
"type": "string"
},
"publicUrl": {
"type": "string"
},
"uploadUrl": {
"type": "string"
}
}
},
"models.Application": {
"type": "object",
"properties": {
"createdAt": {
@ -1697,7 +1932,7 @@ const docTemplate = `{
"description": "Array of {type, url}",
"allOf": [
{
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.JSONMap"
"$ref": "#/definitions/models.JSONMap"
}
]
},
@ -1746,15 +1981,15 @@ const docTemplate = `{
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_models.JSONMap": {
"models.JSONMap": {
"type": "object",
"additionalProperties": true
},
"github_com_rede5_gohorsejobs_backend_internal_models.Job": {
"models.Job": {
"type": "object",
"properties": {
"benefits": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.JSONMap"
"$ref": "#/definitions/models.JSONMap"
},
"cityId": {
"type": "integer"
@ -1798,7 +2033,7 @@ const docTemplate = `{
"description": "Requirements \u0026 Benefits (JSONB arrays)",
"allOf": [
{
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.JSONMap"
"$ref": "#/definitions/models.JSONMap"
}
]
},
@ -1832,203 +2067,6 @@ const docTemplate = `{
"type": "string"
}
}
},
"internal_admin_cloudflare.Error": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"message": {
"type": "string"
}
}
},
"internal_admin_cloudflare.PurgeHostsRequest": {
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"internal_admin_cloudflare.PurgeResponse": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"$ref": "#/definitions/internal_admin_cloudflare.Error"
}
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
},
"result": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"success": {
"type": "boolean"
}
}
},
"internal_admin_cloudflare.PurgeTagsRequest": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"internal_admin_cloudflare.PurgeURLsRequest": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"internal_admin_cloudflare.Zone": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
}
}
},
"internal_admin_cpanel.ChangePasswordRequest": {
"type": "object",
"properties": {
"password": {
"type": "string"
}
}
},
"internal_admin_cpanel.CreateEmailRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"quota": {
"description": "MB, 0 = unlimited",
"type": "integer"
}
}
},
"internal_admin_cpanel.EmailAccount": {
"type": "object",
"properties": {
"diskquota": {
"type": "string"
},
"diskused": {
"type": "string"
},
"domain": {
"type": "string"
},
"email": {
"type": "string"
},
"humandiskquota": {
"type": "string"
},
"humandiskused": {
"type": "string"
},
"login": {
"type": "string"
}
}
},
"internal_admin_cpanel.UpdateQuotaRequest": {
"type": "object",
"properties": {
"quota": {
"description": "MB",
"type": "integer"
}
}
},
"internal_handlers.DownloadURLRequest": {
"type": "object",
"properties": {
"key": {
"type": "string"
}
}
},
"internal_handlers.DownloadURLResponse": {
"type": "object",
"properties": {
"downloadUrl": {
"type": "string"
},
"expiresIn": {
"description": "seconds",
"type": "integer"
}
}
},
"internal_handlers.UploadURLRequest": {
"type": "object",
"properties": {
"contentType": {
"type": "string"
},
"filename": {
"type": "string"
},
"folder": {
"description": "Optional: logos, resumes, documents",
"type": "string"
}
}
},
"internal_handlers.UploadURLResponse": {
"type": "object",
"properties": {
"expiresIn": {
"description": "seconds",
"type": "integer"
},
"key": {
"type": "string"
},
"publicUrl": {
"type": "string"
},
"uploadUrl": {
"type": "string"
}
}
}
}
}`
@ -2036,7 +2074,7 @@ const docTemplate = `{
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "1.0",
Host: "localhost:8080",
Host: "localhost:8521",
BasePath: "/",
Schemes: []string{},
Title: "GoHorseJobs API",

View file

@ -6,7 +6,7 @@
"contact": {},
"version": "1.0"
},
"host": "localhost:8080",
"host": "localhost:8521",
"basePath": "/",
"paths": {
"/api/v1/admin/cloudflare/cache/purge-all": {
@ -31,7 +31,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeResponse"
"$ref": "#/definitions/cloudflare.PurgeResponse"
}
},
"500": {
@ -68,7 +68,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeHostsRequest"
"$ref": "#/definitions/cloudflare.PurgeHostsRequest"
}
}
],
@ -76,7 +76,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeResponse"
"$ref": "#/definitions/cloudflare.PurgeResponse"
}
},
"400": {
@ -119,7 +119,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeTagsRequest"
"$ref": "#/definitions/cloudflare.PurgeTagsRequest"
}
}
],
@ -127,7 +127,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeResponse"
"$ref": "#/definitions/cloudflare.PurgeResponse"
}
},
"400": {
@ -170,7 +170,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeURLsRequest"
"$ref": "#/definitions/cloudflare.PurgeURLsRequest"
}
}
],
@ -178,7 +178,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_admin_cloudflare.PurgeResponse"
"$ref": "#/definitions/cloudflare.PurgeResponse"
}
},
"400": {
@ -220,7 +220,7 @@
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/internal_admin_cloudflare.Zone"
"$ref": "#/definitions/cloudflare.Zone"
}
}
},
@ -265,7 +265,7 @@
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/internal_admin_cpanel.EmailAccount"
"$ref": "#/definitions/cpanel.EmailAccount"
}
}
},
@ -301,7 +301,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cpanel.CreateEmailRequest"
"$ref": "#/definitions/cpanel.CreateEmailRequest"
}
}
],
@ -414,7 +414,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cpanel.ChangePasswordRequest"
"$ref": "#/definitions/cpanel.ChangePasswordRequest"
}
}
],
@ -475,7 +475,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_admin_cpanel.UpdateQuotaRequest"
"$ref": "#/definitions/cpanel.UpdateQuotaRequest"
}
}
],
@ -524,7 +524,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.LoginRequest"
"$ref": "#/definitions/dto.LoginRequest"
}
}
],
@ -532,7 +532,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.AuthResponse"
"$ref": "#/definitions/dto.AuthResponse"
}
},
"400": {
@ -569,7 +569,7 @@
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CompanyResponse"
"$ref": "#/definitions/dto.CompanyResponse"
}
}
},
@ -600,7 +600,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateCompanyRequest"
"$ref": "#/definitions/dto.CreateCompanyRequest"
}
}
],
@ -608,7 +608,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CompanyResponse"
"$ref": "#/definitions/dto.CompanyResponse"
}
},
"400": {
@ -651,7 +651,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handlers.DownloadURLRequest"
"$ref": "#/definitions/handlers.DownloadURLRequest"
}
}
],
@ -659,7 +659,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_handlers.DownloadURLResponse"
"$ref": "#/definitions/handlers.DownloadURLResponse"
}
},
"400": {
@ -748,7 +748,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handlers.UploadURLRequest"
"$ref": "#/definitions/handlers.UploadURLRequest"
}
}
],
@ -756,7 +756,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_handlers.UploadURLResponse"
"$ref": "#/definitions/handlers.UploadURLResponse"
}
},
"400": {
@ -798,7 +798,7 @@
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse"
"$ref": "#/definitions/dto.UserResponse"
}
}
},
@ -840,7 +840,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateUserRequest"
"$ref": "#/definitions/dto.CreateUserRequest"
}
}
],
@ -848,7 +848,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse"
"$ref": "#/definitions/dto.UserResponse"
}
},
"400": {
@ -949,7 +949,7 @@
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application"
"$ref": "#/definitions/models.Application"
}
}
},
@ -986,7 +986,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.CreateApplicationRequest"
"$ref": "#/definitions/dto.CreateApplicationRequest"
}
}
],
@ -994,7 +994,7 @@
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application"
"$ref": "#/definitions/models.Application"
}
},
"400": {
@ -1038,7 +1038,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application"
"$ref": "#/definitions/models.Application"
}
},
"400": {
@ -1083,7 +1083,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.UpdateApplicationStatusRequest"
"$ref": "#/definitions/dto.UpdateApplicationStatusRequest"
}
}
],
@ -1091,7 +1091,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application"
"$ref": "#/definitions/models.Application"
}
},
"400": {
@ -1152,7 +1152,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.PaginatedResponse"
"$ref": "#/definitions/dto.PaginatedResponse"
}
},
"500": {
@ -1182,7 +1182,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.CreateJobRequest"
"$ref": "#/definitions/dto.CreateJobRequest"
}
}
],
@ -1190,7 +1190,7 @@
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Job"
"$ref": "#/definitions/models.Job"
}
},
"400": {
@ -1234,7 +1234,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Job"
"$ref": "#/definitions/models.Job"
}
},
"400": {
@ -1277,7 +1277,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.UpdateJobRequest"
"$ref": "#/definitions/dto.UpdateJobRequest"
}
}
],
@ -1285,7 +1285,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Job"
"$ref": "#/definitions/models.Job"
}
},
"400": {
@ -1344,18 +1344,162 @@
}
},
"definitions": {
"github_com_rede5_gohorsejobs_backend_internal_core_dto.AuthResponse": {
"cloudflare.Error": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"message": {
"type": "string"
}
}
},
"cloudflare.PurgeHostsRequest": {
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"cloudflare.PurgeResponse": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"$ref": "#/definitions/cloudflare.Error"
}
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
},
"result": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"success": {
"type": "boolean"
}
}
},
"cloudflare.PurgeTagsRequest": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"cloudflare.PurgeURLsRequest": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"cloudflare.Zone": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
}
}
},
"cpanel.ChangePasswordRequest": {
"type": "object",
"properties": {
"password": {
"type": "string"
}
}
},
"cpanel.CreateEmailRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"quota": {
"description": "MB, 0 = unlimited",
"type": "integer"
}
}
},
"cpanel.EmailAccount": {
"type": "object",
"properties": {
"diskquota": {
"type": "string"
},
"diskused": {
"type": "string"
},
"domain": {
"type": "string"
},
"email": {
"type": "string"
},
"humandiskquota": {
"type": "string"
},
"humandiskused": {
"type": "string"
},
"login": {
"type": "string"
}
}
},
"cpanel.UpdateQuotaRequest": {
"type": "object",
"properties": {
"quota": {
"description": "MB",
"type": "integer"
}
}
},
"dto.AuthResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"user": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse"
"$ref": "#/definitions/dto.UserResponse"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.CompanyResponse": {
"dto.CompanyResponse": {
"type": "object",
"properties": {
"created_at": {
@ -1372,82 +1516,7 @@
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateCompanyRequest": {
"type": "object",
"properties": {
"admin_email": {
"type": "string"
},
"contact": {
"type": "string"
},
"document": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateUserRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"password": {
"type": "string"
},
"roles": {
"description": "e.g. [\"RECRUITER\"]",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.LoginRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.CreateApplicationRequest": {
"dto.CreateApplicationRequest": {
"type": "object",
"required": [
"jobId"
@ -1486,7 +1555,56 @@
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.CreateJobRequest": {
"dto.CreateCompanyRequest": {
"type": "object",
"required": [
"name",
"slug"
],
"properties": {
"address": {
"type": "string"
},
"cityId": {
"type": "integer"
},
"description": {
"type": "string"
},
"document": {
"type": "string"
},
"email": {
"type": "string"
},
"logoUrl": {
"type": "string"
},
"name": {
"type": "string",
"maxLength": 255,
"minLength": 3
},
"phone": {
"type": "string"
},
"regionId": {
"type": "integer"
},
"slug": {
"type": "string",
"maxLength": 255,
"minLength": 3
},
"type": {
"type": "string"
},
"website": {
"type": "string"
}
}
},
"dto.CreateJobRequest": {
"type": "object",
"required": [
"companyId",
@ -1565,16 +1683,54 @@
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.PaginatedResponse": {
"dto.CreateUserRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"password": {
"type": "string"
},
"roles": {
"description": "e.g. [\"RECRUITER\"]",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"dto.LoginRequest": {
"type": "object",
"required": [
"identifier",
"password"
],
"properties": {
"identifier": {
"type": "string",
"minLength": 3
},
"password": {
"type": "string",
"minLength": 8
}
}
},
"dto.PaginatedResponse": {
"type": "object",
"properties": {
"data": {},
"pagination": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.Pagination"
"$ref": "#/definitions/dto.Pagination"
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.Pagination": {
"dto.Pagination": {
"type": "object",
"properties": {
"limit": {
@ -1588,7 +1744,7 @@
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.UpdateApplicationStatusRequest": {
"dto.UpdateApplicationStatusRequest": {
"type": "object",
"required": [
"status"
@ -1609,7 +1765,7 @@
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_dto.UpdateJobRequest": {
"dto.UpdateJobRequest": {
"type": "object",
"properties": {
"benefits": {
@ -1680,7 +1836,86 @@
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_models.Application": {
"dto.UserResponse": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
}
}
},
"handlers.DownloadURLRequest": {
"type": "object",
"properties": {
"key": {
"type": "string"
}
}
},
"handlers.DownloadURLResponse": {
"type": "object",
"properties": {
"downloadUrl": {
"type": "string"
},
"expiresIn": {
"description": "seconds",
"type": "integer"
}
}
},
"handlers.UploadURLRequest": {
"type": "object",
"properties": {
"contentType": {
"type": "string"
},
"filename": {
"type": "string"
},
"folder": {
"description": "Optional: logos, resumes, documents",
"type": "string"
}
}
},
"handlers.UploadURLResponse": {
"type": "object",
"properties": {
"expiresIn": {
"description": "seconds",
"type": "integer"
},
"key": {
"type": "string"
},
"publicUrl": {
"type": "string"
},
"uploadUrl": {
"type": "string"
}
}
},
"models.Application": {
"type": "object",
"properties": {
"createdAt": {
@ -1691,7 +1926,7 @@
"description": "Array of {type, url}",
"allOf": [
{
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.JSONMap"
"$ref": "#/definitions/models.JSONMap"
}
]
},
@ -1740,15 +1975,15 @@
}
}
},
"github_com_rede5_gohorsejobs_backend_internal_models.JSONMap": {
"models.JSONMap": {
"type": "object",
"additionalProperties": true
},
"github_com_rede5_gohorsejobs_backend_internal_models.Job": {
"models.Job": {
"type": "object",
"properties": {
"benefits": {
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.JSONMap"
"$ref": "#/definitions/models.JSONMap"
},
"cityId": {
"type": "integer"
@ -1792,7 +2027,7 @@
"description": "Requirements \u0026 Benefits (JSONB arrays)",
"allOf": [
{
"$ref": "#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.JSONMap"
"$ref": "#/definitions/models.JSONMap"
}
]
},
@ -1826,203 +2061,6 @@
"type": "string"
}
}
},
"internal_admin_cloudflare.Error": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"message": {
"type": "string"
}
}
},
"internal_admin_cloudflare.PurgeHostsRequest": {
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"internal_admin_cloudflare.PurgeResponse": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"$ref": "#/definitions/internal_admin_cloudflare.Error"
}
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
},
"result": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
},
"success": {
"type": "boolean"
}
}
},
"internal_admin_cloudflare.PurgeTagsRequest": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"internal_admin_cloudflare.PurgeURLsRequest": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"internal_admin_cloudflare.Zone": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
}
}
},
"internal_admin_cpanel.ChangePasswordRequest": {
"type": "object",
"properties": {
"password": {
"type": "string"
}
}
},
"internal_admin_cpanel.CreateEmailRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"quota": {
"description": "MB, 0 = unlimited",
"type": "integer"
}
}
},
"internal_admin_cpanel.EmailAccount": {
"type": "object",
"properties": {
"diskquota": {
"type": "string"
},
"diskused": {
"type": "string"
},
"domain": {
"type": "string"
},
"email": {
"type": "string"
},
"humandiskquota": {
"type": "string"
},
"humandiskused": {
"type": "string"
},
"login": {
"type": "string"
}
}
},
"internal_admin_cpanel.UpdateQuotaRequest": {
"type": "object",
"properties": {
"quota": {
"description": "MB",
"type": "integer"
}
}
},
"internal_handlers.DownloadURLRequest": {
"type": "object",
"properties": {
"key": {
"type": "string"
}
}
},
"internal_handlers.DownloadURLResponse": {
"type": "object",
"properties": {
"downloadUrl": {
"type": "string"
},
"expiresIn": {
"description": "seconds",
"type": "integer"
}
}
},
"internal_handlers.UploadURLRequest": {
"type": "object",
"properties": {
"contentType": {
"type": "string"
},
"filename": {
"type": "string"
},
"folder": {
"description": "Optional: logos, resumes, documents",
"type": "string"
}
}
},
"internal_handlers.UploadURLResponse": {
"type": "object",
"properties": {
"expiresIn": {
"description": "seconds",
"type": "integer"
},
"key": {
"type": "string"
},
"publicUrl": {
"type": "string"
},
"uploadUrl": {
"type": "string"
}
}
}
}
}

View file

@ -1,13 +1,106 @@
basePath: /
definitions:
github_com_rede5_gohorsejobs_backend_internal_core_dto.AuthResponse:
cloudflare.Error:
properties:
code:
type: integer
message:
type: string
type: object
cloudflare.PurgeHostsRequest:
properties:
hosts:
items:
type: string
type: array
type: object
cloudflare.PurgeResponse:
properties:
errors:
items:
$ref: '#/definitions/cloudflare.Error'
type: array
messages:
items:
type: string
type: array
result:
properties:
id:
type: string
type: object
success:
type: boolean
type: object
cloudflare.PurgeTagsRequest:
properties:
tags:
items:
type: string
type: array
type: object
cloudflare.PurgeURLsRequest:
properties:
urls:
items:
type: string
type: array
type: object
cloudflare.Zone:
properties:
id:
type: string
name:
type: string
status:
type: string
type: object
cpanel.ChangePasswordRequest:
properties:
password:
type: string
type: object
cpanel.CreateEmailRequest:
properties:
email:
type: string
password:
type: string
quota:
description: MB, 0 = unlimited
type: integer
type: object
cpanel.EmailAccount:
properties:
diskquota:
type: string
diskused:
type: string
domain:
type: string
email:
type: string
humandiskquota:
type: string
humandiskused:
type: string
login:
type: string
type: object
cpanel.UpdateQuotaRequest:
properties:
quota:
description: MB
type: integer
type: object
dto.AuthResponse:
properties:
token:
type: string
user:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse'
$ref: '#/definitions/dto.UserResponse'
type: object
github_com_rede5_gohorsejobs_backend_internal_core_dto.CompanyResponse:
dto.CompanyResponse:
properties:
created_at:
type: string
@ -18,56 +111,7 @@ definitions:
status:
type: string
type: object
github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateCompanyRequest:
properties:
admin_email:
type: string
contact:
type: string
document:
type: string
name:
type: string
type: object
github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateUserRequest:
properties:
email:
type: string
name:
type: string
password:
type: string
roles:
description: e.g. ["RECRUITER"]
items:
type: string
type: array
type: object
github_com_rede5_gohorsejobs_backend_internal_core_dto.LoginRequest:
properties:
email:
type: string
password:
type: string
type: object
github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse:
properties:
created_at:
type: string
email:
type: string
id:
type: string
name:
type: string
roles:
items:
type: string
type: array
status:
type: string
type: object
github_com_rede5_gohorsejobs_backend_internal_dto.CreateApplicationRequest:
dto.CreateApplicationRequest:
properties:
documents:
additionalProperties: true
@ -93,7 +137,41 @@ definitions:
required:
- jobId
type: object
github_com_rede5_gohorsejobs_backend_internal_dto.CreateJobRequest:
dto.CreateCompanyRequest:
properties:
address:
type: string
cityId:
type: integer
description:
type: string
document:
type: string
email:
type: string
logoUrl:
type: string
name:
maxLength: 255
minLength: 3
type: string
phone:
type: string
regionId:
type: integer
slug:
maxLength: 255
minLength: 3
type: string
type:
type: string
website:
type: string
required:
- name
- slug
type: object
dto.CreateJobRequest:
properties:
benefits:
additionalProperties: true
@ -150,13 +228,39 @@ definitions:
- description
- title
type: object
github_com_rede5_gohorsejobs_backend_internal_dto.PaginatedResponse:
dto.CreateUserRequest:
properties:
email:
type: string
name:
type: string
password:
type: string
roles:
description: e.g. ["RECRUITER"]
items:
type: string
type: array
type: object
dto.LoginRequest:
properties:
identifier:
minLength: 3
type: string
password:
minLength: 8
type: string
required:
- identifier
- password
type: object
dto.PaginatedResponse:
properties:
data: {}
pagination:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.Pagination'
$ref: '#/definitions/dto.Pagination'
type: object
github_com_rede5_gohorsejobs_backend_internal_dto.Pagination:
dto.Pagination:
properties:
limit:
type: integer
@ -165,7 +269,7 @@ definitions:
total:
type: integer
type: object
github_com_rede5_gohorsejobs_backend_internal_dto.UpdateApplicationStatusRequest:
dto.UpdateApplicationStatusRequest:
properties:
notes:
type: string
@ -180,7 +284,7 @@ definitions:
required:
- status
type: object
github_com_rede5_gohorsejobs_backend_internal_dto.UpdateJobRequest:
dto.UpdateJobRequest:
properties:
benefits:
additionalProperties: true
@ -231,14 +335,66 @@ definitions:
workingHours:
type: string
type: object
github_com_rede5_gohorsejobs_backend_internal_models.Application:
dto.UserResponse:
properties:
created_at:
type: string
email:
type: string
id:
type: string
name:
type: string
roles:
items:
type: string
type: array
status:
type: string
type: object
handlers.DownloadURLRequest:
properties:
key:
type: string
type: object
handlers.DownloadURLResponse:
properties:
downloadUrl:
type: string
expiresIn:
description: seconds
type: integer
type: object
handlers.UploadURLRequest:
properties:
contentType:
type: string
filename:
type: string
folder:
description: 'Optional: logos, resumes, documents'
type: string
type: object
handlers.UploadURLResponse:
properties:
expiresIn:
description: seconds
type: integer
key:
type: string
publicUrl:
type: string
uploadUrl:
type: string
type: object
models.Application:
properties:
createdAt:
description: Metadata
type: string
documents:
allOf:
- $ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.JSONMap'
- $ref: '#/definitions/models.JSONMap'
description: Array of {type, url}
email:
type: string
@ -271,13 +427,13 @@ definitions:
whatsapp:
type: string
type: object
github_com_rede5_gohorsejobs_backend_internal_models.JSONMap:
models.JSONMap:
additionalProperties: true
type: object
github_com_rede5_gohorsejobs_backend_internal_models.Job:
models.Job:
properties:
benefits:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.JSONMap'
$ref: '#/definitions/models.JSONMap'
cityId:
type: integer
companyId:
@ -307,7 +463,7 @@ definitions:
type: integer
requirements:
allOf:
- $ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.JSONMap'
- $ref: '#/definitions/models.JSONMap'
description: Requirements & Benefits (JSONB arrays)
salaryMax:
type: number
@ -331,135 +487,7 @@ definitions:
workingHours:
type: string
type: object
internal_admin_cloudflare.Error:
properties:
code:
type: integer
message:
type: string
type: object
internal_admin_cloudflare.PurgeHostsRequest:
properties:
hosts:
items:
type: string
type: array
type: object
internal_admin_cloudflare.PurgeResponse:
properties:
errors:
items:
$ref: '#/definitions/internal_admin_cloudflare.Error'
type: array
messages:
items:
type: string
type: array
result:
properties:
id:
type: string
type: object
success:
type: boolean
type: object
internal_admin_cloudflare.PurgeTagsRequest:
properties:
tags:
items:
type: string
type: array
type: object
internal_admin_cloudflare.PurgeURLsRequest:
properties:
urls:
items:
type: string
type: array
type: object
internal_admin_cloudflare.Zone:
properties:
id:
type: string
name:
type: string
status:
type: string
type: object
internal_admin_cpanel.ChangePasswordRequest:
properties:
password:
type: string
type: object
internal_admin_cpanel.CreateEmailRequest:
properties:
email:
type: string
password:
type: string
quota:
description: MB, 0 = unlimited
type: integer
type: object
internal_admin_cpanel.EmailAccount:
properties:
diskquota:
type: string
diskused:
type: string
domain:
type: string
email:
type: string
humandiskquota:
type: string
humandiskused:
type: string
login:
type: string
type: object
internal_admin_cpanel.UpdateQuotaRequest:
properties:
quota:
description: MB
type: integer
type: object
internal_handlers.DownloadURLRequest:
properties:
key:
type: string
type: object
internal_handlers.DownloadURLResponse:
properties:
downloadUrl:
type: string
expiresIn:
description: seconds
type: integer
type: object
internal_handlers.UploadURLRequest:
properties:
contentType:
type: string
filename:
type: string
folder:
description: 'Optional: logos, resumes, documents'
type: string
type: object
internal_handlers.UploadURLResponse:
properties:
expiresIn:
description: seconds
type: integer
key:
type: string
publicUrl:
type: string
uploadUrl:
type: string
type: object
host: localhost:8080
host: localhost:8521
info:
contact: {}
description: API for GoHorseJobs recruitment platform.
@ -477,7 +505,7 @@ paths:
"200":
description: OK
schema:
$ref: '#/definitions/internal_admin_cloudflare.PurgeResponse'
$ref: '#/definitions/cloudflare.PurgeResponse'
"500":
description: Internal Server Error
schema:
@ -498,14 +526,14 @@ paths:
name: body
required: true
schema:
$ref: '#/definitions/internal_admin_cloudflare.PurgeHostsRequest'
$ref: '#/definitions/cloudflare.PurgeHostsRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/internal_admin_cloudflare.PurgeResponse'
$ref: '#/definitions/cloudflare.PurgeResponse'
"400":
description: Bad Request
schema:
@ -530,14 +558,14 @@ paths:
name: body
required: true
schema:
$ref: '#/definitions/internal_admin_cloudflare.PurgeTagsRequest'
$ref: '#/definitions/cloudflare.PurgeTagsRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/internal_admin_cloudflare.PurgeResponse'
$ref: '#/definitions/cloudflare.PurgeResponse'
"400":
description: Bad Request
schema:
@ -562,14 +590,14 @@ paths:
name: body
required: true
schema:
$ref: '#/definitions/internal_admin_cloudflare.PurgeURLsRequest'
$ref: '#/definitions/cloudflare.PurgeURLsRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/internal_admin_cloudflare.PurgeResponse'
$ref: '#/definitions/cloudflare.PurgeResponse'
"400":
description: Bad Request
schema:
@ -595,7 +623,7 @@ paths:
description: OK
schema:
items:
$ref: '#/definitions/internal_admin_cloudflare.Zone'
$ref: '#/definitions/cloudflare.Zone'
type: array
"500":
description: Internal Server Error
@ -623,7 +651,7 @@ paths:
description: OK
schema:
items:
$ref: '#/definitions/internal_admin_cpanel.EmailAccount'
$ref: '#/definitions/cpanel.EmailAccount'
type: array
"500":
description: Internal Server Error
@ -644,7 +672,7 @@ paths:
name: body
required: true
schema:
$ref: '#/definitions/internal_admin_cpanel.CreateEmailRequest'
$ref: '#/definitions/cpanel.CreateEmailRequest'
produces:
- application/json
responses:
@ -716,7 +744,7 @@ paths:
name: body
required: true
schema:
$ref: '#/definitions/internal_admin_cpanel.ChangePasswordRequest'
$ref: '#/definitions/cpanel.ChangePasswordRequest'
produces:
- application/json
responses:
@ -755,7 +783,7 @@ paths:
name: body
required: true
schema:
$ref: '#/definitions/internal_admin_cpanel.UpdateQuotaRequest'
$ref: '#/definitions/cpanel.UpdateQuotaRequest'
produces:
- application/json
responses:
@ -790,14 +818,14 @@ paths:
name: login
required: true
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.LoginRequest'
$ref: '#/definitions/dto.LoginRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.AuthResponse'
$ref: '#/definitions/dto.AuthResponse'
"400":
description: Invalid Request
schema:
@ -821,7 +849,7 @@ paths:
description: OK
schema:
items:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CompanyResponse'
$ref: '#/definitions/dto.CompanyResponse'
type: array
"500":
description: Internal Server Error
@ -840,14 +868,14 @@ paths:
name: company
required: true
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateCompanyRequest'
$ref: '#/definitions/dto.CreateCompanyRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CompanyResponse'
$ref: '#/definitions/dto.CompanyResponse'
"400":
description: Invalid Request
schema:
@ -870,14 +898,14 @@ paths:
name: request
required: true
schema:
$ref: '#/definitions/internal_handlers.DownloadURLRequest'
$ref: '#/definitions/handlers.DownloadURLRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/internal_handlers.DownloadURLResponse'
$ref: '#/definitions/handlers.DownloadURLResponse'
"400":
description: Bad Request
schema:
@ -931,14 +959,14 @@ paths:
name: request
required: true
schema:
$ref: '#/definitions/internal_handlers.UploadURLRequest'
$ref: '#/definitions/handlers.UploadURLRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/internal_handlers.UploadURLResponse'
$ref: '#/definitions/handlers.UploadURLResponse'
"400":
description: Bad Request
schema:
@ -964,7 +992,7 @@ paths:
description: OK
schema:
items:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse'
$ref: '#/definitions/dto.UserResponse'
type: array
"403":
description: Forbidden
@ -989,14 +1017,14 @@ paths:
name: user
required: true
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.CreateUserRequest'
$ref: '#/definitions/dto.CreateUserRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_core_dto.UserResponse'
$ref: '#/definitions/dto.UserResponse'
"400":
description: Invalid Request
schema:
@ -1063,7 +1091,7 @@ paths:
description: OK
schema:
items:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application'
$ref: '#/definitions/models.Application'
type: array
"400":
description: Bad Request
@ -1086,14 +1114,14 @@ paths:
name: application
required: true
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.CreateApplicationRequest'
$ref: '#/definitions/dto.CreateApplicationRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application'
$ref: '#/definitions/models.Application'
"400":
description: Bad Request
schema:
@ -1122,7 +1150,7 @@ paths:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application'
$ref: '#/definitions/models.Application'
"400":
description: Bad Request
schema:
@ -1150,14 +1178,14 @@ paths:
name: body
required: true
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.UpdateApplicationStatusRequest'
$ref: '#/definitions/dto.UpdateApplicationStatusRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Application'
$ref: '#/definitions/models.Application'
"400":
description: Bad Request
schema:
@ -1197,7 +1225,7 @@ paths:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.PaginatedResponse'
$ref: '#/definitions/dto.PaginatedResponse'
"500":
description: Internal Server Error
schema:
@ -1215,14 +1243,14 @@ paths:
name: job
required: true
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.CreateJobRequest'
$ref: '#/definitions/dto.CreateJobRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Job'
$ref: '#/definitions/models.Job'
"400":
description: Bad Request
schema:
@ -1277,7 +1305,7 @@ paths:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Job'
$ref: '#/definitions/models.Job'
"400":
description: Bad Request
schema:
@ -1304,14 +1332,14 @@ paths:
name: job
required: true
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_dto.UpdateJobRequest'
$ref: '#/definitions/dto.UpdateJobRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_rede5_gohorsejobs_backend_internal_models.Job'
$ref: '#/definitions/models.Job'
"400":
description: Bad Request
schema: