COOPENOMICS  v1
Кооперативная Экономика
coops_access_helpers.hpp
См. документацию.
1#pragma once
2
3#include <eosio/eosio.hpp>
4
5#include "../consts.hpp"
8
9boards get_board_by_id(eosio::name coopname, uint64_t board_id) {
10 boards_index boards_tbl(_soviet, coopname.value);
11 auto board = boards_tbl.find(board_id);
12
13 eosio::check(board != boards_tbl.end(), "Совет не найден");
14
15 return *board;
16}
17
18boards get_board_by_type_or_fail(eosio::name coopname, eosio::name type) {
19 boards_index boards_tbl(_soviet, coopname.value);
20 auto boards_by_type_index = boards_tbl.template get_index<"bytype"_n>();
21 auto exist = boards_by_type_index.find(type.value);
22
23 eosio::check(exist != boards_by_type_index.end(), "Совет не найден");
24
25 return *exist;
26}
27
28bool check_for_exist_board_by_type(eosio::name coopname, eosio::name type) {
29 boards_index boards_tbl(_soviet, coopname.value);
30
31 auto boards_by_type_index = boards_tbl.template get_index<"bytype"_n>();
32
33 auto exist = boards_by_type_index.find(type.value);
34
35 if (exist != boards_by_type_index.end())
36 return true;
37 else
38 return false;
39}
40
41bool is_valid_participant(eosio::name coopname, eosio::name username) {
42 participants_index participants_tbl(_soviet, coopname.value);
43 auto participant_row = participants_tbl.find(username.value);
44 accounts_index accounts_tbl(_registrator, _registrator.value);
45 auto account_row = accounts_tbl.find(username.value);
46
47 if (participant_row != participants_tbl.end() && participant_row->status == "accepted"_n) {
48 return true;
49 }
50
51 return false;
52}
53
54participant get_participant_or_fail(eosio::name coopname, eosio::name username) {
55 participants_index participants_tbl(_soviet, coopname.value);
56 auto participant_row = participants_tbl.find(username.value);
57 eosio::check(participant_row != participants_tbl.end(), "Пайщик не найден в кооперативе");
58 eosio::check(participant_row->status != "blocked"_n, "Пайщик заблокирован");
59
60 return *participant_row;
61}
static constexpr eosio::name _registrator
Definition: consts.hpp:157
static constexpr eosio::name _soviet
Definition: consts.hpp:156
participant get_participant_or_fail(eosio::name coopname, eosio::name username)
Definition: coops_access_helpers.hpp:54
boards get_board_by_id(eosio::name coopname, uint64_t board_id)
Definition: coops_access_helpers.hpp:9
boards get_board_by_type_or_fail(eosio::name coopname, eosio::name type)
Definition: coops_access_helpers.hpp:18
bool check_for_exist_board_by_type(eosio::name coopname, eosio::name type)
Definition: coops_access_helpers.hpp:28
bool is_valid_participant(eosio::name coopname, eosio::name username)
Definition: coops_access_helpers.hpp:41
Definition: table_soviet_boards.hpp:21
Definition: table_soviet_participants.hpp:14
eosio::multi_index< "accounts"_n, account, eosio::indexed_by<"byreferer"_n, eosio::const_mem_fun< account, uint64_t, &account::by_referer > >, eosio::indexed_by<"bytype"_n, eosio::const_mem_fun< account, uint64_t, &account::by_type > >, eosio::indexed_by<"bystatus"_n, eosio::const_mem_fun< account, uint64_t, &account::by_status > >, eosio::indexed_by<"byregistr"_n, eosio::const_mem_fun< account, uint64_t, &account::by_registr > >, eosio::indexed_by<"byregistred"_n, eosio::const_mem_fun< account, uint64_t, &account::by_registered_at > >, eosio::indexed_by<"byverif"_n, eosio::const_mem_fun< account, uint64_t, &account::is_verified_index > > > accounts_index
Definition: table_registrator_accounts.hpp:68
eosio::multi_index< "boards"_n, boards, eosio::indexed_by<"bytype"_n, eosio::const_mem_fun< boards, uint64_t, &boards::by_type > > > boards_index
Definition: table_soviet_boards.hpp:90
eosio::multi_index< "participants"_n, participant, eosio::indexed_by<"bylastpay"_n, eosio::const_mem_fun< participant, uint64_t, &participant::bylastpay > >, eosio::indexed_by<"createdat"_n, eosio::const_mem_fun< participant, uint64_t, &participant::by_created_at > >, eosio::indexed_by<"bybranch"_n, eosio::const_mem_fun< participant, uint64_t, &participant::by_braname > > > participants_index
Definition: table_soviet_participants.hpp:48