2046 lines
50 KiB
YAML
2046 lines
50 KiB
YAML
basePath: /
|
|
definitions:
|
|
dto.AboutDTO:
|
|
properties:
|
|
about:
|
|
type: string
|
|
achievements:
|
|
items:
|
|
$ref: '#/definitions/dto.AchievementDTO'
|
|
type: array
|
|
profile_picture:
|
|
type: string
|
|
type: object
|
|
dto.AchievementDTO:
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
title:
|
|
type: string
|
|
value:
|
|
type: string
|
|
type: object
|
|
dto.AchievementItemDTO:
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
value:
|
|
type: string
|
|
type: object
|
|
dto.AnalyticsDTO:
|
|
properties:
|
|
total_assets:
|
|
type: integer
|
|
total_profiles:
|
|
type: integer
|
|
type: object
|
|
dto.AssetResponse:
|
|
properties:
|
|
asset_category_id:
|
|
type: string
|
|
category:
|
|
$ref: '#/definitions/dto.CategoryDTO'
|
|
cover_image:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
description:
|
|
type: string
|
|
id:
|
|
type: string
|
|
link:
|
|
type: string
|
|
owner_id:
|
|
type: string
|
|
profile_id:
|
|
type: string
|
|
status:
|
|
type: integer
|
|
title:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
dto.Blog:
|
|
properties:
|
|
author:
|
|
type: string
|
|
category:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type: object
|
|
category_id:
|
|
type: string
|
|
content:
|
|
type: string
|
|
content_html:
|
|
type: string
|
|
content_json: {}
|
|
cover_image:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
id:
|
|
type: string
|
|
is_featured:
|
|
type: boolean
|
|
meta_tags: {}
|
|
slug:
|
|
type: string
|
|
status:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
title:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
view_count:
|
|
type: integer
|
|
type: object
|
|
dto.CategoriesPreviewRequest:
|
|
properties:
|
|
assets_per_category:
|
|
type: integer
|
|
category_ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
featured_only:
|
|
type: boolean
|
|
type: object
|
|
dto.CategoriesPreviewResponse:
|
|
properties:
|
|
categories:
|
|
items:
|
|
$ref: '#/definitions/dto.CategoryWithPreviewAssetsDTO'
|
|
type: array
|
|
type: object
|
|
dto.CategoryDTO:
|
|
properties:
|
|
card_type:
|
|
type: string
|
|
color:
|
|
type: string
|
|
description:
|
|
type: string
|
|
featured:
|
|
type: boolean
|
|
icon:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
dto.CategoryWithPreviewAssetsDTO:
|
|
properties:
|
|
assets:
|
|
items:
|
|
$ref: '#/definitions/dto.AssetResponse'
|
|
type: array
|
|
category:
|
|
$ref: '#/definitions/dto.CategoryDTO'
|
|
has_more:
|
|
type: boolean
|
|
total_assets:
|
|
type: integer
|
|
type: object
|
|
dto.ContactDTO:
|
|
properties:
|
|
email:
|
|
type: string
|
|
phone:
|
|
type: string
|
|
social_links:
|
|
items:
|
|
$ref: '#/definitions/dto.SocialLinkDTO'
|
|
type: array
|
|
type: object
|
|
dto.CreateAssetRequest:
|
|
properties:
|
|
asset_category_id:
|
|
type: string
|
|
description:
|
|
type: string
|
|
link:
|
|
type: string
|
|
profile_id:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type: object
|
|
dto.CreateProfileRequest:
|
|
properties:
|
|
about:
|
|
$ref: '#/definitions/dto.AboutDTO'
|
|
contact:
|
|
$ref: '#/definitions/dto.ContactDTO'
|
|
handle:
|
|
type: string
|
|
hero:
|
|
$ref: '#/definitions/dto.HeroDTO'
|
|
page_section_order:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
page_setting:
|
|
$ref: '#/definitions/dto.PageSettingDTO'
|
|
skills:
|
|
items:
|
|
$ref: '#/definitions/dto.SkillDTO'
|
|
type: array
|
|
type: object
|
|
dto.CreateProfileRoleRequest:
|
|
properties:
|
|
title:
|
|
type: string
|
|
type: object
|
|
dto.ErrorResponse:
|
|
properties:
|
|
message:
|
|
type: string
|
|
status:
|
|
example: 400
|
|
type: integer
|
|
type: object
|
|
dto.FlatProfileDTO:
|
|
properties:
|
|
about:
|
|
type: string
|
|
achievements:
|
|
additionalProperties:
|
|
$ref: '#/definitions/dto.AchievementItemDTO'
|
|
type: object
|
|
background_image:
|
|
type: string
|
|
contact_email:
|
|
type: string
|
|
contact_phone:
|
|
type: string
|
|
country:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
cta_action:
|
|
type: string
|
|
cta_enabled:
|
|
type: boolean
|
|
current_company:
|
|
type: string
|
|
custom_roles:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
first_name:
|
|
type: string
|
|
handle_updated_at:
|
|
type: string
|
|
id:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
profile_handle:
|
|
type: string
|
|
profile_picture:
|
|
type: string
|
|
resume_link:
|
|
type: string
|
|
role:
|
|
$ref: '#/definitions/dto.RoleDTO'
|
|
role_id:
|
|
type: string
|
|
role_level:
|
|
type: string
|
|
short_description:
|
|
type: string
|
|
social_links:
|
|
items:
|
|
$ref: '#/definitions/dto.SocialLinkDTO'
|
|
type: array
|
|
status:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
dto.HeroDTO:
|
|
properties:
|
|
avatar:
|
|
type: string
|
|
company:
|
|
type: string
|
|
cta_enabled:
|
|
type: boolean
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
resume_link:
|
|
type: string
|
|
role_id:
|
|
type: string
|
|
role_level:
|
|
type: string
|
|
short_description:
|
|
type: string
|
|
type: object
|
|
dto.Landing:
|
|
properties:
|
|
data:
|
|
$ref: '#/definitions/dto.LandingPageData'
|
|
message:
|
|
type: string
|
|
type: object
|
|
dto.LandingAssetData:
|
|
properties:
|
|
assets:
|
|
items:
|
|
$ref: '#/definitions/dto.AssetResponse'
|
|
type: array
|
|
icon:
|
|
type: string
|
|
id:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type: object
|
|
dto.LandingPageData:
|
|
properties:
|
|
assets:
|
|
items:
|
|
$ref: '#/definitions/dto.LandingAssetData'
|
|
type: array
|
|
blogs:
|
|
items:
|
|
$ref: '#/definitions/dto.Blog'
|
|
type: array
|
|
categories:
|
|
items:
|
|
$ref: '#/definitions/dto.CategoryDTO'
|
|
type: array
|
|
specialist_roles:
|
|
items:
|
|
$ref: '#/definitions/dto.ProfileRole'
|
|
type: array
|
|
specialists:
|
|
items:
|
|
$ref: '#/definitions/dto.Specialist'
|
|
type: array
|
|
type: object
|
|
dto.ListAssetsByCategoryIDResponse:
|
|
properties:
|
|
assets:
|
|
items:
|
|
$ref: '#/definitions/dto.AssetResponse'
|
|
type: array
|
|
category:
|
|
$ref: '#/definitions/dto.CategoryDTO'
|
|
page:
|
|
type: integer
|
|
page_size:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
total_pages:
|
|
type: integer
|
|
type: object
|
|
dto.ListAssetsResponse:
|
|
properties:
|
|
assets:
|
|
items:
|
|
$ref: '#/definitions/dto.AssetResponse'
|
|
type: array
|
|
type: object
|
|
dto.ListCategoriesResponse:
|
|
properties:
|
|
categories:
|
|
items:
|
|
$ref: '#/definitions/dto.CategoryDTO'
|
|
type: array
|
|
type: object
|
|
dto.ListProfilesResponse:
|
|
properties:
|
|
page:
|
|
type: integer
|
|
page_size:
|
|
type: integer
|
|
profiles:
|
|
items:
|
|
$ref: '#/definitions/dto.ProfileResponse'
|
|
type: array
|
|
total:
|
|
type: integer
|
|
type: object
|
|
dto.LoginRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
type: object
|
|
dto.OAuthCallbackRequest:
|
|
properties:
|
|
code:
|
|
type: string
|
|
provider:
|
|
$ref: '#/definitions/oauth.Provider'
|
|
type: object
|
|
dto.OAuthCallbackResponse:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
is_new_user:
|
|
type: boolean
|
|
refresh_token:
|
|
type: string
|
|
type: object
|
|
dto.OAuthRedirectURLRequest:
|
|
properties:
|
|
provider:
|
|
$ref: '#/definitions/oauth.Provider'
|
|
type: object
|
|
dto.OAuthRedirectURLResponse:
|
|
properties:
|
|
redirect_url:
|
|
type: string
|
|
type: object
|
|
dto.OverviewAssetDTO:
|
|
properties:
|
|
asset_category:
|
|
$ref: '#/definitions/dto.CategoryDTO'
|
|
asset_category_id:
|
|
type: string
|
|
content:
|
|
type: string
|
|
cover_image:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
description:
|
|
type: string
|
|
id:
|
|
type: string
|
|
link:
|
|
type: string
|
|
owner_id:
|
|
type: string
|
|
price:
|
|
type: integer
|
|
profile: {}
|
|
profile_id:
|
|
type: string
|
|
rating:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
title:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
dto.OverviewFetchedDataDTO:
|
|
properties:
|
|
analytics:
|
|
$ref: '#/definitions/dto.AnalyticsDTO'
|
|
assets:
|
|
items:
|
|
$ref: '#/definitions/dto.OverviewAssetDTO'
|
|
type: array
|
|
recently_joined:
|
|
items:
|
|
$ref: '#/definitions/dto.FlatProfileDTO'
|
|
type: array
|
|
type: object
|
|
dto.OverviewFetchedResponse:
|
|
properties:
|
|
data:
|
|
$ref: '#/definitions/dto.OverviewFetchedDataDTO'
|
|
message:
|
|
type: string
|
|
type: object
|
|
dto.PageSectionsResponse:
|
|
properties:
|
|
contact:
|
|
$ref: '#/definitions/dto.ContactDTO'
|
|
hero:
|
|
$ref: '#/definitions/dto.HeroDTO'
|
|
page_section_order:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
skills:
|
|
items:
|
|
$ref: '#/definitions/dto.SkillDTO'
|
|
type: array
|
|
type: object
|
|
dto.PageSettingDTO:
|
|
properties:
|
|
visibility_level:
|
|
type: string
|
|
type: object
|
|
dto.ProfileResponse:
|
|
properties:
|
|
about:
|
|
$ref: '#/definitions/dto.AboutDTO'
|
|
contact:
|
|
$ref: '#/definitions/dto.ContactDTO'
|
|
handle:
|
|
type: string
|
|
hero:
|
|
$ref: '#/definitions/dto.HeroDTO'
|
|
id:
|
|
type: string
|
|
page_section_order:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
page_setting:
|
|
$ref: '#/definitions/dto.PageSettingDTO'
|
|
skills:
|
|
items:
|
|
$ref: '#/definitions/dto.SkillDTO'
|
|
type: array
|
|
type: object
|
|
dto.ProfileRole:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type: object
|
|
dto.RefreshTokenRequest:
|
|
properties:
|
|
refresh_token:
|
|
type: string
|
|
type: object
|
|
dto.RegisterRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
password:
|
|
type: string
|
|
phone_number:
|
|
type: string
|
|
type: object
|
|
dto.ResetPasswordRequest:
|
|
properties:
|
|
code:
|
|
type: string
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
type: object
|
|
dto.Response:
|
|
properties:
|
|
data: {}
|
|
message:
|
|
type: string
|
|
status:
|
|
type: integer
|
|
type: object
|
|
dto.RoleDTO:
|
|
properties:
|
|
ID:
|
|
type: string
|
|
Name:
|
|
type: string
|
|
type: object
|
|
dto.SendResetPasswordEmailRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
type: object
|
|
dto.SendVerificationEmailRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
type: object
|
|
dto.SetupProfileRequest:
|
|
properties:
|
|
handle:
|
|
type: string
|
|
role_id:
|
|
type: string
|
|
role_level:
|
|
type: string
|
|
short_description:
|
|
type: string
|
|
type: object
|
|
dto.Skill:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
dto.SkillDTO:
|
|
properties:
|
|
level:
|
|
type: string
|
|
skill_name:
|
|
type: string
|
|
type: object
|
|
dto.SkillsUpdateRequest:
|
|
properties:
|
|
skills:
|
|
items:
|
|
$ref: '#/definitions/dto.SkillDTO'
|
|
type: array
|
|
type: object
|
|
dto.SocialLinkDTO:
|
|
properties:
|
|
link:
|
|
type: string
|
|
link_type:
|
|
type: string
|
|
type: object
|
|
dto.Specialist:
|
|
properties:
|
|
avatar:
|
|
type: string
|
|
handle:
|
|
type: string
|
|
id:
|
|
type: string
|
|
type: object
|
|
dto.SpecialistOverviewFetchedDataDTO:
|
|
properties:
|
|
analytics:
|
|
$ref: '#/definitions/dto.AnalyticsDTO'
|
|
assets:
|
|
items:
|
|
$ref: '#/definitions/dto.OverviewAssetDTO'
|
|
type: array
|
|
completionPercent:
|
|
type: integer
|
|
profile:
|
|
$ref: '#/definitions/dto.ProfileResponse'
|
|
recently_joined:
|
|
items:
|
|
$ref: '#/definitions/dto.FlatProfileDTO'
|
|
type: array
|
|
skills:
|
|
items:
|
|
$ref: '#/definitions/dto.SkillDTO'
|
|
type: array
|
|
tasks:
|
|
$ref: '#/definitions/dto.TasksDTO'
|
|
type: object
|
|
dto.SpecialistOverviewFetchedResponse:
|
|
properties:
|
|
data:
|
|
$ref: '#/definitions/dto.SpecialistOverviewFetchedDataDTO'
|
|
message:
|
|
type: string
|
|
type: object
|
|
dto.SuccessResponse:
|
|
properties:
|
|
message:
|
|
type: string
|
|
status:
|
|
example: 200
|
|
type: integer
|
|
type: object
|
|
dto.TasksDTO:
|
|
properties:
|
|
about_action:
|
|
type: boolean
|
|
profile_action:
|
|
type: boolean
|
|
publish_action:
|
|
type: boolean
|
|
skills_action:
|
|
type: boolean
|
|
social_action:
|
|
type: boolean
|
|
works_action:
|
|
type: boolean
|
|
type: object
|
|
dto.TokenResponse:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
refresh_token:
|
|
type: string
|
|
type: object
|
|
dto.UpdateAssetRequest:
|
|
properties:
|
|
asset_category_id:
|
|
type: string
|
|
description:
|
|
type: string
|
|
id:
|
|
type: string
|
|
link:
|
|
type: string
|
|
status:
|
|
type: integer
|
|
title:
|
|
type: string
|
|
type: object
|
|
dto.UpdateProfileRequest:
|
|
properties:
|
|
about:
|
|
$ref: '#/definitions/dto.AboutDTO'
|
|
contact:
|
|
$ref: '#/definitions/dto.ContactDTO'
|
|
handle:
|
|
type: string
|
|
hero:
|
|
$ref: '#/definitions/dto.HeroDTO'
|
|
id:
|
|
type: string
|
|
page_section_order:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
page_setting:
|
|
$ref: '#/definitions/dto.PageSettingDTO'
|
|
skills:
|
|
items:
|
|
$ref: '#/definitions/dto.SkillDTO'
|
|
type: array
|
|
type: object
|
|
dto.UpdateProfileRoleRequest:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type: object
|
|
dto.UserInfoResponse:
|
|
properties:
|
|
email:
|
|
type: string
|
|
email_verified:
|
|
type: boolean
|
|
first_name:
|
|
type: string
|
|
id:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
phone_number:
|
|
type: string
|
|
profile_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
type: object
|
|
dto.VerifyAccountRequest:
|
|
properties:
|
|
code:
|
|
type: string
|
|
email:
|
|
type: string
|
|
type: object
|
|
oauth.Provider:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
type: integer
|
|
x-enum-varnames:
|
|
- Unknown
|
|
- Credentials
|
|
- Google
|
|
- GitHub
|
|
- Linkedin
|
|
- Mock
|
|
host: localhost:8101
|
|
info:
|
|
contact:
|
|
email: support@abric.io
|
|
name: API Support
|
|
url: http://www.abric.io/support
|
|
description: API for base application
|
|
license:
|
|
name: Apache 2.0
|
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
termsOfService: http://swagger.io/terms/
|
|
title: Base API
|
|
version: 1.0.0
|
|
paths:
|
|
/api/specialists/v1/page-sections:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/dto.PageSectionsResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: get page sections
|
|
tags:
|
|
- Specialist
|
|
/api/specialists/v1/page-sections/contact:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: contact section
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.ContactDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/dto.SuccessResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: update contact section
|
|
tags:
|
|
- Specialist
|
|
/api/specialists/v1/page-sections/hero:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: hero section
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.HeroDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/dto.SuccessResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: update hero section
|
|
tags:
|
|
- Specialist
|
|
/api/specialists/v1/page-sections/skills:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: skills section
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.SkillsUpdateRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/dto.SuccessResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: update skills section
|
|
tags:
|
|
- Specialist
|
|
/api/specialists/v1/profile:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/dto.ProfileResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: get specialist profile
|
|
tags:
|
|
- Specialist
|
|
/api/v1/assets:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: create a new asset
|
|
parameters:
|
|
- description: create asset request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.CreateAssetRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: asset response
|
|
schema:
|
|
$ref: '#/definitions/dto.AssetResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: category not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: create asset
|
|
tags:
|
|
- Asset
|
|
/api/v1/assets/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: delete an asset
|
|
parameters:
|
|
- description: asset ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: success response
|
|
schema:
|
|
$ref: '#/definitions/dto.SuccessResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: asset not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: delete asset
|
|
tags:
|
|
- Asset
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get asset by ID
|
|
parameters:
|
|
- description: asset ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: asset response
|
|
schema:
|
|
$ref: '#/definitions/dto.AssetResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: asset not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: get asset by ID
|
|
tags:
|
|
- Asset
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update an existing asset
|
|
parameters:
|
|
- description: asset ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: update asset request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.UpdateAssetRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: asset response
|
|
schema:
|
|
$ref: '#/definitions/dto.AssetResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: asset not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: update asset
|
|
tags:
|
|
- Asset
|
|
/api/v1/assets/categories:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: returns all asset categories
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: list of categories
|
|
schema:
|
|
$ref: '#/definitions/dto.ListCategoriesResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: list asset categories
|
|
tags:
|
|
- Asset
|
|
/api/v1/assets/categories/{id}/assets:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: returns paginated assets for the given category. Use after fetching
|
|
categories from GET /assets/categories.
|
|
parameters:
|
|
- description: category UUID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: max items per page (default 10)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: page number (default 1)
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: paginated assets for category
|
|
schema:
|
|
$ref: '#/definitions/dto.ListAssetsByCategoryIDResponse'
|
|
"400":
|
|
description: invalid category ID
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: category not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: list assets by category ID
|
|
tags:
|
|
- Asset
|
|
/api/v1/assets/categories/preview:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: returns asset categories, each with up to N sample assets (default
|
|
8). Use for carousels and landing previews.
|
|
parameters:
|
|
- description: filter options
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.CategoriesPreviewRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: categories with preview assets
|
|
schema:
|
|
$ref: '#/definitions/dto.CategoriesPreviewResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: list categories with preview assets
|
|
tags:
|
|
- Asset
|
|
/api/v1/auth/login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: login with email and password
|
|
parameters:
|
|
- description: login request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.LoginRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: token response
|
|
schema:
|
|
$ref: '#/definitions/dto.TokenResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"401":
|
|
description: invalid credentials
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: login with credentials
|
|
tags:
|
|
- Public
|
|
/api/v1/auth/oauth/callback:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: handle OAuth callback and authenticate user
|
|
parameters:
|
|
- description: oauth callback request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.OAuthCallbackRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: oauth callback response
|
|
schema:
|
|
$ref: '#/definitions/dto.OAuthCallbackResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: oauth callback
|
|
tags:
|
|
- Public
|
|
/api/v1/auth/oauth/redirect-url:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: get OAuth redirect URL for the specified provider
|
|
parameters:
|
|
- description: oauth redirect url request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.OAuthRedirectURLRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: oauth redirect url response
|
|
schema:
|
|
$ref: '#/definitions/dto.OAuthRedirectURLResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: get oauth redirect url
|
|
tags:
|
|
- Public
|
|
/api/v1/auth/refresh-token:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: refresh access token using refresh token
|
|
parameters:
|
|
- description: refresh token request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.RefreshTokenRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: token response
|
|
schema:
|
|
$ref: '#/definitions/dto.TokenResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"401":
|
|
description: invalid refresh token
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: refresh token
|
|
tags:
|
|
- Public
|
|
/api/v1/auth/register:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: register a new user with email and password
|
|
parameters:
|
|
- description: register request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.RegisterRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: token response
|
|
schema:
|
|
$ref: '#/definitions/dto.TokenResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: register with credentials
|
|
tags:
|
|
- Public
|
|
/api/v1/auth/reset-password:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: reset password with reset code
|
|
parameters:
|
|
- description: reset password request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.ResetPasswordRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: token response
|
|
schema:
|
|
$ref: '#/definitions/dto.TokenResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: reset password
|
|
tags:
|
|
- Public
|
|
/api/v1/auth/send-reset-password-email:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: send password reset email
|
|
parameters:
|
|
- description: send reset password email request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.SendResetPasswordEmailRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: success response
|
|
schema:
|
|
$ref: '#/definitions/dto.SuccessResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: send reset password email
|
|
tags:
|
|
- Public
|
|
/api/v1/auth/send-verification-email:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: send verification email to the authenticated user
|
|
parameters:
|
|
- description: send verification email request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.SendVerificationEmailRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: success response
|
|
schema:
|
|
$ref: '#/definitions/dto.SuccessResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: send verification email
|
|
tags:
|
|
- Public
|
|
/api/v1/auth/verify-account:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: verify account with verification code
|
|
parameters:
|
|
- description: verify account request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.VerifyAccountRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: success response
|
|
schema:
|
|
$ref: '#/definitions/dto.SuccessResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: verify account
|
|
tags:
|
|
- Public
|
|
/api/v1/backoffice/profile-roles:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: returns all profile roles (id, title, status)
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: list of profile roles
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/dto.ProfileRole'
|
|
type: array
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: list profile roles
|
|
tags:
|
|
- BackOffice
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: create a new profile role
|
|
parameters:
|
|
- description: create request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.CreateProfileRoleRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: created profile role
|
|
schema:
|
|
$ref: '#/definitions/dto.ProfileRole'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"401":
|
|
description: unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: create profile role
|
|
tags:
|
|
- BackOffice
|
|
/api/v1/backoffice/profile-roles/{id}:
|
|
delete:
|
|
description: delete a profile role
|
|
parameters:
|
|
- description: profile role ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: success
|
|
schema:
|
|
$ref: '#/definitions/dto.Response'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"401":
|
|
description: unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: delete profile role
|
|
tags:
|
|
- BackOffice
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get profile role by ID
|
|
parameters:
|
|
- description: profile role ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: profile role
|
|
schema:
|
|
$ref: '#/definitions/dto.ProfileRole'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: get profile role by ID
|
|
tags:
|
|
- BackOffice
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update an existing profile role
|
|
parameters:
|
|
- description: profile role ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: update request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.UpdateProfileRoleRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: updated profile role
|
|
schema:
|
|
$ref: '#/definitions/dto.ProfileRole'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"401":
|
|
description: unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: update profile role
|
|
tags:
|
|
- BackOffice
|
|
/api/v1/landing:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: returns landing page with categories, specialist roles, assets
|
|
by category, specialists, and blogs
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: landing page data
|
|
schema:
|
|
$ref: '#/definitions/dto.Landing'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: get landing page
|
|
tags:
|
|
- Landing
|
|
/api/v1/platform/overview/discovery:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: overview for browsing users (latest assets, recently joined profiles,
|
|
analytics). No profile required.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: overview response
|
|
schema:
|
|
$ref: '#/definitions/dto.OverviewFetchedResponse'
|
|
"401":
|
|
description: unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: get discovery overview
|
|
tags:
|
|
- Platform
|
|
/api/v1/platform/overview/specialist:
|
|
get:
|
|
description: get overview for specialist view with assets, profile, skills,
|
|
recently joined, analytics
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/dto.SpecialistOverviewFetchedResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: profile not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- BearerAuth: []
|
|
summary: get specialist overview
|
|
tags:
|
|
- Platform
|
|
/api/v1/platform/profile-roles:
|
|
get:
|
|
description: returns all profile roles (id, title) for platform - use role_id
|
|
when calling setup-profile
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: list of profile roles
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/dto.ProfileRole'
|
|
type: array
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: list profile roles
|
|
tags:
|
|
- Platform
|
|
/api/v1/platform/skills:
|
|
get:
|
|
description: returns all skills from the catalog for profile update skill selection
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: list of skills
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/dto.Skill'
|
|
type: array
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: list skills
|
|
tags:
|
|
- Platform
|
|
/api/v1/platform/user/info:
|
|
get:
|
|
description: returns user and profile_id for the authenticated user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: account info
|
|
schema:
|
|
$ref: '#/definitions/dto.UserInfoResponse'
|
|
"401":
|
|
description: unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: user not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: get account info
|
|
tags:
|
|
- Platform
|
|
/api/v1/profiles:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: list profiles with filtering and pagination
|
|
parameters:
|
|
- description: role ID
|
|
in: query
|
|
name: role_id
|
|
type: string
|
|
- description: first name
|
|
in: query
|
|
name: first_name
|
|
type: string
|
|
- description: last name
|
|
in: query
|
|
name: last_name
|
|
type: string
|
|
- description: company
|
|
in: query
|
|
name: company
|
|
type: string
|
|
- description: skill name
|
|
in: query
|
|
name: skill_name
|
|
type: string
|
|
- default: 1
|
|
description: page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- default: 10
|
|
description: page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: sort field
|
|
in: query
|
|
name: sorted_by
|
|
type: string
|
|
- default: false
|
|
description: ascending order
|
|
in: query
|
|
name: ascending
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: list profiles response
|
|
schema:
|
|
$ref: '#/definitions/dto.ListProfilesResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: list profiles
|
|
tags:
|
|
- Profile
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: create a new profile
|
|
parameters:
|
|
- description: create profile request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.CreateProfileRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: profile response
|
|
schema:
|
|
$ref: '#/definitions/dto.ProfileResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: create profile
|
|
tags:
|
|
- Profile
|
|
/api/v1/profiles/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: delete a profile
|
|
parameters:
|
|
- description: profile ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: success response
|
|
schema:
|
|
$ref: '#/definitions/dto.SuccessResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: profile not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: delete profile
|
|
tags:
|
|
- Profile
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get profile by ID
|
|
parameters:
|
|
- description: profile ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: profile response
|
|
schema:
|
|
$ref: '#/definitions/dto.ProfileResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: profile not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: get profile by ID
|
|
tags:
|
|
- Profile
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: update an existing profile
|
|
parameters:
|
|
- description: profile ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: update profile request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.UpdateProfileRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: profile response
|
|
schema:
|
|
$ref: '#/definitions/dto.ProfileResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: profile not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: update profile
|
|
tags:
|
|
- Profile
|
|
/api/v1/profiles/{id}/assets:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: list all assets for a profile
|
|
parameters:
|
|
- description: profile ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: list assets response
|
|
schema:
|
|
$ref: '#/definitions/dto.ListAssetsResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: list assets by profile ID
|
|
tags:
|
|
- Asset
|
|
/api/v1/profiles/handle/{handle}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: get profile by handle
|
|
parameters:
|
|
- description: profile handle
|
|
in: path
|
|
name: handle
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: profile response
|
|
schema:
|
|
$ref: '#/definitions/dto.ProfileResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: profile not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
summary: get profile by handle
|
|
tags:
|
|
- Profile
|
|
/api/v1/user/platform/setup-profile:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: complete profile with handle, role, level, and short bio. Requires
|
|
authentication.
|
|
parameters:
|
|
- description: setup profile request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dto.SetupProfileRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: success response
|
|
schema:
|
|
$ref: '#/definitions/dto.SuccessResponse'
|
|
"400":
|
|
description: invalid request
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"401":
|
|
description: unauthorized
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"404":
|
|
description: user not found
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"409":
|
|
description: profile already exists or handle already taken
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
"500":
|
|
description: internal server error
|
|
schema:
|
|
$ref: '#/definitions/dto.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: setup profile after registration
|
|
tags:
|
|
- Platform
|
|
schemes:
|
|
- http
|
|
- https
|
|
securityDefinitions:
|
|
Bearer:
|
|
description: Type "Bearer" followed by a space and JWT token.
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|