|
2 | 2 | #include <random> |
3 | 3 | #include <ctime> |
4 | 4 | #include <sstream> |
| 5 | +#include <string> |
5 | 6 | #include "netlicensing/netlicensing.h" |
6 | 7 | #include "netlicensing/constants.h" |
7 | 8 |
|
8 | 9 | int main(int argc, char* argv[]) { |
9 | 10 | using namespace netlicensing; |
10 | 11 |
|
11 | | - std::string licensee_number = "IR2Q7A5P3"; |
| 12 | + std::string licensee_number; |
12 | 13 | if (argc > 1) { |
13 | 14 | licensee_number = argv[1]; |
14 | 15 | } |
15 | 16 |
|
16 | 17 | std::mt19937 gen; |
17 | 18 | gen.seed(time(0)); |
18 | 19 | std::stringstream ss; |
19 | | - ss << "P" << gen(); |
20 | | - std::string productNumber = ss.str(); |
21 | 20 |
|
22 | 21 | std::cout << "Hello, this is NetLicensing demo client\n"; |
23 | | - std::cout << "Product endpoint " << endpoint<Product>() << std::endl; |
24 | | - std::cout << "Product test number " << productNumber << std::endl; |
25 | 22 |
|
26 | 23 | try { |
27 | 24 | Context ctx; |
28 | 25 | ctx.set_base_url("https://go.netlicensing.io/core/v2/rest/"); |
29 | 26 | ctx.set_username("demo"); |
30 | 27 | ctx.set_password("demo"); |
31 | 28 |
|
32 | | - // product section |
33 | | - Product p; |
34 | | - p.setName("Test name"); |
35 | | - p.setNumber(productNumber); |
| 29 | + if (licensee_number.empty()) { |
| 30 | + std::cout << "Please enter a valid licensee number for validation (choose licensee in demo account): " << std::endl; |
| 31 | + if (!std::getline(std::cin, licensee_number)) { return -1; } |
36 | 32 |
|
37 | | - std::list<ProductDiscount> discounts; |
38 | | - ProductDiscount discount; |
39 | | - ProductDiscount discount2; |
| 33 | + if (!licensee_number.empty()) { |
| 34 | + std::cout << "start validation for " << licensee_number << std::endl; |
| 35 | + ValidationResult vres = LicenseeService::validate(ctx, licensee_number); |
| 36 | + std::cout << "got validation results:\n" << vres.toString() << std::endl; |
| 37 | + } |
| 38 | + else { |
| 39 | + std::cout << "Invalid licensee number for validation." << std::endl; |
| 40 | + return -1; |
| 41 | + } |
40 | 42 |
|
41 | | - discount.setTotalPrice("20"); |
42 | | - discount.setCurrency("EUR"); |
43 | | - discount.setAmountFix("10"); |
44 | | - |
45 | | - discount2.setTotalPrice("25"); |
46 | | - discount2.setCurrency("EUR"); |
47 | | - discount2.setAmountPercent("10"); |
48 | | - |
49 | | - discounts.push_back(discount); |
50 | | - discounts.push_back(discount2); |
51 | | - |
52 | | - p.setProductsDiscounts(discounts); |
53 | | - |
54 | | - Product newp = ProductService::create(ctx, p); |
55 | | - |
56 | | - std::list<ProductDiscount> newpDiscounts = newp.getDiscounts(); |
57 | | - |
58 | | - std::cout << "product disounts size: " << newpDiscounts.size() << std::endl; |
59 | | - |
60 | | - int i = 0; |
61 | | - for (ProductDiscount newpDiscount : newpDiscounts) { |
62 | | - std::string newpDiscountStr = newpDiscount.toString(); |
63 | | - std::cout << "product disount #" << i << ": " << newpDiscountStr << std::endl; |
64 | | - i++; |
65 | | - } |
66 | | - |
67 | | - newp.setName("Updated name"); |
68 | | - |
69 | | - std::list<ProductDiscount> discountsEmpty; |
70 | | - newp.setProductsDiscounts(discountsEmpty); |
71 | | - std::cin.ignore(); |
72 | | - Product newp2 = ProductService::update(ctx, newp.getNumber(), newp); |
73 | | - |
74 | | - std::list<ProductDiscount> newp2Discounts = newp2.getDiscounts(); |
75 | | - |
76 | | - std::cout << "product disounts size: " << newp2Discounts.size() << std::endl; |
77 | | - std::cin.ignore(); |
78 | | - std::list<Product> products = ProductService::list(ctx, ""); |
79 | | - std::cout << "before delete products count " << products.size() << std::endl; |
80 | | - |
81 | | - ProductService::del(ctx, newp2.getNumber(), false); |
82 | | - |
83 | | - products = ProductService::list(ctx, ""); |
84 | | - std::cout << "after delete products count " << products.size() << std::endl; |
85 | | - |
86 | | - if (!licensee_number.empty()) { |
87 | | - std::cout << "start validation for " << licensee_number << std::endl; |
88 | | - ValidationResult vres = LicenseeService::validate(ctx, licensee_number); |
89 | | - std::cout << "got validation results:\n" << vres.toString() << std::endl; |
90 | 43 | } |
91 | 44 | } |
92 | 45 | catch (const RestException& e) { |
93 | 46 | std::cerr << e.what() << " code " << e.http_code() << std::endl; |
94 | 47 | for (auto det : e.get_details()) { |
95 | 48 | std::cerr << det.to_string() << std::endl; |
96 | 49 | } |
| 50 | + std::cin.ignore(); |
97 | 51 | return 2; |
98 | 52 | } |
99 | 53 | catch (const std::runtime_error& err) { |
|
0 commit comments