-
-
Save innovator256/77ccd8e86846221471e8 to your computer and use it in GitHub Desktop.
newest not library/db based database dappsery api
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
contract DappseryTest { | |
mapping (address => DappseryUser) public registeredUsers; | |
//for internal use construction only | |
mapping(bytes32 => bytes32) private categories; | |
//public indexes | |
mapping(bytes32 => uint) public userCategories; | |
mapping(uint => address) public featuredUsers; | |
//users index | |
uint public userIndex; | |
function DappseryTest(){ | |
categories["Dapps"] = "Dapps"; | |
categories["All Things Apple"] = "All Things Apple"; | |
categories["Automotive"] = "Automotive"; | |
categories["Beauty & Fashion"] = "Beauty & Fashion"; | |
categories["Business & Finance"] = "Business & Finance"; | |
categories["Cryptocurrency"] = "Cryptocurrency"; | |
categories["Education"] = "Education"; | |
categories["Entertainment"] = "Entertainment"; | |
categories["Family & Parenting"] = "Family & Parenting"; | |
categories["Food & Drink"] = "Food & Drink"; | |
categories["Gaming"] = "Gaming"; | |
categories["Goverment & Politics"] = "Goverment & Politics"; | |
categories["Health & Fitness"] = "Health & Fitness"; | |
categories["Home & Architecture"] = "Home & Architecture"; | |
categories["Pets"] = "Pets"; | |
categories["Podcasts"] = "Podcasts"; | |
categories["Sports"] = "Sports"; | |
categories["Technology"] = "Technology"; | |
categories["Travel"] = "Travel"; | |
categories["Virtualization"] = "Virtualization"; | |
categories["Visual Arts & Design"] = "Visual Arts & Design"; | |
categories["Web Design & Development"] = "Web Design & Development"; | |
} | |
struct DappseryUser{ | |
bytes32 userType; //publisher advertiser or quality assuarance team | |
bytes32 name; // name | |
address userAdr; //user ethereum address identifier | |
uint uID; //userid number (incremented unique id) | |
bytes32 token; // sha3 hash of Name & passphrase clientside encryption | |
bytes32 webUrl; // Website | |
bytes32 logoUrl; //logo url or photo id url | |
bytes32 category; //category | |
bool isFeatured; | |
} | |
//id, userType, date(block.timestamp), blocknumber, | |
event UserIndex(uint _UId, bytes32 _userType, uint _date, uint _blockNumber); | |
//id, category, usertype, date(block.timestamp) | |
event Category(uint _UId, bytes32 _catType, uint _date); | |
event Featured(uint _UId, bytes32 _catType, uint _date); | |
//pubId, adID, date(block.timestamp) | |
event AdIndex(uint _adId, uint _UId, uint _date); | |
//id, userType | |
event PublisherIndex(); | |
//id, userType | |
event AdvertiserIndex(); | |
//id, userType | |
event QaIndex(); | |
modifier isExist(address newUserAdr) { if (newUserAdr == registeredUsers[newUserAdr].userAdr) | |
throw; | |
_ | |
} | |
function regPublisher(bytes32 _newUserType, | |
bytes32 _newName, | |
address _newUserAdr, | |
bytes32 _token, | |
bytes32 _webUrl, | |
bytes32 _logoUrl, | |
bytes32 _category) isExist( _newUserAdr) returns (bool success){ | |
if(categories[_category] == _category){ | |
DappseryUser account = registeredUsers[_newUserAdr]; | |
account.userType = _newUserType; | |
account.name = _newName; | |
account.userAdr = _newUserAdr; | |
account.uID = userIndex; | |
account.token = sha3(_token); | |
account.webUrl = _webUrl; | |
account.logoUrl = _logoUrl; | |
account.category = categories[_category]; | |
userCategories[account.category] = account.uID; | |
//modify and figure out conditions for being featured by quality assurance later | |
featuredUsers[account.uID] = _newUserAdr; | |
if (account.userAdr == featuredUsers[account.uID]){ | |
account.isFeatured = true; | |
} | |
eventer(account); | |
userIndex++; | |
return true; | |
} | |
return false; | |
} | |
function eventer(DappseryUser _account) private { | |
//General acount & category log | |
UserIndex(_account.uID, _account.userType, now, block.number); | |
//id, category, usertype, date(block.timestamp) | |
Category(_account.uID, _account.category, now); | |
//some conditional filter in order to log featured user// to be improved later | |
if(_account.userAdr == featuredUsers[_account.uID]){ | |
Featured(_account.uID, _account.category, now); | |
} | |
} | |
function getUser(address _adr) constant public returns ( | |
bytes32 uname, | |
bytes32 uType, | |
bytes32 uwebUrl, | |
bytes32 ulogoUrl, | |
bytes32 ucategory, | |
bool ufeauturedStatus | |
){ | |
DappseryUser account = registeredUsers[_adr]; | |
uname = account.name; | |
uType = account.userType; | |
uwebUrl = account.webUrl; | |
ulogoUrl = account.logoUrl; | |
ucategory = account.category; | |
ufeauturedStatus = account.isFeatured; | |
} | |
function updateProfile(address _adr, | |
bytes32 _token, | |
bytes32 _userType, | |
bytes32 _name, | |
address _userAdr, | |
bytes32 _webUrl, | |
bytes32 _logoUrl, | |
bytes32 _category) returns (bool success){ | |
DappseryUser account = registeredUsers[_adr]; | |
if(account.token == sha3(_token)){ | |
account.name = _name; | |
account.userType = _userType; | |
account.userAdr = _userAdr; | |
account.webUrl = _webUrl; | |
account.logoUrl = _logoUrl; | |
account.category = categories[_category]; | |
return true; | |
} | |
return false; | |
} | |
function listAd() public returns (string message){ | |
message = "TBD not yet"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment