Skip to content

Commit 66f5455

Browse files
committed
WIP refactor resource
1 parent 33d0b2d commit 66f5455

File tree

5 files changed

+27
-21
lines changed

5 files changed

+27
-21
lines changed

browser/data-browser/src/routes/NewResource/NewRoute.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ function NewResourceSelector() {
5252
(files: string[]) => {
5353
toast.success(`Uploaded ${files.length} files.`);
5454

55-
if (parentSubject) {
56-
navigate(constructOpenURL(parentSubject));
55+
if (calculatedParent) {
56+
navigate(constructOpenURL(calculatedParent));
5757
}
5858
},
5959
[parentSubject, navigate],
@@ -64,10 +64,10 @@ function NewResourceSelector() {
6464
<StyledForm>
6565
<h1>
6666
Create new resource{' '}
67-
{parentSubject && (
67+
{calculatedParent && (
6868
<>
6969
{`under `}
70-
<ResourceInline subject={parentSubject} />
70+
<ResourceInline subject={calculatedParent} />
7171
</>
7272
)}
7373
</h1>

lib/src/db.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,9 +454,13 @@ impl Storelike for Db {
454454
for_agent: &ForAgent,
455455
) -> AtomicResult<Resource> {
456456
let url_span = tracing::span!(tracing::Level::TRACE, "URL parse").entered();
457+
458+
println!("subject: {subject}");
459+
457460
// This might add a trailing slash
458461
let url = url::Url::parse(subject)?;
459462

463+
println!("url: {url}");
460464
let mut removed_query_params = {
461465
let mut url_altered = url.clone();
462466
url_altered.set_query(None);

lib/src/resources.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ impl Resource {
414414
property_url: String,
415415
value: &str,
416416
store: &impl Storelike,
417-
) -> AtomicResult<()> {
417+
) -> AtomicResult<&mut Self> {
418418
let fullprop = store.get_property(&property_url).map_err(|e| {
419419
format!(
420420
"Failed setting propval for '{}' because property '{}' could not be found. {}",
@@ -425,7 +425,7 @@ impl Resource {
425425
})?;
426426
let val = Value::new(value, &fullprop.data_type)?;
427427
self.set_propval_unsafe(property_url, val);
428-
Ok(())
428+
Ok(self)
429429
}
430430

431431
/// Inserts a Property/Value combination.
@@ -507,9 +507,10 @@ impl Resource {
507507
/// Changes the subject of the Resource.
508508
/// Does not 'move' the Resource
509509
/// See https://github.com/atomicdata-dev/atomic-server/issues/44
510-
pub fn set_subject(&mut self, url: String) {
510+
pub fn set_subject(&mut self, url: String) -> &mut Self {
511511
self.commit.set_subject(url.clone());
512512
self.subject = url;
513+
self
513514
}
514515

515516
/// Converts Resource to JSON-AD string.

lib/src/storelike.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,14 +204,14 @@ pub trait Storelike: Sized {
204204
fn handle_not_found(
205205
&self,
206206
subject: &str,
207-
error: AtomicError,
207+
_error: AtomicError,
208208
for_agent: Option<&Agent>,
209209
) -> AtomicResult<Resource> {
210210
if let Some(self_url) = self.get_self_url() {
211211
if subject.starts_with(&self_url) {
212212
return Err(AtomicError::not_found(format!(
213-
"Failed to retrieve locally: '{}'. {}",
214-
subject, error
213+
"Failed to retrieve locally: '{}'",
214+
subject
215215
)));
216216
}
217217
}

server/src/handlers/upload.rs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,18 @@ pub async fn upload_handler(
8080
let download_url = format!("{}/download/{}", store.get_server_url(), subject_path);
8181

8282
let mut resource = atomic_lib::Resource::new_instance(urls::FILE, store)?;
83-
resource.set_subject(new_subject);
84-
resource.set_propval_string(urls::PARENT.into(), &query.parent, store)?;
85-
resource.set_propval_string(urls::INTERNAL_ID.into(), &file_id, store)?;
86-
resource.set_propval(urls::FILESIZE.into(), Value::Integer(byte_count), store)?;
87-
resource.set_propval_string(
88-
urls::MIMETYPE.into(),
89-
&guess_mime_for_filename(filename),
90-
store,
91-
)?;
92-
resource.set_propval_string(urls::FILENAME.into(), filename, store)?;
93-
resource.set_propval_string(urls::DOWNLOAD_URL.into(), &download_url, store)?;
83+
resource
84+
.set_subject(new_subject)
85+
.set_propval_string(urls::PARENT.into(), &query.parent, store)?
86+
.set_propval_string(urls::INTERNAL_ID.into(), &file_id, store)?
87+
.set_propval(urls::FILESIZE.into(), Value::Integer(byte_count), store)?
88+
.set_propval_string(
89+
urls::MIMETYPE.into(),
90+
&guess_mime_for_filename(filename),
91+
store,
92+
)?
93+
.set_propval_string(urls::FILENAME.into(), filename, store)?
94+
.set_propval_string(urls::DOWNLOAD_URL.into(), &download_url, store)?;
9495
commit_responses.push(resource.save(store)?);
9596
created_resources.push(resource);
9697
}

0 commit comments

Comments
 (0)