Learn everything about Move on Sui
Functions 2
- In this lesson, you are going to create three more functions.
- With the update_card_description function, users will be able to update their card's description.
- With the deactivate_card function, users will be able to indicate that they are no longer to open to work.
- Finally you will create a public function which will return the card information based on the given id.
You can access the codes we wrote in this lesson below. 👇
// With this function the user can change his/her card's description
public entry fun update_card_description(devhub: &mut DevHub, new_description: vector<u8>, id: u64, ctx: &mut TxContext) {
let user_card = object_table::borrow_mut(&mut devhub.cards, id);
assert!(tx_context::sender(ctx) == user_card.owner, NOT_THE_OWNER);
let old_value = option::swap_or_fill(&mut user_card.description, string::utf8(new_description));
event::emit(DescriptionUpdated {
name: user_card.name,
owner: user_card.owner,
new_description: string::utf8(new_description)
});
_ = old_value;
}
// With this function user can deactivate his/her account by setting open_to_work field of his/her card to false
public entry fun deactivate_card(devhub: &mut DevHub, id: u64, ctx: &mut TxContext) {
let card = object_table::borrow_mut(&mut devhub.cards, id);
assert!(card.owner == tx_context::sender(ctx), NOT_THE_OWNER);
card.open_to_work = false;
}
// This function returns the card based on the id provided
public fun get_card_info(devhub: &DevHub, id: u64): (
String,
address,
String,
Url,
Option<String>,
u8,
String,
String,
String,
bool,
) {
let card = object_table::borrow(&devhub.cards, id);
(
card.name,
card.owner,
card.title,
card.img_url,
card.description,
card.years_of_exp,
card.technologies,
card.portfolio,
card.contact,
card.open_to_work
)
}
Comments
You need to enroll in the course to be able to comment!