firebase / firebase/firebase-admin-python

[FR] Add WebApps support to project_management

Open
#772 1 comment 0 reactions 0 assignees View on GitHub
type: feature request
Dominant language
Python
Stars
1.2k
Forks
359
Avg merge
5d 6m
Merged PRs (30d)
2

Description

**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`

```py
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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.