ParseFormData process multipart/form-data
(c *Core, ctx *gin.Context)
| 129 | |
| 130 | // ParseFormData process multipart/form-data |
| 131 | func (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 |
| 186 | func (m *MsgParam) ParseImage(c *Core, ctx *gin.Context) (*model.Message, error) { |
nothing calls this directly
no test coverage detected