[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/ericwhs/Coding-iOS/master/Coding_iOS/Models/ProjectFile.m [Back]  [Original]

//
//  ProjectFile.m
//  Coding_iOS
//
//  Created by Ease on 14/11/13.
//  Copyright (c) 2014 Coding. All rights reserved.
//

#import "ProjectFile.h"
#import "Coding_FileManager.h"

@interface ProjectFile ()
@property (strong, nonatomic) NSString *project_name, *project_owner_name;
@property (strong, nonatomic, readwrite) NSString *diskFileName;
@end

@implementation ProjectFile

-(id)copyWithZone:(NSZone*)zone {
    ProjectFile *file = [[[self class] allocWithZone:zone] init];
    file.project_owner_name = [_project_owner_name copy];
    file.project_name = [_project_name copy];
    file.diskFileName = [_diskFileName copy];
    file.owner = [_owner copy];
    file.share_url = [_share_url copy];
    file.title = [_title copy];
    file.storage_type = [_storage_type copy];
    file.storage_key = [_storage_key copy];
    file.preview = [_preview copy];
    file.owner_preview = [_owner_preview copy];
    file.fileType = [_fileType copy];
    file.name = [_name copy];
    file.number = [_number copy];
    file.project_id = [_project_id copy];
    file.size = [_size copy];
    file.current_user_role_id = [_current_user_role_id copy];
    file.type = [_type copy];
    file.parent_id = [_parent_id copy];
    file.owner_id = [_owner_id copy];
    file.file_id = [_file_id copy];
    file.created_at = [_created_at copy];
    file.updated_at = [_updated_at copy];
    file.id=[_id copy];
    file.path=[_path copy];
    return file;
}


+(ProjectFile *)fileWithFileId:(NSNumber *)fileId andProjectId:(NSNumber *)project_id{
    ProjectFile *file = [[ProjectFile alloc] init];
    file.file_id = fileId;
    file.project_id = project_id;
    return file;
}

- (instancetype)initWithFileId:(NSNumber *)fileId inProject:(NSString *)project_name ofUser:(NSString *)project_owner_name{
    self = [super init];
    if (self) {
        _file_id = fileId;
        _project_id = nil;
        _project_name = project_name;
        _project_owner_name = project_owner_name;
    }
    return self;
}

- (void)setOwner_preview:(NSString *)owner_preview{
    _owner_preview = owner_preview;
    if (!_project_id && owner_preview.length > 0) {
        NSString *project_id;
        project_id = [[[[owner_preview componentsSeparatedByString:@"project/"] lastObject] componentsSeparatedByString:@"/"] firstObject];
        _project_id = @(project_id.integerValue);
    }
}

- (BOOL)isEmpty{
    return !(self.storage_key && self.storage_key.length > 0);
}

- (DownloadState)downloadState{
    DownloadState state = DownloadStateDefault;
    if ([self hasBeenDownload]) {
        state = DownloadStateDownloaded;
    }else{
        Coding_DownloadTask *cDownloadTask = [self cDownloadTask];
        if (cDownloadTask) {
            if (cDownloadTask.task.state == NSURLSessionTaskStateRunning) {
                state = DownloadStateDownloading;
            }else if (cDownloadTask.task.state == NSURLSessionTaskStateSuspended) {
                state = DownloadStatePausing;
            }else{
                [Coding_FileManager cancelCDownloadTaskForKey:self.storage_key];
            }
        }
    }
    return state;
}

- (NSString *)downloadPath{
    NSString *path = [NSString stringWithFormat:@"%@api/project/%@/files/%@/download", [NSObject baseURLStr], _project_id.stringValue, _file_id.stringValue];
    return path;
}

- (NSString *)diskFileName{
    if (!_diskFileName) {
        _diskFileName = [NSString stringWithFormat:@"%@|||%@|||%@|%@", _name, _project_id.stringValue, _storage_type, _storage_key];
    }
    return _diskFileName;
}

- (Coding_DownloadTask *)cDownloadTask{
    return [Coding_FileManager cDownloadTaskForKey:_storage_key];
}
- (NSURL *)hasBeenDownload{
    return [Coding_FileManager diskDownloadUrlForKey:_storage_key];
}

- (NSString *)toDeletePath{
    return [NSString stringWithFormat:@"api/project/%@/file/delete", _project_id.stringValue];
}
- (NSDictionary *)toDeleteParams{
    return @{@"fileIds" : @[_file_id.stringValue]};
}
- (NSDictionary *)toMoveToParams{
    return @{@"fileId" : @[_file_id.stringValue]};
}

- (NSString *)toDetailPath{
    NSString *path;
    if (!_project_id) {
        path = [NSString stringWithFormat:@"api/user/%@/project/%@/files/%@/view", _project_owner_name, _project_name, _file_id.stringValue];
    }else{
        path = [NSString stringWithFormat:@"api/project/%@/files/%@/view", _project_id.stringValue, _file_id.stringValue];
    }
    return path;
}

- (NSString *)toActivityListPath{
    return [NSString stringWithFormat:@"api/project/%@/file/%@/activities", _project_id.stringValue, _file_id.stringValue];
}

- (NSString *)toHistoryListPath{
    return [NSString stringWithFormat:@"api/project/%@/files/%@/histories", _project_id.stringValue, _file_id.stringValue];
}

- (NSDictionary *)toShareParams{
    return @{
             @"projectId": _project_id,
             @"resourceId": _file_id,
             @"resourceType": @0,
             @"accessType": @0
             };
}
@end


Web Proxy Viewer  |  New URL  |  Original Page