Skip to main content
Glama
api-endpoints.ts5.25 kB
/** * Google Play Console API Endpoints * * Centralized API endpoint management for androidpublisher v3 API */ import type { androidpublisher_v3 } from "googleapis"; import type { EditSession, ListingUpdateAttributes, AppDetailsUpdateAttributes, TrackUpdateAttributes, ImageType, AppEdit, AppDetails, Listing, Image, Track, ListingsListResponse, ImagesListResponse, TracksListResponse, ImagesUploadResponse, } from "./types"; export class GooglePlayApiEndpoints { constructor(private androidPublisher: androidpublisher_v3.Androidpublisher) {} /** * Edit Operations */ async createEdit( auth: EditSession["auth"], packageName: string ): Promise<{ data: AppEdit }> { const response = await this.androidPublisher.edits.insert({ auth, packageName, }); return { data: response.data }; } async deleteEdit(session: EditSession): Promise<{ data: void }> { await this.androidPublisher.edits.delete({ auth: session.auth, packageName: session.packageName, editId: session.editId, }); return { data: undefined }; } async commitEdit(session: EditSession): Promise<{ data: AppEdit }> { const response = await this.androidPublisher.edits.commit({ auth: session.auth, packageName: session.packageName, editId: session.editId, }); return { data: response.data }; } /** * App Details Operations */ async getAppDetails(session: EditSession): Promise<{ data: AppDetails }> { const response = await this.androidPublisher.edits.details.get({ auth: session.auth, packageName: session.packageName, editId: session.editId, }); return { data: response.data }; } async updateAppDetails( session: EditSession, requestBody: AppDetailsUpdateAttributes ): Promise<{ data: AppDetails }> { const response = await this.androidPublisher.edits.details.update({ auth: session.auth, packageName: session.packageName, editId: session.editId, requestBody, }); return { data: response.data }; } /** * Listing Operations */ async listListings( session: EditSession ): Promise<{ data: ListingsListResponse }> { const response = await this.androidPublisher.edits.listings.list({ auth: session.auth, packageName: session.packageName, editId: session.editId, }); return { data: response.data }; } async getListing( session: EditSession, language: string ): Promise<{ data: Listing }> { const response = await this.androidPublisher.edits.listings.get({ auth: session.auth, packageName: session.packageName, editId: session.editId, language, }); return { data: response.data }; } async updateListing( session: EditSession, language: string, requestBody: ListingUpdateAttributes ): Promise<{ data: Listing }> { const response = await this.androidPublisher.edits.listings.update({ auth: session.auth, packageName: session.packageName, editId: session.editId, language, requestBody, }); return { data: response.data }; } /** * Image Operations */ async listImages( session: EditSession, language: string, imageType: ImageType ): Promise<{ data: ImagesListResponse }> { const response = await this.androidPublisher.edits.images.list({ auth: session.auth, packageName: session.packageName, editId: session.editId, language, imageType, }); return { data: response.data }; } async uploadImage( session: EditSession, language: string, imageType: ImageType, media: { mimeType: string; body: Buffer } ): Promise<{ data: Image }> { const response = await this.androidPublisher.edits.images.upload({ auth: session.auth, packageName: session.packageName, editId: session.editId, language, imageType, media, }); const uploadData: ImagesUploadResponse = response.data; if (!uploadData?.image) { throw new Error("Image upload failed: no image data returned"); } return { data: uploadData.image }; } /** * Track Operations */ async getTrack( session: EditSession, track: string ): Promise<{ data: Track }> { const response = await this.androidPublisher.edits.tracks.get({ auth: session.auth, packageName: session.packageName, editId: session.editId, track, }); return { data: response.data }; } async updateTrack( session: EditSession, track: string, requestBody: TrackUpdateAttributes ): Promise<{ data: Track }> { const response = await this.androidPublisher.edits.tracks.update({ auth: session.auth, packageName: session.packageName, editId: session.editId, track, requestBody, }); return { data: response.data }; } async listTracks( session: EditSession ): Promise<{ data: TracksListResponse }> { const response = await this.androidPublisher.edits.tracks.list({ auth: session.auth, packageName: session.packageName, editId: session.editId, }); return { data: response.data }; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/quartz-labs-dev/pabal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server