aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntony Kellermann2018-06-25 10:52:50 -0400
committerAntony Kellermann2018-06-25 10:52:50 -0400
commit71b4f6194f0e776c0139d0f531f430da8383dd68 (patch)
tree7af13a0aae9ceac6b5a8c250992da252061d5c0c
parent4b02268aaf2081bf37e4c48a908d73b729019809 (diff)
downloadaur-71b4f6194f0e776c0139d0f531f430da8383dd68.tar.gz
Changed Info_Array to use Info for totals
-rw-r--r--api.c28
-rw-r--r--api.h31
2 files changed, 29 insertions, 30 deletions
diff --git a/api.c b/api.c
index 2f98d447991c..34e44ef941c0 100644
--- a/api.c
+++ b/api.c
@@ -35,16 +35,31 @@ Info_Array* api_info_array_init(void) {
Info_Array* pInfo_Array = malloc(sizeof(Info_Array));
pointer_alloc_check(pInfo_Array);
*pInfo_Array = (Info_Array) {
- .array = NULL, .length = 0, .total_spent = EMPTY, .current_value = 0, .ftotal_spent[0] = '\0',
- .fcurrent_value[0] = '\0', .profit_total = EMPTY, .profit_total_percent = EMPTY, .profit_last_close = EMPTY,
- .profit_last_close_percent = EMPTY, .profit_7d = EMPTY, .profit_7d_percent = EMPTY, .profit_30d = EMPTY,
- .profit_30d_percent = EMPTY, .fprofit_total[0] = '\0', .fprofit_total_percent[0] = '\0',
- .fprofit_last_close[0] = '\0', .fprofit_last_close_percent[0] = '\0', .fprofit_7d[0] = '\0',
- .fprofit_7d_percent[0] = '\0', .fprofit_30d[0] = '\0', .fprofit_30d_percent[0] = '\0'
+ .array = NULL, .length = 0, .totals = NULL
};
return pInfo_Array;
}
+void info_array_calculate_totals(Info_Array* pInfo_Array) {
+ strcpy(pInfo_Array->totals->symbol, "TOTALS");
+ for (size_t i = 0; i < pInfo_Array->length; i++) {
+ pInfo_Array->totals->total_spent += pInfo_Array->array[i]->total_spent;
+ pInfo_Array->totals->current_value += pInfo_Array->array[i]->current_value;
+ pInfo_Array->totals->profit_total += pInfo_Array->array[i]->profit_total;
+ pInfo_Array->totals->profit_last_close += pInfo_Array->array[i]->profit_last_close;
+ pInfo_Array->totals->profit_7d += pInfo_Array->array[i]->profit_7d;
+ pInfo_Array->totals->profit_30d += pInfo_Array->array[i]->profit_30d;
+ }
+ pInfo_Array->totals->profit_total_percent = (100 * (pInfo_Array->totals->current_value -
+ pInfo_Array->totals->total_spent)) / pInfo_Array->totals->total_spent;
+ pInfo_Array->totals->profit_last_close_percent = 100 *
+ pInfo_Array->totals->profit_last_close / pInfo_Array->totals->total_spent;
+ pInfo_Array->totals->profit_7d_percent = 100 * pInfo_Array->totals->profit_7d /
+ pInfo_Array->totals->total_spent;
+ pInfo_Array->totals->profit_30d_percent = 100 * pInfo_Array->totals->profit_30d /
+ pInfo_Array->totals->total_spent;
+}
+
size_t api_string_writefunc(void* ptr, size_t size, size_t nmemb, String* pString) {
size_t new_len = pString->len + size * nmemb;
pString->data = realloc(pString->data, new_len + 1);
@@ -610,6 +625,7 @@ void api_info_array_destroy(Info_Array** phInfo_Array) {
for (size_t i = 0; i < pInfo_Array->length; i++)
api_info_destroy(&pInfo_Array->array[i]);
free(pInfo_Array->array);
+ api_info_destroy(&pInfo_Array->totals);
free(*phInfo_Array);
*phInfo_Array = NULL;
} \ No newline at end of file
diff --git a/api.h b/api.h
index a70a7798dbeb..7476b7ca2a95 100644
--- a/api.h
+++ b/api.h
@@ -126,30 +126,7 @@ struct info {
struct info_array {
Info** array;
size_t length;
-
- double total_spent; // Total USD spent
- double current_value; // Total USD value
-
- char ftotal_spent[CELL_MAX_LENGTH]; // Total USD spent
- char fcurrent_value[CELL_MAX_LENGTH]; // Total USD value
-
- double profit_total; // Total profit
- double profit_total_percent; // Total profit %
- double profit_last_close; // Profit since last close
- double profit_last_close_percent; // Profit since last close %
- double profit_7d; // Profit since seven days ago
- double profit_7d_percent; // Profit since seven days ago %
- double profit_30d; // Profit since thirty days ago
- double profit_30d_percent; // Profit since thirty days ago %
-
- char fprofit_total[CELL_MAX_LENGTH]; // Total profit
- char fprofit_total_percent[CELL_MAX_LENGTH]; // Total profit %
- char fprofit_last_close[CELL_MAX_LENGTH]; // Profit since last close
- char fprofit_last_close_percent[CELL_MAX_LENGTH]; // Profit since last close %
- char fprofit_7d[CELL_MAX_LENGTH]; // Profit since seven days ago
- char fprofit_7d_percent[CELL_MAX_LENGTH]; // Profit since seven days ago %
- char fprofit_30d[CELL_MAX_LENGTH]; // Profit since thirty days ago
- char fprofit_30d_percent[CELL_MAX_LENGTH]; // Profit since thirty days ago %
+ Info* totals;
};
/**
@@ -172,6 +149,12 @@ Info* api_info_init(void);
Info_Array* api_info_array_init(void);
/**
+ * Adds up values of Info array and sets values in totals.
+ * @param pInfo_Array
+ */
+void info_array_calculate_totals(Info_Array* pInfo_Array);
+
+/**
* writefunction for cURL HTTP GET/POST
* stolen from a nice man on stackoverflow
*/