如何在logic.js文件的if语句中从CTO文件检查枚举

时间:2018-08-24 22:12:50

标签: hyperledger-composer

如果我在.cto文件中有一个简单的枚举,例如:

enum STATUS {
    o ACTIVE
    o INACTIVE
}

和一个用户

participant User identified by name{
    o String name
    o STATUS status
}

如何检查类似以下功能的状态:

transaction isActive {
    o User user
}

在logic.js文件中,我将具有以下代码:

return getParicipantRegistry(NS + '.User'){
    .then(function(userRegistry) {
        var u = userRegistry.get(user.name)
        if (u.isActive == 'ACTIVE')
            //some code
    })

我的情况稍微复杂一些(有6种类型的枚举),但是我尝试简化它以使逻辑相同。

1 个答案:

答案 0 :(得分:0)

尝试一下。

将交易中的用户更改为关系

CREATE TABLE IF NOT EXISTS `user` (
  `user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `unique_id` VARCHAR(45) NOT NULL,
  `email` VARCHAR(45) NOT NULL,
  `password` VARCHAR(500) NULL,
  `first_name` VARCHAR(45) NOT NULL,
  `last_name` VARCHAR(45) NOT NULL,
  `created_on` DATETIME NOT NULL,
  `gender` VARCHAR(2) NULL COMMENT 'M - male\nF - female\nO - other',
  UNIQUE INDEX `unique_id_UNIQUE` (`unique_id` ASC),
  UNIQUE INDEX `email_UNIQUE` (`email` ASC),
  PRIMARY KEY (`user_id`))
ENGINE = InnoDB;

现在在logic.js中,您可以像这样获得用户的状态

transaction isActive{
-->User user
}