filestoraged/src/requests/download.cr

36 lines
921 B
Crystal
Raw Normal View History

class FileStorage::Request
2020-10-20 19:15:50 +02:00
IPC::JSON.message Download, 30 do
property mid : String # autogenerated
property filedigest : String? # SHA256 digest of the file, used as ID
property name : String?
property tags : Array(String)?
def initialize(@filedigest = nil, @name = nil, @tags = nil)
@mid = UUID.random.to_s
end
2023-02-09 23:28:10 +01:00
def handle(filestoraged : FileStorage::Service, event : IPC::Event)
2020-05-16 01:40:09 +02:00
user = filestoraged.get_logged_user event
2020-10-20 23:57:37 +02:00
raise NotLoggedException.new if user.nil?
# FIXME: Maybe this should be moved to FileStorage::Service
2020-07-18 16:35:35 +02:00
fd = event.fd
user_data = filestoraged.get_user_data user.uid
2020-05-16 01:40:09 +02:00
filestoraged.storage.download self, user_data
end
end
FileStorage.requests << Download
end
class FileStorage::Response
2020-10-20 19:15:50 +02:00
IPC::JSON.message Download, 30 do
property mid : String
property file_info : FileInfo
def initialize(@mid, @file_info)
end
end
end