5995 lines
136 KiB
YAML
5995 lines
136 KiB
YAML
basePath: /v1
|
||
definitions:
|
||
handlers.CreateContactRequest:
|
||
properties:
|
||
email:
|
||
type: string
|
||
message:
|
||
type: string
|
||
name:
|
||
type: string
|
||
subject:
|
||
type: string
|
||
required:
|
||
- email
|
||
- message
|
||
- name
|
||
- subject
|
||
type: object
|
||
handlers.CreateEducationRequest:
|
||
properties:
|
||
between_years:
|
||
type: string
|
||
content:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
type: object
|
||
handlers.CreateExperienceRequest:
|
||
properties:
|
||
between_years:
|
||
type: string
|
||
content:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
type: object
|
||
handlers.CreateKnowledgeRequest:
|
||
properties:
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
type: object
|
||
handlers.CreateMainMenuRequest:
|
||
properties:
|
||
about:
|
||
type: string
|
||
contact:
|
||
type: string
|
||
home:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
portfolio:
|
||
type: string
|
||
resume:
|
||
type: string
|
||
services:
|
||
type: string
|
||
type: object
|
||
handlers.CreatePostCommentRequest:
|
||
properties:
|
||
body:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
parent_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
required:
|
||
- body
|
||
- title
|
||
type: object
|
||
handlers.CreatePostTagRequest:
|
||
properties:
|
||
is_active:
|
||
type: boolean
|
||
tag:
|
||
type: string
|
||
required:
|
||
- tag
|
||
type: object
|
||
handlers.CreateResumeRequest:
|
||
properties:
|
||
coding_skills:
|
||
type: string
|
||
education:
|
||
type: string
|
||
experience:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
knowledge:
|
||
type: string
|
||
title:
|
||
type: string
|
||
title_sub:
|
||
type: string
|
||
type: object
|
||
handlers.CreateSkillRequest:
|
||
properties:
|
||
degree:
|
||
type: integer
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
type: object
|
||
handlers.CreateTagRequest:
|
||
properties:
|
||
is_active:
|
||
description: Pointer to allow false value
|
||
type: boolean
|
||
tag:
|
||
type: string
|
||
required:
|
||
- tag
|
||
type: object
|
||
handlers.LoginRequest:
|
||
properties:
|
||
email:
|
||
type: string
|
||
password:
|
||
type: string
|
||
required:
|
||
- email
|
||
- password
|
||
type: object
|
||
handlers.RefreshRequest:
|
||
properties:
|
||
refresh_token:
|
||
type: string
|
||
required:
|
||
- refresh_token
|
||
type: object
|
||
handlers.RegisterRequest:
|
||
properties:
|
||
email:
|
||
type: string
|
||
password:
|
||
minLength: 6
|
||
type: string
|
||
username:
|
||
minLength: 3
|
||
type: string
|
||
required:
|
||
- email
|
||
- password
|
||
- username
|
||
type: object
|
||
handlers.UpdateEducationRequest:
|
||
properties:
|
||
between_years:
|
||
type: string
|
||
content:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
type: object
|
||
handlers.UpdateExperienceRequest:
|
||
properties:
|
||
between_years:
|
||
type: string
|
||
content:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
type: object
|
||
handlers.UpdateKnowledgeRequest:
|
||
properties:
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
type: object
|
||
handlers.UpdateMainMenuRequest:
|
||
properties:
|
||
about:
|
||
type: string
|
||
contact:
|
||
type: string
|
||
home:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
portfolio:
|
||
type: string
|
||
resume:
|
||
type: string
|
||
services:
|
||
type: string
|
||
type: object
|
||
handlers.UpdatePostCommentRequest:
|
||
properties:
|
||
body:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
parent_id:
|
||
type: string
|
||
slug:
|
||
type: string
|
||
title:
|
||
type: string
|
||
type: object
|
||
handlers.UpdatePostTagRequest:
|
||
properties:
|
||
is_active:
|
||
type: boolean
|
||
tag:
|
||
type: string
|
||
type: object
|
||
handlers.UpdateResumeRequest:
|
||
properties:
|
||
coding_skills:
|
||
type: string
|
||
education:
|
||
type: string
|
||
experience:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
knowledge:
|
||
type: string
|
||
title:
|
||
type: string
|
||
title_sub:
|
||
type: string
|
||
type: object
|
||
handlers.UpdateSkillRequest:
|
||
properties:
|
||
degree:
|
||
type: integer
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
type: object
|
||
handlers.UpdateTagRequest:
|
||
properties:
|
||
is_active:
|
||
type: boolean
|
||
tag:
|
||
type: string
|
||
type: object
|
||
models.About:
|
||
properties:
|
||
age:
|
||
type: string
|
||
birthday:
|
||
type: string
|
||
city:
|
||
type: string
|
||
counter_active:
|
||
type: boolean
|
||
created_at:
|
||
type: string
|
||
cv:
|
||
type: string
|
||
degree:
|
||
type: string
|
||
done:
|
||
type: integer
|
||
great:
|
||
type: integer
|
||
great_reviews:
|
||
type: string
|
||
hapy_user:
|
||
type: string
|
||
id:
|
||
type: string
|
||
image:
|
||
type: string
|
||
image_sub:
|
||
type: string
|
||
interests:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
mail:
|
||
type: string
|
||
phone:
|
||
type: string
|
||
project_done:
|
||
type: string
|
||
slug:
|
||
type: string
|
||
study:
|
||
type: string
|
||
support_team:
|
||
type: string
|
||
team:
|
||
type: integer
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
user_h:
|
||
type: integer
|
||
website:
|
||
type: string
|
||
x:
|
||
type: string
|
||
type: object
|
||
models.Banner:
|
||
properties:
|
||
color:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
image:
|
||
type: string
|
||
image_k:
|
||
type: string
|
||
image_k_txt:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
text1:
|
||
type: string
|
||
text2:
|
||
type: string
|
||
text4:
|
||
type: string
|
||
text5:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.Contact:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
email:
|
||
type: string
|
||
id:
|
||
type: string
|
||
ip:
|
||
type: string
|
||
message:
|
||
type: string
|
||
name:
|
||
type: string
|
||
subject:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
user:
|
||
$ref: '#/definitions/models.User'
|
||
user_id:
|
||
description: 'Optional: if user is logged in'
|
||
type: string
|
||
type: object
|
||
models.CorsBlacklist:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
created_by:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
origin:
|
||
type: string
|
||
reason:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.CorsWhitelist:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
created_by:
|
||
type: string
|
||
description:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
origin:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.Education:
|
||
properties:
|
||
between_years:
|
||
type: string
|
||
content:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.Experience:
|
||
properties:
|
||
between_years:
|
||
type: string
|
||
content:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.Home:
|
||
properties:
|
||
button1:
|
||
type: string
|
||
button2:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
image:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
keywords:
|
||
type: string
|
||
name:
|
||
type: string
|
||
slug:
|
||
type: string
|
||
tags:
|
||
items:
|
||
$ref: '#/definitions/models.Tag'
|
||
type: array
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
video:
|
||
type: string
|
||
type: object
|
||
models.Knowledge:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.MainMenu:
|
||
properties:
|
||
about:
|
||
type: string
|
||
contact:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
home:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
portfolio:
|
||
type: string
|
||
resume:
|
||
type: string
|
||
services:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.Permission:
|
||
properties:
|
||
description:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
name:
|
||
description: user:read, user:write
|
||
type: string
|
||
type: object
|
||
models.Post:
|
||
properties:
|
||
categories:
|
||
items:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
type: array
|
||
children:
|
||
items:
|
||
$ref: '#/definitions/models.Post'
|
||
type: array
|
||
comments:
|
||
items:
|
||
$ref: '#/definitions/models.PostComment'
|
||
type: array
|
||
content:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
image:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
is_front:
|
||
type: boolean
|
||
keywords:
|
||
type: string
|
||
parent:
|
||
$ref: '#/definitions/models.Post'
|
||
parent_id:
|
||
type: string
|
||
slug:
|
||
type: string
|
||
tags:
|
||
items:
|
||
$ref: '#/definitions/models.PostTag'
|
||
type: array
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
video:
|
||
type: string
|
||
type: object
|
||
models.PostCategory:
|
||
properties:
|
||
children:
|
||
items:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
type: array
|
||
created_at:
|
||
type: string
|
||
description:
|
||
type: string
|
||
id:
|
||
type: string
|
||
image:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
keywords:
|
||
type: string
|
||
order:
|
||
type: integer
|
||
parent:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
parent_id:
|
||
type: string
|
||
posts:
|
||
items:
|
||
$ref: '#/definitions/models.Post'
|
||
type: array
|
||
slug:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.PostCategoryView:
|
||
properties:
|
||
category:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
category_id:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
ip_address:
|
||
type: string
|
||
user_agent:
|
||
type: string
|
||
type: object
|
||
models.PostComment:
|
||
properties:
|
||
body:
|
||
type: string
|
||
children:
|
||
items:
|
||
$ref: '#/definitions/models.PostComment'
|
||
type: array
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
parent:
|
||
$ref: '#/definitions/models.PostComment'
|
||
parent_id:
|
||
type: string
|
||
post:
|
||
$ref: '#/definitions/models.Post'
|
||
post_id:
|
||
type: string
|
||
slug:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
user:
|
||
$ref: '#/definitions/models.User'
|
||
user_id:
|
||
type: string
|
||
type: object
|
||
models.PostTag:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
posts:
|
||
items:
|
||
$ref: '#/definitions/models.Post'
|
||
type: array
|
||
tag:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.RateLimitSetting:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
description:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
max_requests:
|
||
description: Max istek sayısı
|
||
type: integer
|
||
name:
|
||
description: e.g., "login", "register", "api"
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
updated_by:
|
||
type: string
|
||
window_seconds:
|
||
description: Zaman penceresi (saniye)
|
||
type: integer
|
||
type: object
|
||
models.Resume:
|
||
properties:
|
||
coding_skills:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
education:
|
||
type: string
|
||
educations:
|
||
items:
|
||
$ref: '#/definitions/models.Education'
|
||
type: array
|
||
experience:
|
||
type: string
|
||
experiences:
|
||
items:
|
||
$ref: '#/definitions/models.Experience'
|
||
type: array
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
knowledge:
|
||
type: string
|
||
knowledges:
|
||
items:
|
||
$ref: '#/definitions/models.Knowledge'
|
||
type: array
|
||
skills:
|
||
items:
|
||
$ref: '#/definitions/models.Skill'
|
||
type: array
|
||
title:
|
||
type: string
|
||
title_sub:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.Role:
|
||
properties:
|
||
description:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
name:
|
||
description: admin, user
|
||
type: string
|
||
permissions:
|
||
items:
|
||
$ref: '#/definitions/models.Permission'
|
||
type: array
|
||
type: object
|
||
models.Service:
|
||
properties:
|
||
content:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
image:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
slug:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.ServiceTitle:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
title:
|
||
type: string
|
||
title_sub:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.Setting:
|
||
properties:
|
||
address:
|
||
type: string
|
||
b_logo:
|
||
type: string
|
||
copyright:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
email:
|
||
type: string
|
||
facebook:
|
||
type: string
|
||
id:
|
||
type: string
|
||
instagram:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
linkedin:
|
||
type: string
|
||
map_embed:
|
||
type: string
|
||
meta_description:
|
||
type: string
|
||
meta_title:
|
||
type: string
|
||
phone:
|
||
type: string
|
||
pinterest:
|
||
type: string
|
||
slogan:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
url:
|
||
type: string
|
||
w_logo:
|
||
type: string
|
||
whatsapp:
|
||
type: string
|
||
x:
|
||
type: string
|
||
type: object
|
||
models.SiteSettings:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
site_active:
|
||
type: boolean
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.Skill:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
degree:
|
||
type: integer
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
resume_id:
|
||
type: string
|
||
title:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.SocialAccount:
|
||
properties:
|
||
avatar_url:
|
||
description: Avatar URL from provider
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
email:
|
||
type: string
|
||
id:
|
||
type: string
|
||
name:
|
||
description: Full name from provider
|
||
type: string
|
||
provider:
|
||
description: google, github
|
||
type: string
|
||
provider_id:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
user_id:
|
||
type: string
|
||
type: object
|
||
models.Tag:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_active:
|
||
type: boolean
|
||
tag:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
models.User:
|
||
properties:
|
||
avatar:
|
||
description: Avatar URL from OAuth or uploaded
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
email:
|
||
type: string
|
||
email_verified:
|
||
description: |-
|
||
Email verification: only required for email/password registration; OAuth users are treated as verified
|
||
Changed to *bool to handle false values correctly with GORM defaults
|
||
type: boolean
|
||
email_verified_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
roles:
|
||
items:
|
||
$ref: '#/definitions/models.Role'
|
||
type: array
|
||
social_accounts:
|
||
items:
|
||
$ref: '#/definitions/models.SocialAccount'
|
||
type: array
|
||
updated_at:
|
||
type: string
|
||
username:
|
||
type: string
|
||
type: object
|
||
info:
|
||
contact: {}
|
||
description: Centralized Authentication Service
|
||
title: GAuth-Central API
|
||
version: "1.0"
|
||
paths:
|
||
/about:
|
||
get:
|
||
description: Retrieve a list of active about entries
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.About'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active about entries
|
||
tags:
|
||
- about
|
||
/about/active:
|
||
get:
|
||
description: Retrieve the newest active about entry
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.About'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get active about entry
|
||
tags:
|
||
- about
|
||
/admin/about:
|
||
get:
|
||
description: Retrieve a list of all about entries including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.About'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all about entries (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Create a new about entry
|
||
parameters:
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
required: true
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Image subtitle
|
||
in: formData
|
||
name: image_sub
|
||
type: string
|
||
- description: CV file
|
||
in: formData
|
||
name: cv
|
||
type: file
|
||
- description: Birthday
|
||
in: formData
|
||
name: birthday
|
||
type: string
|
||
- description: City
|
||
in: formData
|
||
name: city
|
||
type: string
|
||
- description: Study
|
||
in: formData
|
||
name: study
|
||
type: string
|
||
- description: Website
|
||
in: formData
|
||
name: website
|
||
type: string
|
||
- description: Phone
|
||
in: formData
|
||
name: phone
|
||
type: string
|
||
- description: Age
|
||
in: formData
|
||
name: age
|
||
type: string
|
||
- description: Interests
|
||
in: formData
|
||
name: interests
|
||
type: string
|
||
- description: Degree
|
||
in: formData
|
||
name: degree
|
||
type: string
|
||
- description: X
|
||
in: formData
|
||
name: x
|
||
type: string
|
||
- description: Mail
|
||
in: formData
|
||
name: mail
|
||
type: string
|
||
- description: Done
|
||
in: formData
|
||
name: done
|
||
type: integer
|
||
- description: Project done
|
||
in: formData
|
||
name: project_done
|
||
type: string
|
||
- description: User count
|
||
in: formData
|
||
name: user_h
|
||
type: integer
|
||
- description: Happy user
|
||
in: formData
|
||
name: hapy_user
|
||
type: string
|
||
- description: Great
|
||
in: formData
|
||
name: great
|
||
type: integer
|
||
- description: Great reviews
|
||
in: formData
|
||
name: great_reviews
|
||
type: string
|
||
- description: Team
|
||
in: formData
|
||
name: team
|
||
type: integer
|
||
- description: Support team
|
||
in: formData
|
||
name: support_team
|
||
type: string
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
- description: Counter active
|
||
in: formData
|
||
name: counter_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.About'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new about entry (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/about/{id}:
|
||
delete:
|
||
description: Delete an about entry by ID
|
||
parameters:
|
||
- description: About ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete an about entry (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific about entry
|
||
parameters:
|
||
- description: About ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.About'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get an about entry by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Update an existing about entry
|
||
parameters:
|
||
- description: About ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Image subtitle
|
||
in: formData
|
||
name: image_sub
|
||
type: string
|
||
- description: CV file
|
||
in: formData
|
||
name: cv
|
||
type: file
|
||
- description: Birthday
|
||
in: formData
|
||
name: birthday
|
||
type: string
|
||
- description: City
|
||
in: formData
|
||
name: city
|
||
type: string
|
||
- description: Study
|
||
in: formData
|
||
name: study
|
||
type: string
|
||
- description: Website
|
||
in: formData
|
||
name: website
|
||
type: string
|
||
- description: Phone
|
||
in: formData
|
||
name: phone
|
||
type: string
|
||
- description: Age
|
||
in: formData
|
||
name: age
|
||
type: string
|
||
- description: Interests
|
||
in: formData
|
||
name: interests
|
||
type: string
|
||
- description: Degree
|
||
in: formData
|
||
name: degree
|
||
type: string
|
||
- description: X
|
||
in: formData
|
||
name: x
|
||
type: string
|
||
- description: Mail
|
||
in: formData
|
||
name: mail
|
||
type: string
|
||
- description: Done
|
||
in: formData
|
||
name: done
|
||
type: integer
|
||
- description: Project done
|
||
in: formData
|
||
name: project_done
|
||
type: string
|
||
- description: User count
|
||
in: formData
|
||
name: user_h
|
||
type: integer
|
||
- description: Happy user
|
||
in: formData
|
||
name: hapy_user
|
||
type: string
|
||
- description: Great
|
||
in: formData
|
||
name: great
|
||
type: integer
|
||
- description: Great reviews
|
||
in: formData
|
||
name: great_reviews
|
||
type: string
|
||
- description: Team
|
||
in: formData
|
||
name: team
|
||
type: integer
|
||
- description: Support team
|
||
in: formData
|
||
name: support_team
|
||
type: string
|
||
- description: Slug
|
||
in: formData
|
||
name: slug
|
||
type: string
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
- description: Counter active
|
||
in: formData
|
||
name: counter_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.About'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update an about entry (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/banners:
|
||
get:
|
||
description: Retrieve a list of all banners including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Banner'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all banners (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Create a new banner entry
|
||
parameters:
|
||
- description: Text color
|
||
in: formData
|
||
name: color
|
||
type: string
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
type: string
|
||
- description: Text 1
|
||
in: formData
|
||
name: text1
|
||
type: string
|
||
- description: Text 2
|
||
in: formData
|
||
name: text2
|
||
type: string
|
||
- description: Text 4
|
||
in: formData
|
||
name: text4
|
||
type: string
|
||
- description: Text 5
|
||
in: formData
|
||
name: text5
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
required: true
|
||
type: file
|
||
- description: Small image
|
||
in: formData
|
||
name: image_k
|
||
type: file
|
||
- description: Small image text
|
||
in: formData
|
||
name: image_k_txt
|
||
type: string
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Banner'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new banner (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/banners/{id}:
|
||
delete:
|
||
description: Delete a banner by ID
|
||
parameters:
|
||
- description: Banner ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a banner (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific banner
|
||
parameters:
|
||
- description: Banner ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Banner'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get banner by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Update an existing banner entry
|
||
parameters:
|
||
- description: Banner ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Text color
|
||
in: formData
|
||
name: color
|
||
type: string
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
type: string
|
||
- description: Text 1
|
||
in: formData
|
||
name: text1
|
||
type: string
|
||
- description: Text 2
|
||
in: formData
|
||
name: text2
|
||
type: string
|
||
- description: Text 4
|
||
in: formData
|
||
name: text4
|
||
type: string
|
||
- description: Text 5
|
||
in: formData
|
||
name: text5
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Small image
|
||
in: formData
|
||
name: image_k
|
||
type: file
|
||
- description: Small image text
|
||
in: formData
|
||
name: image_k_txt
|
||
type: string
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Banner'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a banner (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/contacts:
|
||
get:
|
||
description: Retrieve a list of all contact messages with pagination
|
||
parameters:
|
||
- description: Page number
|
||
in: query
|
||
name: page
|
||
type: integer
|
||
- description: Items per page
|
||
in: query
|
||
name: limit
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all contact messages (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/contacts/{id}:
|
||
delete:
|
||
description: Delete a contact message by ID
|
||
parameters:
|
||
- description: Contact ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a contact message (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific contact message
|
||
parameters:
|
||
- description: Contact ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Contact'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a contact message by ID (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/educations:
|
||
get:
|
||
description: Retrieve a list of all education entries including inactive ones
|
||
parameters:
|
||
- description: Resume ID
|
||
in: query
|
||
name: resume_id
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Education'
|
||
type: array
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all educations (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new education entry
|
||
parameters:
|
||
- description: Education Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreateEducationRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Education'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new education (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/educations/{id}:
|
||
delete:
|
||
description: Delete an education by ID
|
||
parameters:
|
||
- description: Education ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete an education (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific education entry
|
||
parameters:
|
||
- description: Education ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Education'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get an education by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing education entry
|
||
parameters:
|
||
- description: Education ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Education Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.UpdateEducationRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Education'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update an education (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/experiences:
|
||
get:
|
||
description: Retrieve a list of all experience entries including inactive ones
|
||
parameters:
|
||
- description: Resume ID
|
||
in: query
|
||
name: resume_id
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Experience'
|
||
type: array
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all experiences (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new experience entry
|
||
parameters:
|
||
- description: Experience Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreateExperienceRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Experience'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new experience (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/experiences/{id}:
|
||
delete:
|
||
description: Delete an experience by ID
|
||
parameters:
|
||
- description: Experience ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete an experience (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific experience entry
|
||
parameters:
|
||
- description: Experience ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Experience'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get an experience by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing experience entry
|
||
parameters:
|
||
- description: Experience ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Experience Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.UpdateExperienceRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Experience'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update an experience (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/homes:
|
||
get:
|
||
description: Retrieve a list of all homes including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Home'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all homes (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Create a new home entry
|
||
parameters:
|
||
- description: Name
|
||
in: formData
|
||
name: name
|
||
required: true
|
||
type: string
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
required: true
|
||
type: string
|
||
- description: Button 1
|
||
in: formData
|
||
name: button1
|
||
required: true
|
||
type: string
|
||
- description: Button 2
|
||
in: formData
|
||
name: button2
|
||
required: true
|
||
type: string
|
||
- description: Video URL
|
||
in: formData
|
||
name: video
|
||
type: string
|
||
- description: Keywords
|
||
in: formData
|
||
name: keywords
|
||
required: true
|
||
type: string
|
||
- collectionFormat: csv
|
||
description: Tag IDs
|
||
in: formData
|
||
items:
|
||
type: string
|
||
name: tag_ids
|
||
type: array
|
||
- description: Home image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Home'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new home (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/homes/{id}:
|
||
delete:
|
||
description: Delete a home by ID
|
||
parameters:
|
||
- description: Home ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a home (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific home
|
||
parameters:
|
||
- description: Home ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Home'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a home by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Update an existing home entry
|
||
parameters:
|
||
- description: Home ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Name
|
||
in: formData
|
||
name: name
|
||
type: string
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
type: string
|
||
- description: Button 1
|
||
in: formData
|
||
name: button1
|
||
type: string
|
||
- description: Button 2
|
||
in: formData
|
||
name: button2
|
||
type: string
|
||
- description: Video URL
|
||
in: formData
|
||
name: video
|
||
type: string
|
||
- description: Keywords
|
||
in: formData
|
||
name: keywords
|
||
type: string
|
||
- collectionFormat: csv
|
||
description: Tag IDs
|
||
in: formData
|
||
items:
|
||
type: string
|
||
name: tag_ids
|
||
type: array
|
||
- description: Home image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Slug
|
||
in: formData
|
||
name: slug
|
||
type: string
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Home'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a home (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/homes/{id}/image:
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Upload an image for a specific home entry
|
||
parameters:
|
||
- description: Home ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Home image
|
||
in: formData
|
||
name: image
|
||
required: true
|
||
type: file
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Upload home image (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/knowledges:
|
||
get:
|
||
description: Retrieve a list of all knowledge entries including inactive ones
|
||
parameters:
|
||
- description: Resume ID
|
||
in: query
|
||
name: resume_id
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Knowledge'
|
||
type: array
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all knowledges (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new knowledge entry
|
||
parameters:
|
||
- description: Knowledge Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreateKnowledgeRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Knowledge'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new knowledge (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/knowledges/{id}:
|
||
delete:
|
||
description: Delete a knowledge by ID
|
||
parameters:
|
||
- description: Knowledge ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a knowledge (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific knowledge entry
|
||
parameters:
|
||
- description: Knowledge ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Knowledge'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a knowledge by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing knowledge entry
|
||
parameters:
|
||
- description: Knowledge ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Knowledge Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.UpdateKnowledgeRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Knowledge'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a knowledge (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/main-menu:
|
||
get:
|
||
description: Retrieve a list of all main menu entries including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.MainMenu'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all main menus (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new main menu entry
|
||
parameters:
|
||
- description: Main Menu Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreateMainMenuRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.MainMenu'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new main menu (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/main-menu/{id}:
|
||
delete:
|
||
description: Delete a main menu by ID
|
||
parameters:
|
||
- description: Main Menu ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a main menu (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific main menu entry
|
||
parameters:
|
||
- description: Main Menu ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.MainMenu'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a main menu by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing main menu entry
|
||
parameters:
|
||
- description: Main Menu ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Main Menu Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.UpdateMainMenuRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.MainMenu'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a main menu (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/post-categories:
|
||
get:
|
||
description: Retrieve a list of all post categories including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all post categories (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Create a new post category
|
||
parameters:
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
required: true
|
||
type: string
|
||
- description: Keywords
|
||
in: formData
|
||
name: keywords
|
||
required: true
|
||
type: string
|
||
- description: Description
|
||
in: formData
|
||
name: description
|
||
required: true
|
||
type: string
|
||
- description: Order
|
||
in: formData
|
||
name: order
|
||
type: integer
|
||
- description: Parent ID
|
||
in: formData
|
||
name: parent_id
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a post category (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/post-categories/{id}:
|
||
delete:
|
||
description: Delete a post category by ID
|
||
parameters:
|
||
- description: Category ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a post category (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve a post category by ID
|
||
parameters:
|
||
- description: Category ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get post category by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Update an existing post category
|
||
parameters:
|
||
- description: Category ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
type: string
|
||
- description: Keywords
|
||
in: formData
|
||
name: keywords
|
||
type: string
|
||
- description: Description
|
||
in: formData
|
||
name: description
|
||
type: string
|
||
- description: Order
|
||
in: formData
|
||
name: order
|
||
type: integer
|
||
- description: Parent ID
|
||
in: formData
|
||
name: parent_id
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Slug
|
||
in: formData
|
||
name: slug
|
||
type: string
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a post category (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/post-category-views:
|
||
get:
|
||
description: Retrieve views for a category
|
||
parameters:
|
||
- description: Category ID
|
||
in: query
|
||
name: category_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.PostCategoryView'
|
||
type: array
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get post category views (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/post-comments:
|
||
get:
|
||
description: Retrieve comments with optional post filter
|
||
parameters:
|
||
- description: Post ID
|
||
in: query
|
||
name: post_id
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.PostComment'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all post comments (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/post-comments/{id}:
|
||
delete:
|
||
description: Delete a post comment by ID
|
||
parameters:
|
||
- description: Comment ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a post comment (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve a post comment by ID
|
||
parameters:
|
||
- description: Comment ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.PostComment'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get post comment by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing post comment
|
||
parameters:
|
||
- description: Comment ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Comment Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.UpdatePostCommentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.PostComment'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a post comment (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/post-tags:
|
||
get:
|
||
description: Retrieve a list of all post tags including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.PostTag'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all post tags (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new post tag
|
||
parameters:
|
||
- description: Post Tag Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreatePostTagRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.PostTag'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a post tag (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/post-tags/{id}:
|
||
delete:
|
||
description: Delete a post tag by ID
|
||
parameters:
|
||
- description: Post Tag ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a post tag (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific post tag
|
||
parameters:
|
||
- description: Post Tag ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.PostTag'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a post tag by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing post tag
|
||
parameters:
|
||
- description: Post Tag ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Post Tag Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.UpdatePostTagRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.PostTag'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a post tag (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/posts:
|
||
get:
|
||
description: Retrieve a list of all posts including inactive ones with pagination
|
||
parameters:
|
||
- default: 1
|
||
description: Page number
|
||
in: query
|
||
name: page
|
||
type: integer
|
||
- default: 10
|
||
description: Items per page
|
||
in: query
|
||
name: limit
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all posts (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Create a new post
|
||
parameters:
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
required: true
|
||
type: string
|
||
- description: Content
|
||
in: formData
|
||
name: content
|
||
type: string
|
||
- description: Keywords
|
||
in: formData
|
||
name: keywords
|
||
required: true
|
||
type: string
|
||
- description: Video
|
||
in: formData
|
||
name: video
|
||
type: string
|
||
- collectionFormat: csv
|
||
description: Category IDs
|
||
in: formData
|
||
items:
|
||
type: string
|
||
name: category_ids
|
||
type: array
|
||
- collectionFormat: csv
|
||
description: Tag IDs
|
||
in: formData
|
||
items:
|
||
type: string
|
||
name: tag_ids
|
||
type: array
|
||
- description: Parent ID
|
||
in: formData
|
||
name: parent_id
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
- description: Is front
|
||
in: formData
|
||
name: is_front
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Post'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a post (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/posts/{id}:
|
||
delete:
|
||
description: Delete a post by ID
|
||
parameters:
|
||
- description: Post ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a post (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve a post by ID
|
||
parameters:
|
||
- description: Post ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Post'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get post by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Update an existing post
|
||
parameters:
|
||
- description: Post ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
type: string
|
||
- description: Content
|
||
in: formData
|
||
name: content
|
||
type: string
|
||
- description: Keywords
|
||
in: formData
|
||
name: keywords
|
||
type: string
|
||
- description: Video
|
||
in: formData
|
||
name: video
|
||
type: string
|
||
- collectionFormat: csv
|
||
description: Category IDs
|
||
in: formData
|
||
items:
|
||
type: string
|
||
name: category_ids
|
||
type: array
|
||
- collectionFormat: csv
|
||
description: Tag IDs
|
||
in: formData
|
||
items:
|
||
type: string
|
||
name: tag_ids
|
||
type: array
|
||
- description: Parent ID
|
||
in: formData
|
||
name: parent_id
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Slug
|
||
in: formData
|
||
name: slug
|
||
type: string
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
- description: Is front
|
||
in: formData
|
||
name: is_front
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Post'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a post (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/resumes:
|
||
get:
|
||
description: Retrieve a list of all resumes including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Resume'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all resumes (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new resume entry
|
||
parameters:
|
||
- description: Resume Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreateResumeRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Resume'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new resume (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/resumes/{id}:
|
||
delete:
|
||
description: Delete a resume by ID
|
||
parameters:
|
||
- description: Resume ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a resume (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific resume
|
||
parameters:
|
||
- description: Resume ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Resume'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a resume by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing resume entry
|
||
parameters:
|
||
- description: Resume ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Resume Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.UpdateResumeRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Resume'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a resume (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/service-titles:
|
||
get:
|
||
description: Retrieve a list of all service titles including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.ServiceTitle'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all service titles (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new service title entry
|
||
parameters:
|
||
- description: Service Title Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.ServiceTitle'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new service title (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/service-titles/{id}:
|
||
delete:
|
||
description: Delete a service title by ID
|
||
parameters:
|
||
- description: Service Title ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a service title (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific service title
|
||
parameters:
|
||
- description: Service Title ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.ServiceTitle'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a service title by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing service title entry
|
||
parameters:
|
||
- description: Service Title ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Service Title Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.ServiceTitle'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a service title (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/services:
|
||
get:
|
||
description: Retrieve a list of all services including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Service'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all services (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Create a new service entry
|
||
parameters:
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
required: true
|
||
type: string
|
||
- description: Content
|
||
in: formData
|
||
name: content
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Service'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new service (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/services/{id}:
|
||
delete:
|
||
description: Delete a service by ID
|
||
parameters:
|
||
- description: Service ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a service (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific service
|
||
parameters:
|
||
- description: Service ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Service'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a service by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Update an existing service entry
|
||
parameters:
|
||
- description: Service ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
type: string
|
||
- description: Content
|
||
in: formData
|
||
name: content
|
||
type: string
|
||
- description: Image
|
||
in: formData
|
||
name: image
|
||
type: file
|
||
- description: Slug
|
||
in: formData
|
||
name: slug
|
||
type: string
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Service'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a service (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/site-info:
|
||
get:
|
||
description: Retrieve a list of all site info entries including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Setting'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all site info (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Create a new site info entry
|
||
parameters:
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
required: true
|
||
type: string
|
||
- description: Meta title
|
||
in: formData
|
||
name: meta_title
|
||
type: string
|
||
- description: Meta description
|
||
in: formData
|
||
name: meta_description
|
||
type: string
|
||
- description: Phone
|
||
in: formData
|
||
name: phone
|
||
required: true
|
||
type: string
|
||
- description: Site URL
|
||
in: formData
|
||
name: url
|
||
type: string
|
||
- description: Email
|
||
in: formData
|
||
name: email
|
||
required: true
|
||
type: string
|
||
- description: Facebook
|
||
in: formData
|
||
name: facebook
|
||
type: string
|
||
- description: X
|
||
in: formData
|
||
name: x
|
||
type: string
|
||
- description: Instagram
|
||
in: formData
|
||
name: instagram
|
||
type: string
|
||
- description: Whatsapp
|
||
in: formData
|
||
name: whatsapp
|
||
type: string
|
||
- description: Pinterest
|
||
in: formData
|
||
name: pinterest
|
||
type: string
|
||
- description: LinkedIn
|
||
in: formData
|
||
name: linkedin
|
||
type: string
|
||
- description: Slogan
|
||
in: formData
|
||
name: slogan
|
||
type: string
|
||
- description: White logo
|
||
in: formData
|
||
name: w_logo
|
||
type: file
|
||
- description: Black logo
|
||
in: formData
|
||
name: b_logo
|
||
type: file
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Setting'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create site info (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/site-info/{id}:
|
||
delete:
|
||
description: Delete a site info entry by ID
|
||
parameters:
|
||
- description: Site Info ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete site info (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific site info entry
|
||
parameters:
|
||
- description: Site Info ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Setting'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get site info by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: Update an existing site info entry
|
||
parameters:
|
||
- description: Site Info ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Title
|
||
in: formData
|
||
name: title
|
||
type: string
|
||
- description: Meta title
|
||
in: formData
|
||
name: meta_title
|
||
type: string
|
||
- description: Meta description
|
||
in: formData
|
||
name: meta_description
|
||
type: string
|
||
- description: Phone
|
||
in: formData
|
||
name: phone
|
||
type: string
|
||
- description: Site URL
|
||
in: formData
|
||
name: url
|
||
type: string
|
||
- description: Email
|
||
in: formData
|
||
name: email
|
||
type: string
|
||
- description: Facebook
|
||
in: formData
|
||
name: facebook
|
||
type: string
|
||
- description: X
|
||
in: formData
|
||
name: x
|
||
type: string
|
||
- description: Instagram
|
||
in: formData
|
||
name: instagram
|
||
type: string
|
||
- description: Whatsapp
|
||
in: formData
|
||
name: whatsapp
|
||
type: string
|
||
- description: Pinterest
|
||
in: formData
|
||
name: pinterest
|
||
type: string
|
||
- description: LinkedIn
|
||
in: formData
|
||
name: linkedin
|
||
type: string
|
||
- description: Slogan
|
||
in: formData
|
||
name: slogan
|
||
type: string
|
||
- description: White logo
|
||
in: formData
|
||
name: w_logo
|
||
type: file
|
||
- description: Black logo
|
||
in: formData
|
||
name: b_logo
|
||
type: file
|
||
- description: Is active
|
||
in: formData
|
||
name: is_active
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Setting'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update site info (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/site-settings:
|
||
get:
|
||
description: Retrieve a list of all site settings including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.SiteSettings'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all site settings (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new site settings entry
|
||
parameters:
|
||
- description: Site Settings Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
additionalProperties:
|
||
type: boolean
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.SiteSettings'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create site settings (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/site-settings/{id}:
|
||
delete:
|
||
description: Delete a site settings entry by ID
|
||
parameters:
|
||
- description: Site Settings ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete site settings (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific site settings entry
|
||
parameters:
|
||
- description: Site Settings ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.SiteSettings'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get site settings by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing site settings entry
|
||
parameters:
|
||
- description: Site Settings ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Site Settings Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
additionalProperties:
|
||
type: boolean
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.SiteSettings'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update site settings (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/skills:
|
||
get:
|
||
description: Retrieve a list of all skill entries including inactive ones
|
||
parameters:
|
||
- description: Resume ID
|
||
in: query
|
||
name: resume_id
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Skill'
|
||
type: array
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all skills (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new skill entry
|
||
parameters:
|
||
- description: Skill Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreateSkillRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Skill'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new skill (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/skills/{id}:
|
||
delete:
|
||
description: Delete a skill by ID
|
||
parameters:
|
||
- description: Skill ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a skill (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific skill entry
|
||
parameters:
|
||
- description: Skill ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Skill'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a skill by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing skill entry
|
||
parameters:
|
||
- description: Skill ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Skill Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.UpdateSkillRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Skill'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a skill (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/tags:
|
||
get:
|
||
description: Retrieve a list of all tags including inactive ones
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Tag'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all tags (Admin)
|
||
tags:
|
||
- admin
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new tag
|
||
parameters:
|
||
- description: Tag Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreateTagRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Tag'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a new tag (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/tags/{id}:
|
||
delete:
|
||
description: Delete a tag by ID
|
||
parameters:
|
||
- description: Tag ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete a tag (Admin)
|
||
tags:
|
||
- admin
|
||
get:
|
||
description: Retrieve details of a specific tag
|
||
parameters:
|
||
- description: Tag ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Tag'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get a tag by ID (Admin)
|
||
tags:
|
||
- admin
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: Update an existing tag
|
||
parameters:
|
||
- description: Tag ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Tag Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.UpdateTagRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Tag'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update a tag (Admin)
|
||
tags:
|
||
- admin
|
||
/admin/users:
|
||
get:
|
||
parameters:
|
||
- default: 1
|
||
description: Page number
|
||
in: query
|
||
name: page
|
||
type: integer
|
||
- default: 10
|
||
description: Items per page
|
||
in: query
|
||
name: limit
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all users (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
parameters:
|
||
- description: Email
|
||
in: formData
|
||
name: email
|
||
required: true
|
||
type: string
|
||
- description: Password
|
||
in: formData
|
||
name: password
|
||
required: true
|
||
type: string
|
||
- description: Username
|
||
in: formData
|
||
name: user_name
|
||
required: true
|
||
type: string
|
||
- description: Email verified
|
||
in: formData
|
||
name: email_verified
|
||
type: boolean
|
||
- description: 'Roles (comma separated: admin,user)'
|
||
in: formData
|
||
name: roles
|
||
type: string
|
||
- description: Avatar image
|
||
in: formData
|
||
name: avatar
|
||
type: file
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.User'
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create new user (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
/admin/users/{id}:
|
||
delete:
|
||
parameters:
|
||
- description: User ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- default: false
|
||
description: Hard delete (permanent)
|
||
in: query
|
||
name: hard
|
||
type: boolean
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete user (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
get:
|
||
parameters:
|
||
- description: User ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.User'
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get user by ID (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
put:
|
||
consumes:
|
||
- multipart/form-data
|
||
parameters:
|
||
- description: User ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Email
|
||
in: formData
|
||
name: email
|
||
type: string
|
||
- description: Password
|
||
in: formData
|
||
name: password
|
||
type: string
|
||
- description: Username
|
||
in: formData
|
||
name: user_name
|
||
type: string
|
||
- description: Email verified
|
||
in: formData
|
||
name: email_verified
|
||
type: boolean
|
||
- description: 'Roles (comma separated: admin,user)'
|
||
in: formData
|
||
name: roles
|
||
type: string
|
||
- description: Avatar image
|
||
in: formData
|
||
name: avatar
|
||
type: file
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update user (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
/admin/users/{id}/avatar:
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
parameters:
|
||
- description: User ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Avatar image file
|
||
in: formData
|
||
name: avatar
|
||
required: true
|
||
type: file
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Upload avatar for any user (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
/admin/users/{id}/restore:
|
||
post:
|
||
parameters:
|
||
- description: User ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Restore a soft deleted user (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
/admin/users/{id}/roles:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: User ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Roles
|
||
in: body
|
||
name: roles
|
||
required: true
|
||
schema:
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Assign roles to user (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
/admin/users/{id}/roles/{role}:
|
||
delete:
|
||
parameters:
|
||
- description: User ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Role name
|
||
in: path
|
||
name: role
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Remove role from user (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
/admin/users/deleted:
|
||
get:
|
||
parameters:
|
||
- default: 1
|
||
description: Page number
|
||
in: query
|
||
name: page
|
||
type: integer
|
||
- default: 10
|
||
description: Items per page
|
||
in: query
|
||
name: limit
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all soft deleted users (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
/admin/users/search:
|
||
get:
|
||
parameters:
|
||
- description: Search query
|
||
in: query
|
||
name: q
|
||
required: true
|
||
type: string
|
||
- default: 1
|
||
description: Page number
|
||
in: query
|
||
name: page
|
||
type: integer
|
||
- default: 10
|
||
description: Items per page
|
||
in: query
|
||
name: limit
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Search users (Admin only)
|
||
tags:
|
||
- Admin - User Management
|
||
/auth/{provider}:
|
||
get:
|
||
description: Redirect to OAuth2 provider
|
||
parameters:
|
||
- description: Provider (google, github)
|
||
in: path
|
||
name: provider
|
||
required: true
|
||
type: string
|
||
responses: {}
|
||
summary: Start OAuth2 flow
|
||
tags:
|
||
- oauth
|
||
/auth/{provider}/callback:
|
||
get:
|
||
description: Handle callback from OAuth2 provider
|
||
parameters:
|
||
- description: Provider (google, github)
|
||
in: path
|
||
name: provider
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: OAuth2 Callback
|
||
tags:
|
||
- oauth
|
||
/auth/login:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Login with email and password to get JWT token
|
||
parameters:
|
||
- description: Login Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.LoginRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Login user
|
||
tags:
|
||
- auth
|
||
/auth/me:
|
||
get:
|
||
description: Get details of the currently authenticated user
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.User'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get Current User Profile
|
||
tags:
|
||
- auth
|
||
/auth/refresh:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'usage: send refresh_token to get new access_token'
|
||
parameters:
|
||
- description: Refresh Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.RefreshRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Refresh Access Token
|
||
tags:
|
||
- auth
|
||
/auth/register:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Register with username, email and password
|
||
parameters:
|
||
- description: Register Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.RegisterRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Register a new user
|
||
tags:
|
||
- auth
|
||
/auth/verify-email:
|
||
get:
|
||
description: Verify email with token sent after email/password registration
|
||
parameters:
|
||
- description: Verification token
|
||
in: query
|
||
name: token
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Verify email address
|
||
tags:
|
||
- auth
|
||
/banners:
|
||
get:
|
||
description: Retrieve a list of active banners
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Banner'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active banners
|
||
tags:
|
||
- banners
|
||
/banners/active:
|
||
get:
|
||
description: Retrieve the newest active banner
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Banner'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get active banner
|
||
tags:
|
||
- banners
|
||
/contact:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Send a contact message
|
||
parameters:
|
||
- description: Contact Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreateContactRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.Contact'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Create a new contact message
|
||
tags:
|
||
- contact
|
||
/educations:
|
||
get:
|
||
description: Retrieve a list of active education entries
|
||
parameters:
|
||
- description: Resume ID
|
||
in: query
|
||
name: resume_id
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Education'
|
||
type: array
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active educations
|
||
tags:
|
||
- resume
|
||
/experiences:
|
||
get:
|
||
description: Retrieve a list of active experience entries
|
||
parameters:
|
||
- description: Resume ID
|
||
in: query
|
||
name: resume_id
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Experience'
|
||
type: array
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active experiences
|
||
tags:
|
||
- resume
|
||
/homes:
|
||
get:
|
||
description: Retrieve a list of active home entries
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Home'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active homes
|
||
tags:
|
||
- home
|
||
/homes/{slug}:
|
||
get:
|
||
description: Retrieve a single active home by slug
|
||
parameters:
|
||
- description: Home Slug
|
||
in: path
|
||
name: slug
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Home'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get a home by slug
|
||
tags:
|
||
- home
|
||
/knowledges:
|
||
get:
|
||
description: Retrieve a list of active knowledge entries
|
||
parameters:
|
||
- description: Resume ID
|
||
in: query
|
||
name: resume_id
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Knowledge'
|
||
type: array
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active knowledges
|
||
tags:
|
||
- resume
|
||
/main-menu:
|
||
get:
|
||
description: Retrieve a list of active main menu entries
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.MainMenu'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active main menus
|
||
tags:
|
||
- menu
|
||
/main-menu/active:
|
||
get:
|
||
description: Retrieve the newest active main menu entry
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.MainMenu'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get active main menu
|
||
tags:
|
||
- menu
|
||
/post-categories:
|
||
get:
|
||
description: Retrieve a list of active post categories
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active post categories
|
||
tags:
|
||
- post-categories
|
||
/post-categories/{id}/views:
|
||
post:
|
||
description: Record a post category view (daily per IP)
|
||
parameters:
|
||
- description: Category ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.PostCategoryView'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Track post category view
|
||
tags:
|
||
- post-category-views
|
||
/post-categories/{slug}:
|
||
get:
|
||
description: Retrieve an active post category by slug
|
||
parameters:
|
||
- description: Category Slug
|
||
in: path
|
||
name: slug
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.PostCategory'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get post category by slug
|
||
tags:
|
||
- post-categories
|
||
/post-tags:
|
||
get:
|
||
description: Retrieve a list of active post tags
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.PostTag'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active post tags
|
||
tags:
|
||
- post-tags
|
||
/posts:
|
||
get:
|
||
description: Retrieve a list of active posts with pagination. Use front=true
|
||
for front posts only
|
||
parameters:
|
||
- description: Front posts only
|
||
in: query
|
||
name: front
|
||
type: boolean
|
||
- default: 1
|
||
description: Page number
|
||
in: query
|
||
name: page
|
||
type: integer
|
||
- default: 10
|
||
description: Items per page
|
||
in: query
|
||
name: limit
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active posts with pagination
|
||
tags:
|
||
- posts
|
||
/posts/{id}/comments:
|
||
get:
|
||
description: Retrieve active comments for a post
|
||
parameters:
|
||
- description: Post ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.PostComment'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get active post comments
|
||
tags:
|
||
- post-comments
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Create a new comment for a post (auth required)
|
||
parameters:
|
||
- description: Post ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Comment Request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/handlers.CreatePostCommentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.PostComment'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create a post comment
|
||
tags:
|
||
- post-comments
|
||
/posts/slug/{slug}:
|
||
get:
|
||
description: Retrieve an active post by slug
|
||
parameters:
|
||
- description: Post Slug
|
||
in: path
|
||
name: slug
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Post'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get post by slug
|
||
tags:
|
||
- posts
|
||
/profile:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.User'
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get current user profile
|
||
tags:
|
||
- Profile
|
||
put:
|
||
consumes:
|
||
- multipart/form-data
|
||
parameters:
|
||
- description: Username
|
||
in: formData
|
||
name: user_name
|
||
type: string
|
||
- description: Avatar image
|
||
in: formData
|
||
name: avatar
|
||
type: file
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update current user profile
|
||
tags:
|
||
- Profile
|
||
/profile/email:
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: Email change request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Change email address
|
||
tags:
|
||
- Profile
|
||
/profile/password:
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: Password change request
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Change password
|
||
tags:
|
||
- Profile
|
||
/resumes:
|
||
get:
|
||
description: Retrieve a list of active resumes
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Resume'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active resumes
|
||
tags:
|
||
- resume
|
||
/resumes/active:
|
||
get:
|
||
description: Retrieve the newest active resume entry
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Resume'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get active resume
|
||
tags:
|
||
- resume
|
||
/service-titles:
|
||
get:
|
||
description: Retrieve a list of active service titles
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.ServiceTitle'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active service titles
|
||
tags:
|
||
- services
|
||
/service-titles/active:
|
||
get:
|
||
description: Retrieve the newest active service title
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.ServiceTitle'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get active service title
|
||
tags:
|
||
- services
|
||
/services:
|
||
get:
|
||
description: Retrieve a list of active services
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Service'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active services
|
||
tags:
|
||
- services
|
||
/services/{slug}:
|
||
get:
|
||
description: Retrieve a single active service by slug
|
||
parameters:
|
||
- description: Service Slug
|
||
in: path
|
||
name: slug
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Service'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get service by slug
|
||
tags:
|
||
- services
|
||
/settings/cors/blacklist:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.CorsBlacklist'
|
||
type: array
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all CORS blacklist entries
|
||
tags:
|
||
- Settings
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: Blacklist data
|
||
in: body
|
||
name: blacklist
|
||
required: true
|
||
schema:
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.CorsBlacklist'
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create CORS blacklist entry
|
||
tags:
|
||
- Settings
|
||
/settings/cors/blacklist/{id}:
|
||
delete:
|
||
parameters:
|
||
- description: Blacklist ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete CORS blacklist entry
|
||
tags:
|
||
- Settings
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: Blacklist ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Update data
|
||
in: body
|
||
name: blacklist
|
||
required: true
|
||
schema:
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update CORS blacklist entry
|
||
tags:
|
||
- Settings
|
||
/settings/cors/cache/invalidate:
|
||
post:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Invalidate CORS cache (whitelist + blacklist)
|
||
tags:
|
||
- Settings
|
||
/settings/cors/whitelist:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.CorsWhitelist'
|
||
type: array
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all CORS whitelist entries
|
||
tags:
|
||
- Settings
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: Whitelist data
|
||
in: body
|
||
name: whitelist
|
||
required: true
|
||
schema:
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/models.CorsWhitelist'
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Create CORS whitelist entry
|
||
tags:
|
||
- Settings
|
||
/settings/cors/whitelist/{id}:
|
||
delete:
|
||
parameters:
|
||
- description: Whitelist ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete CORS whitelist entry
|
||
tags:
|
||
- Settings
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: Whitelist ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Update data
|
||
in: body
|
||
name: whitelist
|
||
required: true
|
||
schema:
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update CORS whitelist entry
|
||
tags:
|
||
- Settings
|
||
/settings/ratelimit:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.RateLimitSetting'
|
||
type: array
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Get all rate limit settings
|
||
tags:
|
||
- Settings
|
||
/settings/ratelimit/{id}:
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: Setting ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Update data
|
||
in: body
|
||
name: setting
|
||
required: true
|
||
schema:
|
||
type: object
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Update rate limit setting
|
||
tags:
|
||
- Settings
|
||
/site-info:
|
||
get:
|
||
description: Retrieve a list of active site info entries
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Setting'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active site info
|
||
tags:
|
||
- site-info
|
||
/site-info/active:
|
||
get:
|
||
description: Retrieve the newest active site info entry
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.Setting'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get active site info
|
||
tags:
|
||
- site-info
|
||
/site-settings:
|
||
get:
|
||
description: Retrieve a list of active site settings
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.SiteSettings'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active site settings
|
||
tags:
|
||
- site-settings
|
||
/site-settings/active:
|
||
get:
|
||
description: Retrieve the newest active site settings entry
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/models.SiteSettings'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get active site settings
|
||
tags:
|
||
- site-settings
|
||
/skills:
|
||
get:
|
||
description: Retrieve a list of active skill entries
|
||
parameters:
|
||
- description: Resume ID
|
||
in: query
|
||
name: resume_id
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Skill'
|
||
type: array
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all active skills
|
||
tags:
|
||
- resume
|
||
/tags:
|
||
get:
|
||
description: Retrieve a list of all tags. Public endpoint returns only active
|
||
tags. Admin endpoint returns all.
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
items:
|
||
$ref: '#/definitions/models.Tag'
|
||
type: array
|
||
"500":
|
||
description: Internal Server Error
|
||
schema:
|
||
additionalProperties:
|
||
type: string
|
||
type: object
|
||
summary: Get all tags
|
||
tags:
|
||
- tags
|
||
/user/avatar:
|
||
delete:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Delete user avatar
|
||
tags:
|
||
- User
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
parameters:
|
||
- description: Avatar image file
|
||
in: formData
|
||
name: avatar
|
||
required: true
|
||
type: file
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
additionalProperties: true
|
||
type: object
|
||
security:
|
||
- ApiKeyAuth: []
|
||
summary: Upload user avatar
|
||
tags:
|
||
- User
|
||
securityDefinitions:
|
||
ApiKeyAuth:
|
||
in: header
|
||
name: Authorization
|
||
type: apiKey
|
||
swagger: "2.0"
|