@crowdin/app-project-module
Version:
Module that generates for you all common endpoints for serving standalone Crowdin App
110 lines (109 loc) • 7.37 kB
TypeScript
import { Storage } from '.';
import { CrowdinCredentials } from '../types';
import { CreateJobParams, GetActiveJobsParams, GetJobParams, GetFileTranslationCacheByLanguageParams, Job, TranslationCache, UpdateJobParams, UpdateTranslationCacheParams, GetFileTranslationCache, UnsyncedFiles, GetUnsyncedFiles, IntegrationSyncedData, GetAllJobsParams } from '../modules/integration/util/types';
import { IntegrationConfig, IntegrationCredentials, IntegrationFilesSnapshot, IntegrationSyncSettings, IntegrationWebhooks } from '../modules/integration/types';
import { UserErrors } from './types';
export interface MySQLStorageConfig {
uri?: string;
host?: string;
user?: string;
password?: string;
database?: string;
port?: number;
}
export declare class MySQLStorage implements Storage {
private mysql;
private _res?;
private _rej?;
private dbPromise;
private config;
tableIndexes: {
[key: string]: {
[key: string]: string;
};
};
tables: {
crowdin_credentials: string;
integration_credentials: string;
sync_settings: string;
app_metadata: string;
files_snapshot: string;
webhooks: string;
user_errors: string;
integration_settings: string;
job: string;
translation_file_cache: string;
unsynced_files: string;
synced_data: string;
};
constructor(config: MySQLStorageConfig);
executeQuery<T>(command: (connection: any) => Promise<T>): Promise<T>;
migrate(): Promise<void>;
addTables(connection: any): Promise<void>;
saveCrowdinCredentials(credentials: CrowdinCredentials): Promise<void>;
updateCrowdinCredentials(credentials: CrowdinCredentials): Promise<void>;
getCrowdinCredentials(id: string): Promise<CrowdinCredentials | undefined>;
getAllCrowdinCredentials(): Promise<CrowdinCredentials[]>;
deleteCrowdinCredentials(id: string): Promise<void>;
saveIntegrationCredentials(id: string, credentials: any, crowdinId: string): Promise<void>;
updateIntegrationCredentials(id: string, credentials: any): Promise<void>;
updateIntegrationManagers(id: string, managers: any): Promise<void>;
getIntegrationCredentials(id: string): Promise<IntegrationCredentials | undefined>;
getAllIntegrationCredentials(crowdinId: string): Promise<IntegrationCredentials[]>;
deleteIntegrationCredentials(id: string): Promise<void>;
deleteAllIntegrationCredentials(crowdinId: string): Promise<void>;
saveMetadata(id: string, metadata: any, crowdinId: string): Promise<void>;
updateMetadata(id: string, metadata: any, crowdinId: string): Promise<void>;
getMetadata(id: string): Promise<any>;
getAllMetadata(): Promise<any[]>;
deleteMetadata(id: string): Promise<void>;
getSyncSettingsByProvider(integrationId: string, provider: string): Promise<IntegrationSyncSettings | undefined>;
getSyncSettingsBySchedule(type: string, schedule: string): Promise<IntegrationSyncSettings[]>;
saveSyncSettings(files: any, integrationId: string, crowdinId: string, type: string, provider: string): Promise<void>;
updateSyncSettings(files: any, integrationId: string, crowdinId: string, type: string, provider: string): Promise<void>;
getSyncSettings(integrationId: string, crowdinId: string, type: string, provider: string): Promise<IntegrationSyncSettings | undefined>;
saveFilesSnapshot(files: any, integrationId: string, crowdinId: string, provider: string): Promise<void>;
updateFilesSnapshot(files: any, integrationId: string, crowdinId: string, provider: string): Promise<void>;
getFilesSnapshot(integrationId: string, crowdinId: string, provider: string): Promise<IntegrationFilesSnapshot | undefined>;
getAllWebhooks(integrationId: string, crowdinId: string, provider: string): Promise<IntegrationWebhooks[] | undefined>;
getWebhooks(fileId: string, integrationId: string, crowdinId: string, provider: string): Promise<IntegrationWebhooks | undefined>;
saveWebhooks(fileId: string, integrationId: string, crowdinId: string, provider: string): Promise<void>;
deleteWebhooks(fileIds: any[], integrationId: string, crowdinId: string, provider: string): Promise<void>;
getAllUserErrors(crowdinId: string, integrationId?: string): Promise<UserErrors[] | undefined>;
saveUserError(action: string, message: string, data: any, createdAt: string, crowdinId: string, integrationId?: string): Promise<void>;
deleteUserErrors(createdAt: string, crowdinId: string, integrationId?: string): Promise<void>;
deleteAllUsersErrorsOlderThan(createdAt: string): Promise<void>;
saveIntegrationConfig(integrationId: string, crowdinId: string, config: any): Promise<void>;
getAllIntegrationConfigs(crowdinId: string): Promise<IntegrationConfig[]>;
getIntegrationConfig(integrationId: string): Promise<IntegrationConfig | undefined>;
updateIntegrationConfig(integrationId: string, config: any): Promise<void>;
createJob({ integrationId, crowdinId, type, title, payload }: CreateJobParams): Promise<string>;
updateJob({ id, progress, status, info, data, attempt, errors, processedEntities, }: UpdateJobParams): Promise<void>;
getJob({ id }: GetJobParams): Promise<Job | undefined>;
getActiveJobs({ integrationId, crowdinId }: GetActiveJobsParams): Promise<Job[] | undefined>;
deleteFinishedJobs(): Promise<void>;
getAllInProgressJobs(): Promise<Job[] | undefined>;
getAllJobs({ integrationId, crowdinId, limit, offset }: GetAllJobsParams): Promise<Job[] | undefined>;
saveTranslationCache({ integrationId, crowdinId, fileId, languageId, etag, }: TranslationCache): Promise<void>;
getFileTranslationCache({ integrationId, crowdinId, fileId, }: GetFileTranslationCache): Promise<TranslationCache[] | undefined>;
getFileTranslationCacheByLanguage({ integrationId, crowdinId, fileId, languageId, }: GetFileTranslationCacheByLanguageParams): Promise<TranslationCache | undefined>;
updateTranslationCache({ integrationId, crowdinId, fileId, languageId, etag, }: UpdateTranslationCacheParams): Promise<void>;
saveUnsyncedFiles({ integrationId, crowdinId, files }: UnsyncedFiles): Promise<void>;
updateUnsyncedFiles({ integrationId, crowdinId, files }: UnsyncedFiles): Promise<void>;
getUnsyncedFiles({ integrationId, crowdinId }: GetUnsyncedFiles): Promise<UnsyncedFiles | undefined>;
registerCustomTable(tableName: string, schema: Record<string, string>): Promise<void>;
insertRecord(tableName: string, data: Record<string, any>): Promise<void>;
selectRecords(tableName: string, options?: {
columns?: string[];
whereClause?: string;
orderBy?: string;
limit?: number;
offset?: number;
distinct?: boolean;
}, params?: any[]): Promise<any[]>;
updateRecord(tableName: string, data: Record<string, any>, whereClause: string, params?: any[]): Promise<void>;
deleteRecord(tableName: string, whereClause: string, params?: any[]): Promise<void>;
saveSyncedData(files: any, integrationId: string, crowdinId: string, type: string): Promise<void>;
updateSyncedData(files: any, integrationId: string, crowdinId: string, type: string): Promise<void>;
getSyncedData(integrationId: string, crowdinId: string, type: string): Promise<IntegrationSyncedData | undefined>;
}