forked from coding/Coding-iOS
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProjectFile.m
More file actions
executable file
·125 lines (108 loc) · 3.82 KB
/
ProjectFile.m
File metadata and controls
executable file
·125 lines (108 loc) · 3.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
//
// 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
+(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