MCPcopy Create free account
hub / github.com/daodst/chat / set

Method set

server/session.go:487–523  ·  view source on GitHub ↗
(msg *ClientComMessage)

Source from the content-addressed store, hash-verified

485}
486
487func (s *Session) set(msg *ClientComMessage) {
488 log.Println("s.set: processing 'set." + msg.Set.What + "'")
489
490 // Validate topic name
491 original, expanded, err := s.validateTopicName(msg.Set.Id, msg.Set.Topic, msg.timestamp)
492 if err != nil {
493 s.QueueOut(err)
494 return
495 }
496
497 sub, ok := s.subs[expanded]
498 meta := &metaReq{
499 topic: expanded,
500 pkt: msg,
501 sess: s,
502 what: parseMsgClientMeta(msg.Set.What)}
503
504 if meta.what == 0 {
505 s.QueueOut(ErrMalformed(msg.Set.Id, original, msg.timestamp))
506 log.Println("s.set: invalid Set message action '" + msg.Set.What + "'")
507 }
508
509 if ok {
510 if (meta.what&constMsgMetaInfo != 0 && msg.Set.Info == nil) ||
511 (meta.what&constMsgMetaSub != 0 && msg.Set.Sub == nil) {
512
513 s.QueueOut(ErrMalformed(msg.Set.Id, original, msg.timestamp))
514 log.Println("s.set: payload missing for Set action '" + msg.Set.What + "'")
515 } else {
516 log.Println("s.set: sending to topic")
517 sub.meta <- meta
518 }
519 } else {
520 log.Println("s.set: can Set for subscribed topics only")
521 s.QueueOut(ErrPermissionDenied(msg.Set.Id, original, msg.timestamp))
522 }
523}
524
525func (s *Session) del(msg *ClientComMessage) {
526 log.Println("s.del: processing 'set." + msg.Del.What + "'")

Callers 1

dispatchMethod · 0.95

Calls 5

validateTopicNameMethod · 0.95
QueueOutMethod · 0.95
parseMsgClientMetaFunction · 0.85
ErrMalformedFunction · 0.85
ErrPermissionDeniedFunction · 0.85

Tested by

no test coverage detected