Signal-iOS/SignalServiceKit/src/Storage/SSKMessageSenderJobRecord.m
2019-11-07 17:22:08 -03:00

96 lines
2.8 KiB
Objective-C

//
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
#import "SSKMessageSenderJobRecord.h"
#import "TSOutgoingMessage.h"
#import <SignalServiceKit/SignalServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN
@implementation SSKMessageSenderJobRecord
#pragma mark
- (nullable instancetype)initWithCoder:(NSCoder *)coder
{
return [super initWithCoder:coder];
}
- (nullable instancetype)initWithMessage:(TSOutgoingMessage *)message
removeMessageAfterSending:(BOOL)removeMessageAfterSending
label:(NSString *)label
transaction:(SDSAnyReadTransaction *)transaction
error:(NSError **)outError
{
self = [super initWithLabel:label];
if (!self) {
return self;
}
if (message.shouldBeSaved) {
_messageId = message.uniqueId;
OWSAssertDebug(_messageId.length > 0);
BOOL isSaved = [TSInteraction anyExistsWithUniqueId:_messageId transaction:transaction];
if (!isSaved) {
*outError = [NSError errorWithDomain:SSKJobRecordErrorDomain
code:JobRecordError_AssertionError
userInfo:@{ NSDebugDescriptionErrorKey : @"message wasn't saved" }];
return nil;
}
_invisibleMessage = nil;
} else {
_messageId = nil;
_invisibleMessage = message;
}
_removeMessageAfterSending = removeMessageAfterSending;
_threadId = message.uniqueThreadId;
return self;
}
// --- CODE GENERATION MARKER
// This snippet is generated by /Scripts/sds_codegen/sds_generate.py. Do not manually edit it, instead run `sds_codegen.sh`.
// clang-format off
- (instancetype)initWithGrdbId:(int64_t)grdbId
uniqueId:(NSString *)uniqueId
failureCount:(NSUInteger)failureCount
label:(NSString *)label
sortId:(unsigned long long)sortId
status:(SSKJobRecordStatus)status
invisibleMessage:(nullable TSOutgoingMessage *)invisibleMessage
messageId:(nullable NSString *)messageId
removeMessageAfterSending:(BOOL)removeMessageAfterSending
threadId:(nullable NSString *)threadId
{
self = [super initWithGrdbId:grdbId
uniqueId:uniqueId
failureCount:failureCount
label:label
sortId:sortId
status:status];
if (!self) {
return self;
}
_invisibleMessage = invisibleMessage;
_messageId = messageId;
_removeMessageAfterSending = removeMessageAfterSending;
_threadId = threadId;
return self;
}
// clang-format on
// --- CODE GENERATION MARKER
@end
NS_ASSUME_NONNULL_END