Moved session inside database.
This commit is contained in:
		@@ -108,7 +108,9 @@ impl FileData<Self> for DataType {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[derive(Clone)]
 | 
					#[derive(Clone)]
 | 
				
			||||||
pub struct MoreThanText;
 | 
					pub struct MoreThanText {
 | 
				
			||||||
 | 
					    session: Vec<String>,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl MoreThanText {
 | 
					impl MoreThanText {
 | 
				
			||||||
    pub async fn new<P>(dir: P) -> Result<Self, DBError>
 | 
					    pub async fn new<P>(dir: P) -> Result<Self, DBError>
 | 
				
			||||||
@@ -118,19 +120,26 @@ impl MoreThanText {
 | 
				
			|||||||
        let pathbuf = dir.into();
 | 
					        let pathbuf = dir.into();
 | 
				
			||||||
        let entry = pathbuf.as_path().join(ENTRY);
 | 
					        let entry = pathbuf.as_path().join(ENTRY);
 | 
				
			||||||
        match Entry::get(entry.clone()).await {
 | 
					        match Entry::get(entry.clone()).await {
 | 
				
			||||||
            Ok(_) => Ok(Self {}),
 | 
					            Ok(_) => (),
 | 
				
			||||||
            Err(_) => {
 | 
					            Err(_) => {
 | 
				
			||||||
                let store = DataType::new("store").unwrap();
 | 
					                let store = DataType::new("store").unwrap();
 | 
				
			||||||
                match Entry::new(entry, store).await {
 | 
					                match Entry::new(entry, store).await {
 | 
				
			||||||
                    Ok(_) => Ok(Self {}),
 | 
					                    Ok(_) => (),
 | 
				
			||||||
                    Err(err) => {
 | 
					                    Err(err) => {
 | 
				
			||||||
                        let mut error = DBError::from_code(ErrorCode::CacheReadWrite);
 | 
					                        let mut error = DBError::from_code(ErrorCode::CacheReadWrite);
 | 
				
			||||||
                        error.add_source(err);
 | 
					                        error.add_source(err);
 | 
				
			||||||
                        Err(error)
 | 
					                        return Err(error);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        Ok(Self {
 | 
				
			||||||
 | 
					            session: [ENTRY.to_string()].to_vec(),
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fn set_session(&mut self, sess: Vec<String>) {
 | 
				
			||||||
 | 
					        self.session = sess;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -294,7 +303,7 @@ mod datatype_file {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[cfg(test)]
 | 
					#[cfg(test)]
 | 
				
			||||||
mod create {
 | 
					mod db {
 | 
				
			||||||
    use super::*;
 | 
					    use super::*;
 | 
				
			||||||
    use async_std::fs::write;
 | 
					    use async_std::fs::write;
 | 
				
			||||||
    use std::error::Error;
 | 
					    use std::error::Error;
 | 
				
			||||||
@@ -303,9 +312,7 @@ mod create {
 | 
				
			|||||||
    #[async_std::test]
 | 
					    #[async_std::test]
 | 
				
			||||||
    async fn create() {
 | 
					    async fn create() {
 | 
				
			||||||
        let dir = tempdir().unwrap();
 | 
					        let dir = tempdir().unwrap();
 | 
				
			||||||
        MoreThanText::new(dir.path().to_str().unwrap())
 | 
					        let mtt = MoreThanText::new(dir.path()).await.unwrap();
 | 
				
			||||||
            .await
 | 
					 | 
				
			||||||
            .unwrap();
 | 
					 | 
				
			||||||
        let epoint = dir.path().join(ENTRY);
 | 
					        let epoint = dir.path().join(ENTRY);
 | 
				
			||||||
        assert!(
 | 
					        assert!(
 | 
				
			||||||
            epoint.is_file(),
 | 
					            epoint.is_file(),
 | 
				
			||||||
@@ -317,6 +324,8 @@ mod create {
 | 
				
			|||||||
            entry.data().list(["database"].to_vec()).unwrap(),
 | 
					            entry.data().list(["database"].to_vec()).unwrap(),
 | 
				
			||||||
            Vec::<String>::new()
 | 
					            Vec::<String>::new()
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
 | 
					        let sess = [ENTRY];
 | 
				
			||||||
 | 
					        assert_eq!(mtt.session, sess);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[async_std::test]
 | 
					    #[async_std::test]
 | 
				
			||||||
@@ -341,13 +350,16 @@ mod create {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[async_std::test]
 | 
					    #[async_std::test]
 | 
				
			||||||
    async fn existing_entry_point() {
 | 
					    async fn existing_entry_point() -> Result<(), DBError> {
 | 
				
			||||||
        let dir = tempdir().unwrap();
 | 
					        let dir = tempdir().unwrap();
 | 
				
			||||||
        let data = DataType::new("store").unwrap();
 | 
					        let data = DataType::new("store").unwrap();
 | 
				
			||||||
        Entry::new(dir.path().join(ENTRY), data.clone())
 | 
					        Entry::new(dir.path().join(ENTRY), data.clone())
 | 
				
			||||||
            .await
 | 
					            .await
 | 
				
			||||||
            .unwrap();
 | 
					            .unwrap();
 | 
				
			||||||
        MoreThanText::new(dir.path()).await.unwrap();
 | 
					        match MoreThanText::new(dir.path()).await {
 | 
				
			||||||
 | 
					            Ok(_) => Ok(()),
 | 
				
			||||||
 | 
					            Err(err) => Err(err),
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[async_std::test]
 | 
					    #[async_std::test]
 | 
				
			||||||
@@ -360,4 +372,13 @@ mod create {
 | 
				
			|||||||
            Err(_) => Ok(()),
 | 
					            Err(_) => Ok(()),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[async_std::test]
 | 
				
			||||||
 | 
					    async fn set_session() {
 | 
				
			||||||
 | 
					        let dir = tempdir().unwrap();
 | 
				
			||||||
 | 
					        let mut mtt = MoreThanText::new(dir.path()).await.unwrap();
 | 
				
			||||||
 | 
					        let sess = ["different".to_string()];
 | 
				
			||||||
 | 
					        mtt.set_session(sess.to_vec());
 | 
				
			||||||
 | 
					        assert_eq!(mtt.session, sess);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user