mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
3.3 KiB
Objective-C
74 lines
3.3 KiB
Objective-C
//
|
|
// TSErrorMessage.m
|
|
// TextSecureKit
|
|
//
|
|
// Created by Frederic Jacobs on 12/11/14.
|
|
// Copyright (c) 2014 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
#import "TSErrorMessage.h"
|
|
#import "NSDate+millisecondTimeStamp.h"
|
|
|
|
#import "TSErrorMessage_privateConstructor.h"
|
|
|
|
@implementation TSErrorMessage
|
|
|
|
- (instancetype)initWithTimestamp:(uint64_t)timestamp inThread:(TSThread *)thread failedMessageType:(TSErrorMessageType)errorMessageType {
|
|
self = [super initWithTimestamp:timestamp inThread:thread messageBody:nil attachments:nil];
|
|
|
|
if (self) {
|
|
_errorType = errorMessageType;
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithSignal:(IncomingPushMessageSignal*)signal transaction:(YapDatabaseReadWriteTransaction*)transaction failedMessageType:(TSErrorMessageType)errorMessageType{
|
|
TSContactThread *contactThread = [TSContactThread getOrCreateThreadWithContactId:signal.source transaction:transaction];
|
|
return [self initWithTimestamp:signal.timestamp inThread:contactThread failedMessageType:errorMessageType];
|
|
}
|
|
|
|
- (NSString*)description{
|
|
switch (_errorType) {
|
|
case TSErrorMessageNoSession:
|
|
return NSLocalizedString(@"ERROR_MESSAGE_NO_SESSION", @"");
|
|
case TSErrorMessageMissingKeyId:
|
|
return NSLocalizedString(@"ERROR_MESSAGE_MISSING_KEY", @"");
|
|
case TSErrorMessageInvalidMessage:
|
|
return NSLocalizedString(@"ERROR_MESSAGE_INVALID_MESSAGE", @"");
|
|
case TSErrorMessageInvalidVersion:
|
|
return NSLocalizedString(@"ERROR_MESSAGE_INVALID_VERSION", @"");
|
|
case TSErrorMessageDuplicateMessage:
|
|
return NSLocalizedString(@"ERROR_MESSAGE_DUPLICATE_MESSAGE", @"");
|
|
case TSErrorMessageInvalidKeyException:
|
|
return NSLocalizedString(@"ERROR_MESSAGE_INVALID_KEY_EXCEPTION", @"");
|
|
case TSErrorMessageWrongTrustedIdentityKey:
|
|
return NSLocalizedString(@"ERROR_MESSAGE_WRONG_TRUSTED_IDENTITY_KEY", @"");
|
|
default:
|
|
return NSLocalizedString(@"ERROR_MESSAGE_UNKNOWN_ERROR", @"");
|
|
break;
|
|
}
|
|
}
|
|
|
|
+ (instancetype)corruptedMessageWithSignal:(IncomingPushMessageSignal *)signal withTransaction:(YapDatabaseReadWriteTransaction *)transaction{
|
|
return [[self alloc] initWithSignal:signal transaction:transaction failedMessageType:TSErrorMessageInvalidMessage];
|
|
}
|
|
|
|
+ (instancetype)invalidVersionWithSignal:(IncomingPushMessageSignal*)signal withTransaction:(YapDatabaseReadWriteTransaction*)transaction{
|
|
return [[self alloc] initWithSignal:signal transaction:transaction failedMessageType:TSErrorMessageInvalidVersion];
|
|
}
|
|
|
|
+ (instancetype)missingKeyIdWithSignal:(IncomingPushMessageSignal*)signal withTransaction:(YapDatabaseReadWriteTransaction*)transaction{
|
|
return [[self alloc] initWithSignal:signal transaction:transaction failedMessageType:TSErrorMessageMissingKeyId];
|
|
}
|
|
|
|
+ (instancetype)invalidKeyExceptionWithSignal:(IncomingPushMessageSignal*)signal withTransaction:(YapDatabaseReadWriteTransaction*)transaction{
|
|
return [[self alloc] initWithSignal:signal transaction:transaction failedMessageType:TSErrorMessageInvalidKeyException];
|
|
}
|
|
|
|
+ (instancetype)missingSessionWithSignal:(IncomingPushMessageSignal*)signal withTransaction:(YapDatabaseReadWriteTransaction*)transaction{
|
|
return [[self alloc] initWithSignal:signal transaction:transaction failedMessageType:TSErrorMessageNoSession];
|
|
}
|
|
|
|
@end
|