Update API

This commit is contained in:
Ilya Laktyushin
2023-11-16 14:53:54 +04:00
parent d63b07a310
commit c52f8c108c
8 changed files with 342 additions and 128 deletions

View File

@@ -984,7 +984,9 @@ func _internal_uploadStoryImpl(postbox: Postbox, network: Network, accountPeerId
entities: apiEntities,
privacyRules: privacyRules,
randomId: randomId,
period: Int32(period)
period: Int32(period),
fwdFromId: nil,
fwdFromStory: nil
))
|> map(Optional.init)
|> `catch` { _ -> Signal<Api.Updates?, NoError> in
@@ -1008,7 +1010,7 @@ func _internal_uploadStoryImpl(postbox: Postbox, network: Network, accountPeerId
for update in updates.allUpdates {
if case let .updateStory(_, story) = update {
switch story {
case let .storyItem(_, idValue, _, _, _, _, media, _, _, _, _):
case let .storyItem(_, idValue, _, _, _, _, _, media, _, _, _, _):
if let parsedStory = Stories.StoredItem(apiStoryItem: story, peerId: toPeerId, transaction: transaction) {
var items = transaction.getStoryItems(peerId: toPeerId)
var updatedItems: [Stories.Item] = []
@@ -1169,7 +1171,7 @@ func _internal_editStory(account: Account, peerId: PeerId, id: Int32, media: Eng
for update in updates.allUpdates {
if case let .updateStory(_, story) = update {
switch story {
case let .storyItem(_, _, _, _, _, _, media, _, _, _, _):
case let .storyItem(_, _, _, _, _, _, _, media, _, _, _, _):
let (parsedMedia, _, _, _, _) = textMediaAndExpirationTimerFromApiMedia(media, account.peerId)
if let parsedMedia = parsedMedia, let originalMedia = originalMedia {
applyMediaResourceChanges(from: originalMedia, to: parsedMedia, postbox: account.postbox, force: false)
@@ -1493,7 +1495,7 @@ func _internal_updateStoriesArePinned(account: Account, peerId: PeerId, ids: [In
extension Api.StoryItem {
var id: Int32 {
switch self {
case let .storyItem(_, id, _, _, _, _, _, _, _, _, _):
case let .storyItem(_, id, _, _, _, _, _, _, _, _, _, _):
return id
case let .storyItemDeleted(id):
return id
@@ -1539,7 +1541,8 @@ extension Stories.Item.Views {
extension Stories.StoredItem {
init?(apiStoryItem: Api.StoryItem, existingItem: Stories.Item? = nil, peerId: PeerId, transaction: Transaction) {
switch apiStoryItem {
case let .storyItem(flags, id, date, expireDate, caption, entities, media, mediaAreas, privacy, views, sentReaction):
case let .storyItem(flags, id, date, fwdFrom, expireDate, caption, entities, media, mediaAreas, privacy, views, sentReaction):
let _ = fwdFrom
let (parsedMedia, _, _, _, _) = textMediaAndExpirationTimerFromApiMedia(media, peerId)
if let parsedMedia = parsedMedia {
var parsedPrivacy: Stories.Item.Privacy?