use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize};
use near_sdk::collections::LookupMap;
use near_sdk::{env, near_bindgen, AccountId};
#[derive(BorshDeserialize, BorshSerialize)]
pub struct OldStatusMessage {
records: LookupMap<AccountId, String>,
}
#[near_bindgen]
#[derive(BorshDeserialize, BorshSerialize)]
pub struct StatusMessage {
taglines: LookupMap<AccountId, String>,
bios: LookupMap<AccountId, String>,
}
impl Default for StatusMessage {
fn default() -> Self {
Self {
taglines: LookupMap::new(b"r".to_vec()),
bios: LookupMap::new(b"b".to_vec()),
}
}
}
#[near_bindgen]
impl StatusMessage {
pub fn set_tagline(&mut self, message: String) {
let account_id = env::signer_account_id();
self.taglines.insert(&account_id, &message);
}
pub fn get_tagline(&self, account_id: AccountId) -> Option<String> {
return self.taglines.get(&account_id);
}
pub fn set_bio(&mut self, message: String) {
let account_id = env::signer_account_id();
self.bios.insert(&account_id, &message);
}
pub fn get_bio(&self, account_id: AccountId) -> Option<String> {
return self.bios.get(&account_id);
}
#[private]
#[init(ignore_state)]
pub fn migrate() -> Self {
let old_state: OldStatusMessage = env::state_read().expect("failed");
Self {
taglines: old_state.records,
bios: LookupMap::new(b"b".to_vec()),
}
}
}