(act map[string]any)
| 178 | if updatedAt.IsZero() { |
| 179 | updatedAt = publishedAt |
| 180 | } |
| 181 | |
| 182 | status := &models.Status{ |
| 183 | ID: snowflake.TimeToID(publishedAt), |
| 184 | UpdatedAt: updatedAt, |
| 185 | ActorID: actor.ID, |
| 186 | Actor: actor, |
| 187 | Conversation: &models.Conversation{ |
| 188 | Visibility: "public", |
| 189 | }, |
| 190 | URI: act.ID, |
| 191 | Visibility: "public", |
| 192 | ReblogID: &original.ID, |
| 193 | } |
| 194 | |
| 195 | return i.db.Save(status).Error |
| 196 | } |
| 197 | |
| 198 | func (i *inboxProcessor) processAdd(act *Activity) error { |
| 199 | switch obj := act.Object.(type) { |
| 200 | case string: |
| 201 | return i.processAddPin(act) |
| 202 | default: |
| 203 | return fmt.Errorf("processAdd: unknown type: %T", obj) |
| 204 | } |
| 205 | } |
| 206 | |
| 207 | func (i *inboxProcessor) processAddPin(act *Activity) error { |
| 208 | actor := stringFromAny(act.Actor) |
| 209 | switch act.Target { |
| 210 | case actor + "/collections/featured": |
| 211 | status, err := models.NewStatuses(i.db).FindByURI(stringFromAny(act.Object)) |
| 212 | if err != nil { |
| 213 | return err |
| 214 | } |
no test coverage detected