Signal-iOS/SignalServiceKit/Network/API/Requests/OWSRequestFactory.h
2024-03-27 12:22:52 -05:00

132 lines
4.8 KiB
Objective-C

//
// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
#import <SignalServiceKit/OWSIdentity.h>
NS_ASSUME_NONNULL_BEGIN
@class AciObjC;
@class ChatServiceAuth;
@class DeviceMessage;
@class ECKeyPair;
@class OWSDevice;
@class PreKeyRecord;
@class SMKUDAccessKey;
@class ServiceIdObjC;
@class SignalServiceAddress;
@class SignedPreKeyRecord;
@class TSRequest;
@interface OWSRequestFactory : NSObject
+ (instancetype)new NS_UNAVAILABLE;
- (instancetype)init NS_UNAVAILABLE;
+ (TSRequest *)disable2FARequest;
+ (TSRequest *)acknowledgeMessageDeliveryRequestWithServerGuid:(NSString *)serverGuid;
+ (TSRequest *)getDevicesRequest;
+ (TSRequest *)getMessagesRequest;
+ (TSRequest *)getUnversionedProfileRequestWithServiceId:(ServiceIdObjC *)serviceId
udAccessKey:(nullable SMKUDAccessKey *)udAccessKey
auth:(ChatServiceAuth *)auth
NS_SWIFT_NAME(getUnversionedProfileRequest(serviceId:udAccessKey:auth:));
+ (TSRequest *)getVersionedProfileRequestWithAci:(AciObjC *)aci
profileKeyVersion:(nullable NSString *)profileKeyVersion
credentialRequest:(nullable NSData *)credentialRequest
udAccessKey:(nullable SMKUDAccessKey *)udAccessKey
auth:(ChatServiceAuth *)auth
NS_SWIFT_NAME(getVersionedProfileRequest(aci:profileKeyVersion:credentialRequest:udAccessKey:auth:));
+ (TSRequest *)turnServerInfoRequest;
+ (TSRequest *)allocAttachmentRequestV4;
+ (TSRequest *)profileAvatarUploadFormRequest;
+ (TSRequest *)registerForPushRequestWithPushIdentifier:(NSString *)identifier
voipIdentifier:(nullable NSString *)voipId;
+ (TSRequest *)unregisterAccountRequest;
+ (TSRequest *)submitMessageRequestWithServiceId:(ServiceIdObjC *)serviceId
messages:(NSArray<DeviceMessage *> *)messages
timestamp:(uint64_t)timestamp
udAccessKey:(nullable SMKUDAccessKey *)udAccessKey
isOnline:(BOOL)isOnline
isUrgent:(BOOL)isUrgent
isStory:(BOOL)isStory;
+ (TSRequest *)submitMultiRecipientMessageRequestWithCiphertext:(NSData *)ciphertext
compositeUDAccessKey:(SMKUDAccessKey *)udAccessKey
timestamp:(uint64_t)timestamp
isOnline:(BOOL)isOnline
isUrgent:(BOOL)isUrgent
isStory:(BOOL)isStory
NS_SWIFT_NAME(submitMultiRecipientMessageRequest(ciphertext:compositeUDAccessKey:timestamp:isOnline:isUrgent:isStory:));
+ (TSRequest *)currencyConversionRequest NS_SWIFT_NAME(currencyConversionRequest());
#pragma mark - Prekeys
+ (TSRequest *)availablePreKeysCountRequestForIdentity:(OWSIdentity)identity;
+ (TSRequest *)currentSignedPreKeyRequest;
+ (TSRequest *)recipientPreKeyRequestWithServiceId:(ServiceIdObjC *)serviceId
deviceId:(uint32_t)deviceId
udAccessKey:(nullable SMKUDAccessKey *)udAccessKey;
+ (TSRequest *)registerSignedPrekeyRequestForIdentity:(OWSIdentity)identity
signedPreKey:(SignedPreKeyRecord *)signedPreKey;
#pragma mark - Storage Service
+ (TSRequest *)storageAuthRequest;
#pragma mark - Remote Attestation
+ (TSRequest *)remoteAttestationAuthRequestForKeyBackup;
+ (TSRequest *)remoteAttestationAuthRequestForCDSI;
+ (TSRequest *)remoteAttestationAuthRequestForSVR2;
#pragma mark - UD
+ (TSRequest *)udSenderCertificateRequestWithUuidOnly:(BOOL)uuidOnly
NS_SWIFT_NAME(udSenderCertificateRequest(uuidOnly:));
#pragma mark - Profiles
+ (TSRequest *)profileNameSetRequestWithEncryptedPaddedName:(NSData *)encryptedPaddedName;
#pragma mark - Remote Config
+ (TSRequest *)getRemoteConfigRequest;
#pragma mark - Groups v2
+ (TSRequest *)groupAuthenticationCredentialRequestWithFromRedemptionSeconds:(uint64_t)fromRedemptionSeconds
toRedemptionSeconds:(uint64_t)toRedemptionSeconds
NS_SWIFT_NAME(groupAuthenticationCredentialRequest(fromRedemptionSeconds:toRedemptionSeconds:));
#pragma mark - Payments
+ (TSRequest *)paymentsAuthenticationCredentialRequest;
#pragma mark - Spam
+ (TSRequest *)pushChallengeRequest;
+ (TSRequest *)pushChallengeResponseWithToken:(NSString *)challengeToken;
+ (TSRequest *)recaptchChallengeResponseWithToken:(NSString *)serverToken captchaToken:(NSString *)captchaToken;
@end
NS_ASSUME_NONNULL_END