department-of-veterans-affairs / va-mobile-app

"If VA were a company, it would have a flagship mobile app."
https://department-of-veterans-affairs.github.io/va-mobile-app/
17 stars 2 forks source link

Create list of existing API services in vets-api #6453

Closed jperk51 closed 1 year ago

jperk51 commented 1 year ago

AC:

jperk51 commented 1 year ago

Timebox this at a 5

kpethtel commented 1 year ago

h1. Services as of 8/18/23

app/services/bgs

all services in this folder use. BGS::Services. The latter is from a custom ruby gem so its functionality requires a bit more effort to seek out.

app/services/bgs/people/service.rb

app/services/bgs/awards_service.rb

app/services/bgs/dependency_verification_service.rb

app/services/bgs/dependent_service.rb

app/services/bgs/payment_service.rb

app/services/bgs/uploaded_document_service.rb

app/services/form1010cg/service.rb

app/services/evss_claim_service.rb

I think this is a second class service that uses other services.

app/services/mhv_logging_service.rb

I think this is a second class service that uses other services.

app/uploaders

lib/apps/client.rb

this is not specific to user. not sure what it is

lib/bb/client.rb

lib/bgs/service.rb

uses BGS gem

lib/bid/awards/service.rb

lib/bip_claims/service.rb

lib/caseflow/service.rb

lib/central_mail/service.rb

lib/chip/service.rb

lib/claim_letters/claim_letter_downloader.rb

uses VBMS::Client, so maybe not a first class service

lib/debt_management_center/sharepoint/request.rb

lib/debt_management_center/vbs/request.rb

lib/debt_management_center/debt_letter_downloader.rb

lib/debt_management_center/debts_service.rb

lib/debt_management_center/financial_status_report_downloader.rb

lib/debt_management_center/financial_status_report_service.rb

lib/debt_management_center/payments_service.rb

uses BGS::PaymentService and BGS::People::Request from gem

lib/debt_management_center/statement_identifier_service.rb

seems to use data from MPI and vet360

lib/decision_review/service.rb

lib/decision_review/utilities/pdf_validation/service.rb

lib/decision_review_v1/appeals/supplemental_claim_services.rb

lib/decision_review_v1/service.rb

lib/disability_compensation/providers/intent_to_file/evss_intent_to_file_provider.rb

Uses evss/intent_to_file/service

lib/disability_compensation/providers/intent_to_file/lighthouse_intent_to_file_provider.rb

Uses lighthouse/benefits_claims/service

lib/disability_compensation/providers/ppiu_direct_deposit/evss_ppiu_provider.rb

Uses evss/ppiu/service

lib/disability_compensation/providers/ppiu_direct_deposit/lighthouse_ppiu_provider.rb

Uses lighthouse/direct_deposit/client

lib/disability_compensation/providers/rated_disabilities/evss_rated_disabilities_provider.rb

Not first class. Uses EVSS::DisabilityCompensationForm::Service

lib/disability_compensation/providers/rated_disabilities/lighthouse_rated_disabilities_provider.rb

not first class. Uses lighthouse/veteran_verification/service

lib/efolder/service.rb

Not first class. Uses VBMS::Client.

lib/emis/military_information_service.rb

lib/emis/military_information_service_v2.rb

lib/emis/payment_service.rb

lib/emis/payment_service_v2.rb

lib/emis/veteran_status_service.rb

(I documented EVSS before realizing that it's being sunset)

lib/evss/dependents/service.rb

lib/evss/gi_bill_status/service.rb

lib/evss/intent_to_file/service.rb

lib/evss/letters/download_service.rb

lib/evss/letters/service.rb

lib/evss/pciu/service.rb

lib/evss/pciu_address/service.rb

lib/evss/ppiu/service.rb

lib/evss/reference_data/service.rb

lib/evss/vso_search/service.rb

lib/evss/claims_service.rb

lib/evss/common_service.rb

lib/evss/documents_service.rb

lib/facilities/drivetime_bands/client.rb

lib/facilities/access_satisfaction_client.rb

lib/facilities/access_wait_time_client.rb

lib/facilities/client.rb

lib/facilities/metadata/client.rb

lib/form526_backup_submission/service.rb

lib/forms/client.rb

lib/gi/client.rb

lib/gi/search_client.rb

lib/gibft/service.rb

lib/hca/enrollment_eligibility/service.rb

lib/hca/service.rb

HCA stands for HealthCareApplication

lib/iam_ssoe_oauth/service.rb

lib/ihub/appointments/service.rb

lib/inherited_proofing/logingov/service.rb

lib/inherited_proofing/mhv/service.rb

lib/lgy/service.rb

lib/lighthouse/auth/client_credentials/service.rb

lib/lighthouse/benefits_claims/service.rb

lib/lighthouse/benefits_documents/service.rb

lib/lighthouse/benefits_documents/worker_service.rb

lib/lighthouse/benefits_reference_data/service.rb

lib/lighthouse/charon/service.rb

lib/lighthouse/direct_deposit/client.rb

lib/lighthouse/facilities/client.rb

lib/lighthouse/letters_generator/service.rb

lib/lighthouse/veteran_verification/service.rb

lib/lighthouse/veterans_health/client.rb

lib/mail_automation/client.rb

lib/mdot/client.rb

lib/medical_records/client.rb

lib/mhv_ac/client.rb

lib/mhv_logging/client.rb

lib/mpi/service.rb

lib/oidc/service.rb

Unclear what these do exactly.

lib/okta/service.rb

lib/pagerduty/external_services/service.rb

lib/pagerduty/maintenance_client.rb

lib/pagerduty/maintenance_windows_uploader.rb

lib/preneeds/service.rb

lib/rx/client.rb

lib/salesforce/service.rb

salesforce stuff. who knows.

lib/search/service.rb

lib/search_click_tracking/service.rb

lib/search_typeahead/service.rb

lib/sign_in/idme/service.rb

lib/sign_in/logingov/service.rb

Obviously this relates to the signin service. Not relevant.

lib/simple_forms_api_submission/service.rb

lib/simple_forms_api_submission/service.rb

lib/sm/client.rb

lib/token_validation/v2/client.rb

lib/va_profile/address_validation/service.rb

Get address suggestions and override key from the VA profile API

lib/va_profile/contact_information/service.rb

lib/va_profile/demographics/service.rb

lib/va_profile/military_personnel/service.rb

lib/va_profile/person/service.rb

We already use this.

lib/vbs/requests/list_statements.rb

It's a bit hard to tell because of the way it's structured, but I believe this can be used to list some sort of statements.

lib/vetext/service.rb

lib/virtual_regional_office/client.rb

Not sure what this is about.

lib/vre/service.rb

Unclear what the VRE service does.

modules/appeals_api/lib/appeals_api

Has some slack, email report scripts, and token validation script. Probably not relevant to us.

modules/apps_api/lib/apps_api/notification_service.rb

Seems to be about OKTA. doesn't seem relevant.

modules/check_in/app/services/travel_claim/client.rb

modules/check_in/app/services/travel_claim/service.rb

modules/check_in/app/services/v2/chip/client.rb

modules/check_in/app/services/v2/chip/service.rb

modules/check_in/app/services/v2/lorota/client.rb

modules/check_in/app/services/v2/lorota/service.rb

Uses client above but adds some additional processing

modules/claims_api/app/uploaders/claims_api

contains various claims file uploaders

modules/claims_api/lib/bd/bd.rb

modules/claims_api/lib/bgs_service/benefit_claim_service.rb

This is odd. It seems to get data from parsing XML, not from an API. Not sure what's going on here.

modules/claims_api/lib/bgs_service/claim_management_service.rb

This is odd. It seems to get data from parsing XML, not from an API. Not sure what's going on here.

modules/claims_api/lib/brd/brd.rb

modules/claims_api/lib/claims_api/vbms_uploader.rb

not a true service. It uses the VBMS::Client. I believe it's a gem.

modules/claims_api/lib/evss_service/base.rb

modules/claims_api/lib/pdf_generator_service/pdf_client.rb

modules/covid_research/app/services/covid_research/volunteer/genisis_service.rb

modules/covid_vaccine/app/services/covid_vaccine/v0/enrollment_upload_service.rb

modules/covid_vaccine/app/services/covid_vaccine/v0/expanded_registration_service.rb

modules/covid_vaccine/app/services/covid_vaccine/v0/vetext_service.rb

modules/dhp_connected_devices/lib/fitbit/client.rb

modules/facilities_api/app/services/facilities_api/v1/lighthouse/client.rb

modules/facilities_api/app/services/facilities_api/v1/mobile_covid/client.rb

modules/facilities_api/app/services/facilities_api/v1/ppms/client.rb

modules/health_quest/app/services/health_quest/facilities/request.rb

modules/meb_api/lib/dgi/automation/service.rb

modules/meb_api/lib/dgi/claimant/service.rb

modules/meb_api/lib/dgi/contact_info/service.rb

modules/meb_api/lib/dgi/eligibility/service.rb

modules/meb_api/lib/dgi/enrollment/service.rb

modules/meb_api/lib/dgi/forms/service/claimant_service.rb

modules/meb_api/lib/dgi/forms/service/letter_service.rb

modules/meb_api/lib/dgi/forms/service/sponsor_service.rb

modules/meb_api/lib/dgi/forms/service/submission_service.rb

modules/meb_api/lib/dgi/fry_dea/service.rb

modules/meb_api/lib/dgi/letters/service.rb

modules/meb_api/lib/dgi/status/service.rb

modules/meb_api/lib/dgi/submission/service.rb

modules/meb_api/lib/dgi/toe/service.rb

modules/meb_api/lib/dgi/toe/sponsors_service.rb

modules/va_notify/lib/va_notify/service.rb

modules/vaos/app/services/vaos/v1/fhir_service.rb

modules/vaos/app/services/vaos/v2/appointments_service.rb

modules/vaos/app/services/vaos/v2/mobile_facility_service.rb

modules/vaos/app/services/vaos/v2/mobile_ppms_service.rb

modules/vaos/app/services/vaos/v2/patients_service.rb

get_patient_appointment_metadata

modules/vaos/app/services/vaos/cc_eligibility_service.rb

modules/vaos/app/services/vaos/preferences_service.rb

modules/vaos/app/services/vaos/user_service.rb

kpethtel commented 1 year ago

The above is the output of this research. I created a list of (nearly) every outbound service in the vets-api. There were a few things I skipped because they were clearly irrelevant or redundant. Some of the above should probably be excluded because they are second class services (i.e., they use another service or gem to fetch the data) but it wasn't always clear what was a first vs. second class service. There were very likely some missed services as well. I believe that there are gems for both BGS and VBMS that can effectively be used like a service as well. Those aren't included here.

I did not exclude services that we already use because I was focused on documenting, not figuring out what we use. I also did not link to api documentation or make any attempt to determine which of these we should try to use. I ran out of time.