firebase-admin-python icon indicating copy to clipboard operation
firebase-admin-python copied to clipboard

[FR] Add WebApps support to project_management

Open mcosta74 opened this issue 11 months ago • 1 comments

Is your feature request related to a problem? Please describe. The project_management package miss API to work with webApps resource

Describe the solution you'd like API to work with WebApps similar to the ones available for iOSApps and AndroidApps

Describe alternatives you've considered The single alternative I considered was to use the REST requests by hands

Additional context I implemented a bare minimum solution just extending _ProjectManagementService

from firebase_admin import project_management


class WebApp:
    def __init__(self, app_id, service) -> None:
        self._app_id = app_id
        self._service = service

    @property
    def app_id(self):
        return self._app_id

    def get_metadata(self):
        return self._service.get_web_app_metadata(self._app_id)

    def get_config(self):
        return self._service.get_web_app_config(self._app_id)


class WebAppsService(project_management._ProjectManagementService):
    WEB_APPS_RESOURCE_NAME = 'webApps'

    def __init__(self, app):
        super().__init__(app)

    def list_web_apps(self) -> list[WebApp]:
        return self._list_apps(
            platform_resource_name=WebAppsService.WEB_APPS_RESOURCE_NAME,
            app_class=WebApp
        )

    def get_web_app_metadata(self, app_id):
        path = '/v1beta1/projects/-/{0}/{1}'.format(
            WebAppsService.WEB_APPS_RESOURCE_NAME,
            app_id,
        )
        return self._make_request('get', path)

    def get_web_app_config(self, app_id):
        path = '/v1beta1/projects/-/{0}/{1}/config'.format(
            WebAppsService.WEB_APPS_RESOURCE_NAME,
            app_id,
        )
        return self._make_request('get', path)

but it can be completed with all APIs

mcosta74 avatar Mar 04 '24 09:03 mcosta74

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

google-oss-bot avatar Mar 04 '24 09:03 google-oss-bot