Update API [skip ci]

This commit is contained in:
Ilya Laktyushin 2023-03-08 13:23:02 +04:00
parent ed86e369eb
commit 79645b4fef
7 changed files with 46 additions and 21 deletions

View file

@ -978,7 +978,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
dict[596704836] = { return Api.auth.SentCode.parse_sentCodeSuccess($0) }
dict[1035688326] = { return Api.auth.SentCodeType.parse_sentCodeTypeApp($0) }
dict[1398007207] = { return Api.auth.SentCodeType.parse_sentCodeTypeCall($0) }
dict[1511364673] = { return Api.auth.SentCodeType.parse_sentCodeTypeEmailCode($0) }
dict[-196020837] = { return Api.auth.SentCodeType.parse_sentCodeTypeEmailCode($0) }
dict[-444918734] = { return Api.auth.SentCodeType.parse_sentCodeTypeFirebaseSms($0) }
dict[-1425815847] = { return Api.auth.SentCodeType.parse_sentCodeTypeFlashCall($0) }
dict[-648651719] = { return Api.auth.SentCodeType.parse_sentCodeTypeFragmentSms($0) }

View file

@ -358,7 +358,7 @@ public extension Api.auth {
enum SentCodeType: TypeConstructorDescription {
case sentCodeTypeApp(length: Int32)
case sentCodeTypeCall(length: Int32)
case sentCodeTypeEmailCode(flags: Int32, emailPattern: String, length: Int32, nextPhoneLoginDate: Int32?)
case sentCodeTypeEmailCode(flags: Int32, emailPattern: String, length: Int32, resetAvailablePeriod: Int32?, resetPendingDate: Int32?)
case sentCodeTypeFirebaseSms(flags: Int32, nonce: Buffer?, receipt: String?, pushTimeout: Int32?, length: Int32)
case sentCodeTypeFlashCall(pattern: String)
case sentCodeTypeFragmentSms(url: String, length: Int32)
@ -380,14 +380,15 @@ public extension Api.auth {
}
serializeInt32(length, buffer: buffer, boxed: false)
break
case .sentCodeTypeEmailCode(let flags, let emailPattern, let length, let nextPhoneLoginDate):
case .sentCodeTypeEmailCode(let flags, let emailPattern, let length, let resetAvailablePeriod, let resetPendingDate):
if boxed {
buffer.appendInt32(1511364673)
buffer.appendInt32(-196020837)
}
serializeInt32(flags, buffer: buffer, boxed: false)
serializeString(emailPattern, buffer: buffer, boxed: false)
serializeInt32(length, buffer: buffer, boxed: false)
if Int(flags) & Int(1 << 2) != 0 {serializeInt32(nextPhoneLoginDate!, buffer: buffer, boxed: false)}
if Int(flags) & Int(1 << 3) != 0 {serializeInt32(resetAvailablePeriod!, buffer: buffer, boxed: false)}
if Int(flags) & Int(1 << 4) != 0 {serializeInt32(resetPendingDate!, buffer: buffer, boxed: false)}
break
case .sentCodeTypeFirebaseSms(let flags, let nonce, let receipt, let pushTimeout, let length):
if boxed {
@ -440,8 +441,8 @@ public extension Api.auth {
return ("sentCodeTypeApp", [("length", length as Any)])
case .sentCodeTypeCall(let length):
return ("sentCodeTypeCall", [("length", length as Any)])
case .sentCodeTypeEmailCode(let flags, let emailPattern, let length, let nextPhoneLoginDate):
return ("sentCodeTypeEmailCode", [("flags", flags as Any), ("emailPattern", emailPattern as Any), ("length", length as Any), ("nextPhoneLoginDate", nextPhoneLoginDate as Any)])
case .sentCodeTypeEmailCode(let flags, let emailPattern, let length, let resetAvailablePeriod, let resetPendingDate):
return ("sentCodeTypeEmailCode", [("flags", flags as Any), ("emailPattern", emailPattern as Any), ("length", length as Any), ("resetAvailablePeriod", resetAvailablePeriod as Any), ("resetPendingDate", resetPendingDate as Any)])
case .sentCodeTypeFirebaseSms(let flags, let nonce, let receipt, let pushTimeout, let length):
return ("sentCodeTypeFirebaseSms", [("flags", flags as Any), ("nonce", nonce as Any), ("receipt", receipt as Any), ("pushTimeout", pushTimeout as Any), ("length", length as Any)])
case .sentCodeTypeFlashCall(let pattern):
@ -487,13 +488,16 @@ public extension Api.auth {
var _3: Int32?
_3 = reader.readInt32()
var _4: Int32?
if Int(_1!) & Int(1 << 2) != 0 {_4 = reader.readInt32() }
if Int(_1!) & Int(1 << 3) != 0 {_4 = reader.readInt32() }
var _5: Int32?
if Int(_1!) & Int(1 << 4) != 0 {_5 = reader.readInt32() }
let _c1 = _1 != nil
let _c2 = _2 != nil
let _c3 = _3 != nil
let _c4 = (Int(_1!) & Int(1 << 2) == 0) || _4 != nil
if _c1 && _c2 && _c3 && _c4 {
return Api.auth.SentCodeType.sentCodeTypeEmailCode(flags: _1!, emailPattern: _2!, length: _3!, nextPhoneLoginDate: _4)
let _c4 = (Int(_1!) & Int(1 << 3) == 0) || _4 != nil
let _c5 = (Int(_1!) & Int(1 << 4) == 0) || _5 != nil
if _c1 && _c2 && _c3 && _c4 && _c5 {
return Api.auth.SentCodeType.sentCodeTypeEmailCode(flags: _1!, emailPattern: _2!, length: _3!, resetAvailablePeriod: _4, resetPendingDate: _5)
}
else {
return nil

View file

@ -1715,6 +1715,22 @@ public extension Api.functions.auth {
})
}
}
public extension Api.functions.auth {
static func resetLoginEmail(phoneNumber: String, phoneCodeHash: String) -> (FunctionDescription, Buffer, DeserializeFunctionResponse<Api.auth.SentCode>) {
let buffer = Buffer()
buffer.appendInt32(2123760019)
serializeString(phoneNumber, buffer: buffer, boxed: false)
serializeString(phoneCodeHash, buffer: buffer, boxed: false)
return (FunctionDescription(name: "auth.resetLoginEmail", parameters: [("phoneNumber", String(describing: phoneNumber)), ("phoneCodeHash", String(describing: phoneCodeHash))]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.auth.SentCode? in
let reader = BufferReader(buffer)
var result: Api.auth.SentCode?
if let signature = reader.readInt32() {
result = Api.parse(reader, signature: signature) as? Api.auth.SentCode
}
return result
})
}
}
public extension Api.functions.auth {
static func sendCode(phoneNumber: String, apiId: Int32, apiHash: String, settings: Api.CodeSettings) -> (FunctionDescription, Buffer, DeserializeFunctionResponse<Api.auth.SentCode>) {
let buffer = Buffer()

View file

@ -680,7 +680,7 @@ public func sendLoginEmailCode(account: UnauthorizedAccount, email: String) -> S
return account.postbox.transaction { transaction -> Signal<Void, NoError> in
switch result {
case let .sentEmailCode(emailPattern, length):
transaction.setState(UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .confirmationCodeEntry(number: phoneNumber, type: .email(emailPattern: emailPattern, length: length, nextPhoneLoginDate: nil, appleSignInAllowed: false, setup: true), hash: phoneCodeHash, timeout: nil, nextType: nil, syncContacts: syncContacts)))
transaction.setState(UnauthorizedAccountState(isTestingEnvironment: account.testingEnvironment, masterDatacenterId: account.masterDatacenterId, contents: .confirmationCodeEntry(number: phoneNumber, type: .email(emailPattern: emailPattern, length: length, resetAvailablePeriod: nil, resetPendingDate: nil, appleSignInAllowed: false, setup: true), hash: phoneCodeHash, timeout: nil, nextType: nil, syncContacts: syncContacts)))
}
return .complete()
}

View file

@ -30,8 +30,8 @@ extension SentAuthorizationCodeType {
self = .flashCall(pattern: pattern)
case let .sentCodeTypeMissedCall(prefix, length):
self = .missedCall(numberPrefix: prefix, length: length)
case let .sentCodeTypeEmailCode(flags, emailPattern, length, nextPhoneLoginDate):
self = .email(emailPattern: emailPattern, length: length, nextPhoneLoginDate: nextPhoneLoginDate, appleSignInAllowed: (flags & (1 << 0)) != 0, setup: false)
case let .sentCodeTypeEmailCode(flags, emailPattern, length, resetAvailablePeriod, resetPendingDate):
self = .email(emailPattern: emailPattern, length: length, resetAvailablePeriod: resetAvailablePeriod, resetPendingDate: resetPendingDate, appleSignInAllowed: (flags & (1 << 0)) != 0, setup: false)
case let .sentCodeTypeSetUpEmailRequired(flags):
self = .emailSetupRequired(appleSignInAllowed: (flags & (1 << 0)) != 0)
case let .sentCodeTypeFragmentSms(url, length):

View file

@ -210,7 +210,7 @@ public class BoxedMessage: NSObject {
public class Serialization: NSObject, MTSerialization {
public func currentLayer() -> UInt {
return 155
return 156
}
public func parseMessage(_ data: Data!) -> Any! {

View file

@ -18,7 +18,7 @@ public enum SentAuthorizationCodeType: PostboxCoding, Equatable {
case call(length: Int32)
case flashCall(pattern: String)
case missedCall(numberPrefix: String, length: Int32)
case email(emailPattern: String, length: Int32, nextPhoneLoginDate: Int32?, appleSignInAllowed: Bool, setup: Bool)
case email(emailPattern: String, length: Int32, resetAvailablePeriod: Int32?, resetPendingDate: Int32?, appleSignInAllowed: Bool, setup: Bool)
case emailSetupRequired(appleSignInAllowed: Bool)
case fragment(url: String, length: Int32)
case firebase(pushTimeout: Int32?, length: Int32)
@ -36,7 +36,7 @@ public enum SentAuthorizationCodeType: PostboxCoding, Equatable {
case SentAuthorizationCodeTypeValue.missedCall.rawValue:
self = .missedCall(numberPrefix: decoder.decodeStringForKey("n", orElse: ""), length: decoder.decodeInt32ForKey("l", orElse: 0))
case SentAuthorizationCodeTypeValue.email.rawValue:
self = .email(emailPattern: decoder.decodeStringForKey("e", orElse: ""), length: decoder.decodeInt32ForKey("l", orElse: 0), nextPhoneLoginDate: decoder.decodeOptionalInt32ForKey("d"), appleSignInAllowed: decoder.decodeInt32ForKey("a", orElse: 0) != 0, setup: decoder.decodeInt32ForKey("s", orElse: 0) != 0)
self = .email(emailPattern: decoder.decodeStringForKey("e", orElse: ""), length: decoder.decodeInt32ForKey("l", orElse: 0), resetAvailablePeriod: decoder.decodeOptionalInt32ForKey("ra"), resetPendingDate: decoder.decodeOptionalInt32ForKey("rp"), appleSignInAllowed: decoder.decodeInt32ForKey("a", orElse: 0) != 0, setup: decoder.decodeInt32ForKey("s", orElse: 0) != 0)
case SentAuthorizationCodeTypeValue.emailSetupRequired.rawValue:
self = .emailSetupRequired(appleSignInAllowed: decoder.decodeInt32ForKey("a", orElse: 0) != 0)
case SentAuthorizationCodeTypeValue.fragment.rawValue:
@ -66,14 +66,19 @@ public enum SentAuthorizationCodeType: PostboxCoding, Equatable {
encoder.encodeInt32(SentAuthorizationCodeTypeValue.missedCall.rawValue, forKey: "v")
encoder.encodeString(numberPrefix, forKey: "n")
encoder.encodeInt32(length, forKey: "l")
case let .email(emailPattern, length, nextPhoneLoginDate, appleSignInAllowed, setup):
case let .email(emailPattern, length, resetAvailablePeriod, resetPendingDate, appleSignInAllowed, setup):
encoder.encodeInt32(SentAuthorizationCodeTypeValue.email.rawValue, forKey: "v")
encoder.encodeString(emailPattern, forKey: "e")
encoder.encodeInt32(length, forKey: "l")
if let nextPhoneLoginDate = nextPhoneLoginDate {
encoder.encodeInt32(nextPhoneLoginDate, forKey: "d")
if let resetAvailablePeriod = resetAvailablePeriod {
encoder.encodeInt32(resetAvailablePeriod, forKey: "ra")
} else {
encoder.encodeNil(forKey: "d")
encoder.encodeNil(forKey: "ra")
}
if let resetPendingDate = resetPendingDate {
encoder.encodeInt32(resetPendingDate, forKey: "rp")
} else {
encoder.encodeNil(forKey: "rp")
}
encoder.encodeInt32(appleSignInAllowed ? 1 : 0, forKey: "a")
encoder.encodeInt32(setup ? 1 : 0, forKey: "s")