Skip to content

Instantly share code, notes, and snippets.

@navanathjadhav
Created June 11, 2022 13:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save navanathjadhav/673e4044598113071491d2bd4694ec51 to your computer and use it in GitHub Desktop.
Save navanathjadhav/673e4044598113071491d2bd4694ec51 to your computer and use it in GitHub Desktop.
Object Literal Lookup Example
/**
* This method will validate user's status
* @param user user data
*/
function validateStatus(user) {
let response = {};
/*
* Object Literal Lookup: User status check: return response as per user status
*/
const statusLookup = {
Active: () => {
response = { message: "Login successful", user: user };
},
Inactive: () => {
response = { message: "User is inactive", user: undefined };
},
Invited: () => {
response = { message: "User is not activated yet", user: undefined };
},
Blocked: () => {
response = { message: "User is blocked", user: undefined };
},
Default: () => {
response = { message: "User with invalid status", user: undefined };
},
};
user.status in statusLookup ? statusLookup[user.status]() : statusLookup.Default();
/*
* Return response
*/
return response;
}
/**
* This method will validate user's role
* @param user user data
*/
function validateRole(user) {
let response = {};
/*
* Object Literal Lookup: User role check: return response as per user role
*/
const roleLookup = {
Admin: () => {
response = { message: "Full Access granted", user: user };
},
Teacher: () => {
response = { message: "Limited Access granted", user: user };
},
Student: () => {
response = { message: "Access denied", user: undefined };
},
Default: () => {
response = { message: "User with invalid role", user: undefined };
},
};
user.role in roleLookup ? roleLookup[user.role]() : roleLookup.Default();
/*
* Return response
*/
return response;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment