BALDE_API balde_response_t* balde_abort_with_description(balde_app_t *app, const balde_http_exception_code_t code, const gchar *description) { balde_abort_set_error_with_description(app, code, description); balde_response_t* response = NULL; if (app->error != NULL) { response = balde_make_response_from_exception(app->error); g_clear_error(&app->error); app->error = NULL; } return response; }
BALDE_API void balde_app_set_config_from_envvar(balde_app_t *app, const gchar *name, const gchar *env_name, gboolean silent) { BALDE_APP_READ_ONLY(app); const gchar *value = g_getenv(env_name); if (value == NULL && !silent) { gchar *msg = g_strdup_printf("%s environment variable must be set", env_name); balde_abort_set_error_with_description(app, 500, msg); g_free(msg); return; } balde_app_set_config(app, name, value); }
void bb_post_loader_load_app(balde_app_t *app) { const gchar *dirpath = balde_app_get_config(app, "POSTS_DIRECTORY"); if (dirpath == NULL) { balde_abort_set_error_with_description(app, 500, "POSTS_DIRECTORY must be set"); return; } /* * TODO: when we start reloading the cached posts automatically, we need to * free the 'posts' list before re-running bp_post_loader_load_from_directory, * and need to make sure that 'user_data' is set to NULL right after creating * the balde application context. */ app->user_data = g_new(bb_user_data_t, 1); bb_user_data_t *ud = app->user_data; ud->posts = bb_post_loader_load_from_directory(dirpath); }