3151 lines
102 KiB
Go
3151 lines
102 KiB
Go
// Package docs Code generated by swaggo/swag. DO NOT EDIT
|
|
package docs
|
|
|
|
import "github.com/swaggo/swag"
|
|
|
|
const docTemplate = `{
|
|
"schemes": {{ marshal .Schemes }},
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"description": "{{escape .Description}}",
|
|
"title": "{{.Title}}",
|
|
"termsOfService": "http://swagger.io/terms/",
|
|
"contact": {
|
|
"name": "API Support",
|
|
"url": "http://www.abric.io/support",
|
|
"email": "support@abric.io"
|
|
},
|
|
"license": {
|
|
"name": "Apache 2.0",
|
|
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
|
|
},
|
|
"version": "{{.Version}}"
|
|
},
|
|
"host": "{{.Host}}",
|
|
"basePath": "{{.BasePath}}",
|
|
"paths": {
|
|
"/api/specialists/v1/page-sections": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Specialist"
|
|
],
|
|
"summary": "get page sections",
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/specialists/v1/page-sections/contact": {
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Specialist"
|
|
],
|
|
"summary": "update contact section",
|
|
"parameters": [
|
|
{
|
|
"description": "contact section",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ContactDTO"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/specialists/v1/page-sections/hero": {
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Specialist"
|
|
],
|
|
"summary": "update hero section",
|
|
"parameters": [
|
|
{
|
|
"description": "hero section",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.HeroDTO"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/specialists/v1/page-sections/skills": {
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Specialist"
|
|
],
|
|
"summary": "update skills section",
|
|
"parameters": [
|
|
{
|
|
"description": "skills section",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.SkillsUpdateRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/specialists/v1/profile": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Specialist"
|
|
],
|
|
"summary": "get specialist profile",
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/assets": {
|
|
"post": {
|
|
"description": "create a new asset",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Asset"
|
|
],
|
|
"summary": "create asset",
|
|
"parameters": [
|
|
{
|
|
"description": "create asset request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.CreateAssetRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/assets/categories": {
|
|
"get": {
|
|
"description": "returns all asset categories",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Asset"
|
|
],
|
|
"summary": "list asset categories",
|
|
"responses": {
|
|
"200": {
|
|
"description": "list of categories",
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ListCategoriesResponse"
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "internal server error",
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/assets/categories/preview": {
|
|
"post": {
|
|
"description": "returns asset categories, each with up to N sample assets (default 8). Use for carousels and landing previews.",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Asset"
|
|
],
|
|
"summary": "list categories with preview assets",
|
|
"parameters": [
|
|
{
|
|
"description": "filter options",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.CategoriesPreviewRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/assets/categories/{id}/assets": {
|
|
"get": {
|
|
"description": "returns paginated assets for the given category. Use after fetching categories from GET /assets/categories.",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Asset"
|
|
],
|
|
"summary": "list assets by category ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "category UUID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"description": "max items per page (default 10)",
|
|
"name": "limit",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"description": "page number (default 1)",
|
|
"name": "page",
|
|
"in": "query"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/assets/{id}": {
|
|
"get": {
|
|
"description": "get asset by ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Asset"
|
|
],
|
|
"summary": "get asset by ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "asset ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"description": "update an existing asset",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Asset"
|
|
],
|
|
"summary": "update asset",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "asset ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "update asset request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.UpdateAssetRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"description": "delete an asset",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Asset"
|
|
],
|
|
"summary": "delete asset",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "asset ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/login": {
|
|
"post": {
|
|
"description": "login with email and password",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Public"
|
|
],
|
|
"summary": "login with credentials",
|
|
"parameters": [
|
|
{
|
|
"description": "login request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.LoginRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/oauth/callback": {
|
|
"post": {
|
|
"description": "handle OAuth callback and authenticate user",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Public"
|
|
],
|
|
"summary": "oauth callback",
|
|
"parameters": [
|
|
{
|
|
"description": "oauth callback request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.OAuthCallbackRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/oauth/redirect-url": {
|
|
"post": {
|
|
"description": "get OAuth redirect URL for the specified provider",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Public"
|
|
],
|
|
"summary": "get oauth redirect url",
|
|
"parameters": [
|
|
{
|
|
"description": "oauth redirect url request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.OAuthRedirectURLRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/refresh-token": {
|
|
"post": {
|
|
"description": "refresh access token using refresh token",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Public"
|
|
],
|
|
"summary": "refresh token",
|
|
"parameters": [
|
|
{
|
|
"description": "refresh token request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.RefreshTokenRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/register": {
|
|
"post": {
|
|
"description": "register a new user with email and password",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Public"
|
|
],
|
|
"summary": "register with credentials",
|
|
"parameters": [
|
|
{
|
|
"description": "register request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.RegisterRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/reset-password": {
|
|
"post": {
|
|
"description": "reset password with reset code",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Public"
|
|
],
|
|
"summary": "reset password",
|
|
"parameters": [
|
|
{
|
|
"description": "reset password request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ResetPasswordRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/send-reset-password-email": {
|
|
"post": {
|
|
"description": "send password reset email",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Public"
|
|
],
|
|
"summary": "send reset password email",
|
|
"parameters": [
|
|
{
|
|
"description": "send reset password email request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.SendResetPasswordEmailRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/send-verification-email": {
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"description": "send verification email to the authenticated user",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Public"
|
|
],
|
|
"summary": "send verification email",
|
|
"parameters": [
|
|
{
|
|
"description": "send verification email request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.SendVerificationEmailRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/verify-account": {
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"description": "verify account with verification code",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Public"
|
|
],
|
|
"summary": "verify account",
|
|
"parameters": [
|
|
{
|
|
"description": "verify account request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.VerifyAccountRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backoffice/profile-roles": {
|
|
"get": {
|
|
"description": "returns all profile roles (id, title, status)",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"BackOffice"
|
|
],
|
|
"summary": "list profile roles",
|
|
"responses": {
|
|
"200": {
|
|
"description": "list of profile roles",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.ProfileRole"
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "internal server error",
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "create a new profile role",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"BackOffice"
|
|
],
|
|
"summary": "create profile role",
|
|
"parameters": [
|
|
{
|
|
"description": "create request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.CreateProfileRoleRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/backoffice/profile-roles/{id}": {
|
|
"get": {
|
|
"description": "get profile role by ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"BackOffice"
|
|
],
|
|
"summary": "get profile role by ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "profile role ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "update an existing profile role",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"BackOffice"
|
|
],
|
|
"summary": "update profile role",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "profile role ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "update request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.UpdateProfileRoleRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "delete a profile role",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"BackOffice"
|
|
],
|
|
"summary": "delete profile role",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "profile role ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/landing": {
|
|
"get": {
|
|
"description": "returns landing page with categories, specialist roles, assets by category, specialists, and blogs",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Landing"
|
|
],
|
|
"summary": "get landing page",
|
|
"responses": {
|
|
"200": {
|
|
"description": "landing page data",
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.Landing"
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "internal server error",
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/platform/overview/discovery": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "overview for browsing users (latest assets, recently joined profiles, analytics). No profile required.",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Platform"
|
|
],
|
|
"summary": "get discovery overview",
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/platform/overview/specialist": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"BearerAuth": []
|
|
}
|
|
],
|
|
"description": "get overview for specialist view with assets, profile, skills, recently joined, analytics",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Platform"
|
|
],
|
|
"summary": "get specialist overview",
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/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"
|
|
],
|
|
"tags": [
|
|
"Platform"
|
|
],
|
|
"summary": "list profile roles",
|
|
"responses": {
|
|
"200": {
|
|
"description": "list of profile roles",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.ProfileRole"
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "internal server error",
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/platform/skills": {
|
|
"get": {
|
|
"description": "returns all skills from the catalog for profile update skill selection",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Platform"
|
|
],
|
|
"summary": "list skills",
|
|
"responses": {
|
|
"200": {
|
|
"description": "list of skills",
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.Skill"
|
|
}
|
|
}
|
|
},
|
|
"500": {
|
|
"description": "internal server error",
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/platform/user/info": {
|
|
"get": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"description": "returns user and profile_id for the authenticated user",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Platform"
|
|
],
|
|
"summary": "get account info",
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/profiles": {
|
|
"get": {
|
|
"description": "list profiles with filtering and pagination",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Profile"
|
|
],
|
|
"summary": "list profiles",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "role ID",
|
|
"name": "role_id",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "first name",
|
|
"name": "first_name",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "last name",
|
|
"name": "last_name",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "company",
|
|
"name": "company",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "skill name",
|
|
"name": "skill_name",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"default": 1,
|
|
"description": "page number",
|
|
"name": "page",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"default": 10,
|
|
"description": "page size",
|
|
"name": "page_size",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "sort field",
|
|
"name": "sorted_by",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "ascending order",
|
|
"name": "ascending",
|
|
"in": "query"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"description": "create a new profile",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Profile"
|
|
],
|
|
"summary": "create profile",
|
|
"parameters": [
|
|
{
|
|
"description": "create profile request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.CreateProfileRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/profiles/handle/{handle}": {
|
|
"get": {
|
|
"description": "get profile by handle",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Profile"
|
|
],
|
|
"summary": "get profile by handle",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "profile handle",
|
|
"name": "handle",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/profiles/{id}": {
|
|
"get": {
|
|
"description": "get profile by ID",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Profile"
|
|
],
|
|
"summary": "get profile by ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "profile ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"description": "update an existing profile",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Profile"
|
|
],
|
|
"summary": "update profile",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "profile ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "update profile request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.UpdateProfileRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"description": "delete a profile",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Profile"
|
|
],
|
|
"summary": "delete profile",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "profile ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/profiles/{id}/assets": {
|
|
"get": {
|
|
"description": "list all assets for a profile",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Asset"
|
|
],
|
|
"summary": "list assets by profile ID",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "profile ID",
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/user/platform/setup-profile": {
|
|
"post": {
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"description": "complete profile with handle, role, level, and short bio. Requires authentication.",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"tags": [
|
|
"Platform"
|
|
],
|
|
"summary": "setup profile after registration",
|
|
"parameters": [
|
|
{
|
|
"description": "setup profile request",
|
|
"name": "request",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/dto.SetupProfileRequest"
|
|
}
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"dto.AboutDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"about": {
|
|
"type": "string"
|
|
},
|
|
"achievements": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.AchievementDTO"
|
|
}
|
|
},
|
|
"profile_picture": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.AchievementDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.AchievementItemDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.AnalyticsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"total_assets": {
|
|
"type": "integer"
|
|
},
|
|
"total_profiles": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"dto.AssetResponse": {
|
|
"type": "object",
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"dto.Blog": {
|
|
"type": "object",
|
|
"properties": {
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"category": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"dto.CategoriesPreviewRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"assets_per_category": {
|
|
"type": "integer"
|
|
},
|
|
"category_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"featured_only": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"dto.CategoriesPreviewResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"categories": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.CategoryWithPreviewAssetsDTO"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.CategoryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"card_type": {
|
|
"type": "string"
|
|
},
|
|
"color": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"featured": {
|
|
"type": "boolean"
|
|
},
|
|
"icon": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.CategoryWithPreviewAssetsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"assets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.AssetResponse"
|
|
}
|
|
},
|
|
"category": {
|
|
"$ref": "#/definitions/dto.CategoryDTO"
|
|
},
|
|
"has_more": {
|
|
"type": "boolean"
|
|
},
|
|
"total_assets": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"dto.ContactDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"phone": {
|
|
"type": "string"
|
|
},
|
|
"social_links": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.SocialLinkDTO"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.CreateAssetRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"asset_category_id": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"link": {
|
|
"type": "string"
|
|
},
|
|
"profile_id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.CreateProfileRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"about": {
|
|
"$ref": "#/definitions/dto.AboutDTO"
|
|
},
|
|
"contact": {
|
|
"$ref": "#/definitions/dto.ContactDTO"
|
|
},
|
|
"handle": {
|
|
"type": "string"
|
|
},
|
|
"hero": {
|
|
"$ref": "#/definitions/dto.HeroDTO"
|
|
},
|
|
"page_section_order": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"page_setting": {
|
|
"$ref": "#/definitions/dto.PageSettingDTO"
|
|
},
|
|
"skills": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.SkillDTO"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.CreateProfileRoleRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.ErrorResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "integer",
|
|
"example": 400
|
|
}
|
|
}
|
|
},
|
|
"dto.FlatProfileDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"about": {
|
|
"type": "string"
|
|
},
|
|
"achievements": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/dto.AchievementItemDTO"
|
|
}
|
|
},
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.SocialLinkDTO"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.HeroDTO": {
|
|
"type": "object",
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"dto.Landing": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.LandingPageData"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.LandingAssetData": {
|
|
"type": "object",
|
|
"properties": {
|
|
"assets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.AssetResponse"
|
|
}
|
|
},
|
|
"icon": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.LandingPageData": {
|
|
"type": "object",
|
|
"properties": {
|
|
"assets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.LandingAssetData"
|
|
}
|
|
},
|
|
"blogs": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.Blog"
|
|
}
|
|
},
|
|
"categories": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.CategoryDTO"
|
|
}
|
|
},
|
|
"specialist_roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.ProfileRole"
|
|
}
|
|
},
|
|
"specialists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.Specialist"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.ListAssetsByCategoryIDResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"assets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.AssetResponse"
|
|
}
|
|
},
|
|
"category": {
|
|
"$ref": "#/definitions/dto.CategoryDTO"
|
|
},
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
},
|
|
"total_pages": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"dto.ListAssetsResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"assets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.AssetResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.ListCategoriesResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"categories": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.CategoryDTO"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.ListProfilesResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"type": "integer"
|
|
},
|
|
"profiles": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.ProfileResponse"
|
|
}
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"dto.LoginRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.OAuthCallbackRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"$ref": "#/definitions/oauth.Provider"
|
|
}
|
|
}
|
|
},
|
|
"dto.OAuthCallbackResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"access_token": {
|
|
"type": "string"
|
|
},
|
|
"is_new_user": {
|
|
"type": "boolean"
|
|
},
|
|
"refresh_token": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.OAuthRedirectURLRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"provider": {
|
|
"$ref": "#/definitions/oauth.Provider"
|
|
}
|
|
}
|
|
},
|
|
"dto.OAuthRedirectURLResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"redirect_url": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.OverviewAssetDTO": {
|
|
"type": "object",
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"dto.OverviewFetchedDataDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"analytics": {
|
|
"$ref": "#/definitions/dto.AnalyticsDTO"
|
|
},
|
|
"assets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.OverviewAssetDTO"
|
|
}
|
|
},
|
|
"recently_joined": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.FlatProfileDTO"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.OverviewFetchedResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.OverviewFetchedDataDTO"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.PageSectionsResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"contact": {
|
|
"$ref": "#/definitions/dto.ContactDTO"
|
|
},
|
|
"hero": {
|
|
"$ref": "#/definitions/dto.HeroDTO"
|
|
},
|
|
"page_section_order": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"skills": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.SkillDTO"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.PageSettingDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"visibility_level": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.ProfileResponse": {
|
|
"type": "object",
|
|
"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": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"page_setting": {
|
|
"$ref": "#/definitions/dto.PageSettingDTO"
|
|
},
|
|
"skills": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.SkillDTO"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.ProfileRole": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.RefreshTokenRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"refresh_token": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.RegisterRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"first_name": {
|
|
"type": "string"
|
|
},
|
|
"last_name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"phone_number": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.ResetPasswordRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.Response": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"dto.RoleDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ID": {
|
|
"type": "string"
|
|
},
|
|
"Name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.SendResetPasswordEmailRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.SendVerificationEmailRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.SetupProfileRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"handle": {
|
|
"type": "string"
|
|
},
|
|
"role_id": {
|
|
"type": "string"
|
|
},
|
|
"role_level": {
|
|
"type": "string"
|
|
},
|
|
"short_description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.Skill": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.SkillDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"level": {
|
|
"type": "string"
|
|
},
|
|
"skill_name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.SkillsUpdateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"skills": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.SkillDTO"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.SocialLinkDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"link": {
|
|
"type": "string"
|
|
},
|
|
"link_type": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.Specialist": {
|
|
"type": "object",
|
|
"properties": {
|
|
"avatar": {
|
|
"type": "string"
|
|
},
|
|
"handle": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.SpecialistOverviewFetchedDataDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"analytics": {
|
|
"$ref": "#/definitions/dto.AnalyticsDTO"
|
|
},
|
|
"assets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.OverviewAssetDTO"
|
|
}
|
|
},
|
|
"completionPercent": {
|
|
"type": "integer"
|
|
},
|
|
"profile": {
|
|
"$ref": "#/definitions/dto.ProfileResponse"
|
|
},
|
|
"recently_joined": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.FlatProfileDTO"
|
|
}
|
|
},
|
|
"skills": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.SkillDTO"
|
|
}
|
|
},
|
|
"tasks": {
|
|
"$ref": "#/definitions/dto.TasksDTO"
|
|
}
|
|
}
|
|
},
|
|
"dto.SpecialistOverviewFetchedResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"$ref": "#/definitions/dto.SpecialistOverviewFetchedDataDTO"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.SuccessResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "integer",
|
|
"example": 200
|
|
}
|
|
}
|
|
},
|
|
"dto.TasksDTO": {
|
|
"type": "object",
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"dto.TokenResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"access_token": {
|
|
"type": "string"
|
|
},
|
|
"refresh_token": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.UpdateAssetRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"asset_category_id": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"link": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "integer"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.UpdateProfileRequest": {
|
|
"type": "object",
|
|
"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": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"page_setting": {
|
|
"$ref": "#/definitions/dto.PageSettingDTO"
|
|
},
|
|
"skills": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/dto.SkillDTO"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dto.UpdateProfileRoleRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dto.UserInfoResponse": {
|
|
"type": "object",
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"dto.VerifyAccountRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"oauth.Provider": {
|
|
"type": "integer",
|
|
"enum": [
|
|
0,
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5
|
|
],
|
|
"x-enum-varnames": [
|
|
"Unknown",
|
|
"Credentials",
|
|
"Google",
|
|
"GitHub",
|
|
"Linkedin",
|
|
"Mock"
|
|
]
|
|
}
|
|
},
|
|
"securityDefinitions": {
|
|
"Bearer": {
|
|
"description": "Type \"Bearer\" followed by a space and JWT token.",
|
|
"type": "apiKey",
|
|
"name": "Authorization",
|
|
"in": "header"
|
|
}
|
|
}
|
|
}`
|
|
|
|
// SwaggerInfo holds exported Swagger Info so clients can modify it
|
|
var SwaggerInfo = &swag.Spec{
|
|
Version: "1.0.0",
|
|
Host: "localhost:8101",
|
|
BasePath: "/",
|
|
Schemes: []string{"http", "https"},
|
|
Title: "Base API",
|
|
Description: "API for base application",
|
|
InfoInstanceName: "swagger",
|
|
SwaggerTemplate: docTemplate,
|
|
LeftDelim: "{{",
|
|
RightDelim: "}}",
|
|
}
|
|
|
|
func init() {
|
|
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
|
|
}
|