diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-12-10 15:01:13 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-12-10 15:01:13 -0500 |
| commit | 6c3559c51bf01ab10346d575e8b26903028c7251 (patch) | |
| tree | a15699c99b5a5374a9a45a9d24cb407a7711b26c /src/level-import.cpp | |
| parent | 5807565be93e8b813627fb8f52747d8d6b8a1504 (diff) | |
Diffstat (limited to 'src/level-import.cpp')
| -rw-r--r-- | src/level-import.cpp | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/level-import.cpp b/src/level-import.cpp index 5801cac..c0d6910 100644 --- a/src/level-import.cpp +++ b/src/level-import.cpp @@ -160,23 +160,46 @@ void pke_at_level_import_exit_clicked(void*,void*,void*) { void pke_at_level_import_import_clicked(void*,void*,void*) { uint32_t u; - - pke_at_setlist_details setlist_details; - setlist_details.uuid = pk_uuid_new_v7(); + pke_at_setlist_details setlist_details{}; + pke_at_song_details song_details{}; + pke_at_setlist_song_details setlist_song_details{}; + pke_at_ext_mapping_details deets{}; + + deets.mapping_source = PKE_AT_EXT_MAPPING_SOURCE_PLANNING_CENTER_SERVICES; + deets.mapping_type = PKE_AT_EXT_MAPPING_TYPE_LONG; + deets.id.id_long = lvl_mstr.data.selected_plan->details.id.id_long; + auto mapping_resp = g_at.storage->pke_at_storage_interface_ext_mapping_get(deets); + + if (mapping_resp.result_code == pke_at_storage_interface_result_code_success && mapping_resp.value != nullptr && mapping_resp.value->details.next > 0) { + setlist_details.uuid = mapping_resp.value->details[0].uuid; + } else { + setlist_details.uuid = pk_uuid_new_v7(); + } setlist_details.title = lvl_mstr.data.selected_plan->details.title; g_at.storage->pke_at_storage_interface_setlist_upsert(setlist_details); + deets.uuid = setlist_details.uuid; + g_at.storage->pke_at_storage_interface_ext_mapping_upsert(deets); for (u = 0; u < lvl_mstr.data.plan_items.next; ++u) { di_plan_item *plan_item = &lvl_mstr.data.plan_items[u]; - pke_at_song_details song_details{}; - song_details.uuid = pk_uuid_new_v7(); + + deets.id.id_long = plan_item->details.id.id_long; + mapping_resp = g_at.storage->pke_at_storage_interface_ext_mapping_get(deets); + if (mapping_resp.result_code == pke_at_storage_interface_result_code_success && mapping_resp.value != nullptr && mapping_resp.value->details.next > 0) { + song_details.uuid = mapping_resp.value->details[0].uuid; + } else { + song_details.uuid = pk_uuid_new_v7(); + } + deets.uuid = song_details.uuid; + song_details.key = plan_item->details.key; song_details.ccli = plan_item->song.details.ccli; song_details.title = plan_item->song.details.title; song_details.arrangement = plan_item->arrangement.details.title; song_details.bpm = plan_item->arrangement.details.beats_per_minute; g_at.storage->pke_at_storage_interface_song_upsert(song_details); - pke_at_setlist_song_details setlist_song_details{}; + g_at.storage->pke_at_storage_interface_ext_mapping_upsert(deets); + setlist_song_details.setlist_uuid = setlist_details.uuid; setlist_song_details.song_uuid = song_details.uuid; g_at.storage->pke_at_storage_interface_setlist_song_upsert(setlist_song_details); |
