MCPcopy Create free account
hub / github.com/chanify/chanify / ParseFormData

Method ParseFormData

core/msgparam.go:131–183  ·  view source on GitHub ↗

ParseFormData process multipart/form-data

(c *Core, ctx *gin.Context)

Source from the content-addressed store, hash-verified

129
130// ParseFormData process multipart/form-data
131func (m *MsgParam) ParseFormData(c *Core, ctx *gin.Context) (*model.Message, error) {
132 var msg *model.Message = nil
133 if form, err := ctx.MultipartForm(); err == nil {
134 ts := form.Value["text"]
135 if len(ts) > 0 {
136 m.Text = ts[0]
137 }
138 if m.Token == nil {
139 tks := form.Value["token"]
140 if len(tks) > 0 {
141 m.Token, _ = c.parseToken(tks[0])
142 }
143 }
144 m.Title = tryFormValue(form, "title", m.Title)
145 m.Link = tryFormValue(form, "link", m.Link)
146 m.CopyText = tryFormValue(form, "copy", m.CopyText)
147 m.AutoCopy = tryFormValue(form, "autocopy", m.AutoCopy)
148 m.Filename = tryFormValue(form, "filename", m.Filename)
149 m.Sound = tryFormValue(form, "sound", m.Sound)
150 m.Actions = tryFormValues(form, "action", m.Actions)
151 m.parsePriorityFromForm(form)
152 m.InterruptionLevel = tryFormValue(form, "interruption-level", m.InterruptionLevel)
153 m.TimeContent.Code = tryFormValue(form, "timeline-code", m.TimeContent.Code)
154 if len(m.TimeContent.Code) > 0 {
155 m.TimeContent.Timestamp = tryFormTimestamp(form, "timeline-timestamp", m.TimeContent.Timestamp)
156 m.TimeContent.Items = tryFormMap(form, "timeline-items", m.TimeContent.Items)
157 }
158 if m.Token != nil && c.logic.CanFileStore() {
159 if data, _, err := readFileFromForm(form, "image"); err == nil {
160 msg, err = c.saveUploadImage(ctx, m.Token, data)
161 if err != nil {
162 return nil, err
163 }
164 }
165 if data, fname, err := readFileFromForm(form, "audio"); err == nil {
166 if len(m.Filename) > 0 {
167 fname = m.Filename
168 }
169 msg, err = c.saveUploadAudio(ctx, m.Token, fileBaseName(fname), m.Title, data)
170 if err != nil {
171 return nil, err
172 }
173 }
174 if data, fname, err := readFileFromForm(form, "file"); err == nil {
175 msg, err = c.saveUploadFile(ctx, m.Token, data, fileBaseName(fname), m.Text, m.Actions)
176 if err != nil {
177 return nil, err
178 }
179 }
180 }
181 }
182 return msg, nil
183}
184
185// ParseImage process image
186func (m *MsgParam) ParseImage(c *Core, ctx *gin.Context) (*model.Message, error) {

Callers

nothing calls this directly

Calls 12

parsePriorityFromFormMethod · 0.95
tryFormValueFunction · 0.85
tryFormValuesFunction · 0.85
tryFormTimestampFunction · 0.85
tryFormMapFunction · 0.85
readFileFromFormFunction · 0.85
fileBaseNameFunction · 0.85
parseTokenMethod · 0.80
CanFileStoreMethod · 0.80
saveUploadImageMethod · 0.80
saveUploadAudioMethod · 0.80
saveUploadFileMethod · 0.80

Tested by

no test coverage detected