feat: update ai chat session
This commit is contained in:
parent
c2de25abbf
commit
dfe7fff7f6
|
|
@ -53,7 +53,7 @@ func (_i *AIChatRouter) RegisterAIChatRoutes() {
|
|||
router.Delete("/sessions/:id", aiChatController.DeleteSession)
|
||||
|
||||
// Messages routes
|
||||
router.Get("/sessions/messages", aiChatController.GetSessionMessages)
|
||||
router.Get("/sessions/:id/messages", aiChatController.GetSessionMessages)
|
||||
router.Post("/sessions/messages", aiChatController.SendMessage)
|
||||
router.Put("/sessions/messages/:messageId", aiChatController.UpdateMessage)
|
||||
router.Delete("/sessions/messages/:messageId", aiChatController.DeleteMessage)
|
||||
|
|
|
|||
|
|
@ -224,16 +224,19 @@ func (_i *aiChatController) DeleteSession(c *fiber.Ctx) error {
|
|||
// @Tags AI Chat
|
||||
// @Security Bearer
|
||||
// @Param Authorization header string false "Insert your access token" default(Bearer <Add access token here>)
|
||||
// @Param sessionId path int true "Session ID"
|
||||
// @Param id path int true "Session ID"
|
||||
// @Param req query request.AIChatMessagesQueryRequest false "query parameters"
|
||||
// @Param req query paginator.Pagination false "pagination parameters"
|
||||
// @Success 200 {object} response.Response
|
||||
// @Failure 400 {object} response.BadRequestError
|
||||
// @Failure 401 {object} response.UnauthorizedError
|
||||
// @Failure 500 {object} response.InternalServerError
|
||||
// @Router /ai-chat/sessions/{sessionId}/messages [get]
|
||||
// @Router /ai-chat/sessions/{id}/messages [get]
|
||||
func (_i *aiChatController) GetSessionMessages(c *fiber.Ctx) error {
|
||||
sessionId := c.Params("sessionId")
|
||||
id, err := strconv.ParseUint(c.Params("id"), 10, 0)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
paginate, err := paginator.Paginate(c)
|
||||
if err != nil {
|
||||
|
|
@ -242,13 +245,11 @@ func (_i *aiChatController) GetSessionMessages(c *fiber.Ctx) error {
|
|||
|
||||
authHeader := c.Get("Authorization")
|
||||
|
||||
reqContext := request.AIChatMessagesQueryRequestContext{
|
||||
SessionID: sessionId,
|
||||
}
|
||||
reqContext := request.AIChatMessagesQueryRequestContext{}
|
||||
req := reqContext.ToParamRequest()
|
||||
req.Pagination = paginate
|
||||
|
||||
messagesData, paging, err := _i.aiChatService.GetSessionMessages(authHeader, sessionId, req)
|
||||
messagesData, paging, err := _i.aiChatService.GetSessionMessages(authHeader, uint(id), req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ func (req AIChatSessionsUpdateRequest) ToEntity() *entity.AIChatSessions {
|
|||
|
||||
// AI Chat Messages Request DTOs
|
||||
type AIChatMessagesQueryRequest struct {
|
||||
SessionID string `json:"sessionId" validate:"required"`
|
||||
Pagination *paginator.Pagination `json:"pagination"`
|
||||
}
|
||||
|
||||
|
|
@ -86,17 +85,11 @@ func (req AIChatSessionsQueryRequestContext) ToParamRequest() AIChatSessionsQuer
|
|||
}
|
||||
|
||||
type AIChatMessagesQueryRequestContext struct {
|
||||
SessionID string `json:"sessionId"`
|
||||
}
|
||||
|
||||
func (req AIChatMessagesQueryRequestContext) ToParamRequest() AIChatMessagesQueryRequest {
|
||||
var request AIChatMessagesQueryRequest
|
||||
|
||||
if sessionIDStr := req.SessionID; sessionIDStr != "" {
|
||||
// Parse session ID from string to uint
|
||||
// This will be handled in the controller
|
||||
}
|
||||
|
||||
return request
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ type AIChatService interface {
|
|||
ArchiveSession(authToken string, id uint) error
|
||||
|
||||
// Messages
|
||||
GetSessionMessages(authToken string, sessionId string, req request.AIChatMessagesQueryRequest) (messages []*response.AIChatMessagesResponse, paging paginator.Pagination, err error)
|
||||
GetSessionMessages(authToken string, sessionId uint, req request.AIChatMessagesQueryRequest) (messages []*response.AIChatMessagesResponse, paging paginator.Pagination, err error)
|
||||
SendMessage(authToken string, req request.AIChatMessagesCreateRequest) (message *response.AIChatMessagesResponse, err error)
|
||||
UpdateMessage(authToken string, messageId uint, req request.AIChatMessagesUpdateRequest) (err error)
|
||||
DeleteMessage(authToken string, messageId uint) error
|
||||
|
|
@ -140,16 +140,16 @@ func (_i *aiChatService) ArchiveSession(authToken string, id uint) error {
|
|||
}
|
||||
|
||||
// Messages methods
|
||||
func (_i *aiChatService) GetSessionMessages(authToken string, sessionId string, req request.AIChatMessagesQueryRequest) (messages []*response.AIChatMessagesResponse, paging paginator.Pagination, err error) {
|
||||
// userInfo := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
|
||||
func (_i *aiChatService) GetSessionMessages(authToken string, sessionId uint, req request.AIChatMessagesQueryRequest) (messages []*response.AIChatMessagesResponse, paging paginator.Pagination, err error) {
|
||||
userInfo := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken)
|
||||
|
||||
// Verify session belongs to user
|
||||
_, err = _i.Repo.FindSessionBySessionId(sessionId)
|
||||
session, err := _i.Repo.FindSessionByUserAndId(userInfo.ID, sessionId)
|
||||
if err != nil {
|
||||
return nil, paginator.Pagination{}, err
|
||||
}
|
||||
|
||||
results, paging, err := _i.Repo.GetSessionMessages(sessionId, req)
|
||||
results, paging, err := _i.Repo.GetSessionMessages(session.SessionID, req)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1606,7 +1606,7 @@ const docTemplate = `{
|
|||
}
|
||||
}
|
||||
},
|
||||
"/ai-chat/sessions/{sessionId}/messages": {
|
||||
"/ai-chat/sessions/{id}/messages": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
|
|
@ -1629,16 +1629,10 @@ const docTemplate = `{
|
|||
{
|
||||
"type": "integer",
|
||||
"description": "Session ID",
|
||||
"name": "sessionId",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"name": "sessionId",
|
||||
"in": "query",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"name": "count",
|
||||
|
|
@ -10130,6 +10124,11 @@ const docTemplate = `{
|
|||
],
|
||||
"summary": "Get all Users",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"name": "degree",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"name": "email",
|
||||
|
|
|
|||
|
|
@ -1595,7 +1595,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"/ai-chat/sessions/{sessionId}/messages": {
|
||||
"/ai-chat/sessions/{id}/messages": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
|
|
@ -1618,16 +1618,10 @@
|
|||
{
|
||||
"type": "integer",
|
||||
"description": "Session ID",
|
||||
"name": "sessionId",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"name": "sessionId",
|
||||
"in": "query",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"name": "count",
|
||||
|
|
@ -10119,6 +10113,11 @@
|
|||
],
|
||||
"summary": "Get all Users",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"name": "degree",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"name": "email",
|
||||
|
|
|
|||
|
|
@ -1966,7 +1966,7 @@ paths:
|
|||
summary: Update AI chat session
|
||||
tags:
|
||||
- AI Chat
|
||||
/ai-chat/sessions/{sessionId}/messages:
|
||||
/ai-chat/sessions/{id}/messages:
|
||||
get:
|
||||
description: API for getting all messages in an AI chat session
|
||||
parameters:
|
||||
|
|
@ -1977,13 +1977,9 @@ paths:
|
|||
type: string
|
||||
- description: Session ID
|
||||
in: path
|
||||
name: sessionId
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- in: query
|
||||
name: sessionId
|
||||
required: true
|
||||
type: string
|
||||
- in: query
|
||||
name: count
|
||||
type: integer
|
||||
|
|
@ -7512,6 +7508,9 @@ paths:
|
|||
get:
|
||||
description: API for getting all Users
|
||||
parameters:
|
||||
- in: query
|
||||
name: degree
|
||||
type: string
|
||||
- in: query
|
||||
name: email
|
||||
type: string
|
||||
|
|
|
|||
Loading…
Reference in New Issue