108 lines
No EOL
3.2 KiB
JSON
108 lines
No EOL
3.2 KiB
JSON
{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"description": "API for managing job scraping operations",
|
|
"title": "Jobs Scraper API",
|
|
"contact": {},
|
|
"version": "1.0"
|
|
},
|
|
"basePath": "/",
|
|
"paths": {
|
|
"/jobs": {
|
|
"post": {
|
|
"description": "Creates a new job with the provided specifications",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"jobs"
|
|
],
|
|
"summary": "Create a new job",
|
|
"parameters": [
|
|
{
|
|
"description": "Job creation data",
|
|
"name": "job",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/ports.CreateJobCommand"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successfully created job",
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Invalid request data",
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "Internal server error",
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"domain.JobProvider": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"x-enum-varnames": [
|
|
"LinkedIn",
|
|
"Indeed",
|
|
"Glassdoor",
|
|
"Bayt",
|
|
"TokyoDev",
|
|
"JapanDev"
|
|
]
|
|
},
|
|
"ports.CreateJobCommand": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fwt": {
|
|
"type": "string"
|
|
},
|
|
"keywords": {
|
|
"type": "string"
|
|
},
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"numPages": {
|
|
"type": "integer"
|
|
},
|
|
"provider": {
|
|
"$ref": "#/definitions/domain.JobProvider"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |