MCPcopy
hub / github.com/the-open-agent/openagent / AddMessage

Method AddMessage

controllers/message.go:302–495  ·  view source on GitHub ↗

AddMessage @Title AddMessage @Tag Message API @Description add message @Param body body object.Message true "The details of the message" @Success 200 {object} object.Chat The Response object @router /add-message [post]

()

Source from the content-addressed store, hash-verified

300// @Success 200 {object} object.Chat The Response object
301// @router /add-message [post]
302func (c *ApiController) AddMessage() {
303 var message object.Message
304 err := json.Unmarshal(c.Ctx.Input.RequestBody, &message)
305 if err != nil {
306 c.ResponseError(err.Error())
307 return
308 }
309
310 id := util.GetIdFromOwnerAndName(message.Owner, message.Name)
311 originMessage, err := object.GetMessage(id)
312 if err != nil {
313 c.ResponseError(err.Error())
314 return
315 }
316
317 var chat *object.Chat
318 if originMessage != nil {
319 if !c.IsCurrentUser(originMessage.User) {
320 return
321 }
322 var mutable bool
323 chat, mutable = c.ensureMessageMutable(originMessage)
324 if !mutable {
325 return
326 }
327 preserveMessageOwnership(&message, originMessage)
328 } else {
329 if !c.IsCurrentUser(message.User) {
330 return
331 }
332 if message.Chat != "" {
333 var mutable bool
334 chat, mutable = c.ensureMessageMutable(&message)
335 if !mutable {
336 return
337 }
338 }
339 }
340
341 // if originMessage not nil, means edit message, delete all later messages
342 if originMessage != nil {
343 err = object.DeleteAllLaterMessages(id)
344 if err != nil {
345 c.ResponseError(err.Error())
346 return
347 }
348 }
349
350 addMessageAfterSuccess := true
351 if message.IsRegenerated {
352 messages, err := object.GetChatMessages(message.Chat)
353 if err != nil {
354 c.ResponseError(err.Error())
355 return
356 }
357 var lastAIMessage *object.Message
358 var lastUserMessage *object.Message
359 for i := len(messages) - 1; i >= 0; i-- {

Callers

nothing calls this directly

Calls 15

ResponseErrorMethod · 0.95
IsCurrentUserMethod · 0.95
ensureMessageMutableMethod · 0.95
addInitialChatMethod · 0.95
GetAcceptLanguageMethod · 0.95
ResponseOkMethod · 0.95
GetIdFromOwnerAndNameFunction · 0.92
GetMessageFunction · 0.92
DeleteAllLaterMessagesFunction · 0.92
GetChatMessagesFunction · 0.92
DeleteMessageFunction · 0.92
RefineMessageFilesFunction · 0.92

Tested by

no test coverage detected