Skip to content
This repository has been archived by the owner on Apr 12, 2021. It is now read-only.

Commit

Permalink
fix(functions): #1656 refresh repos after reset webhook
Browse files Browse the repository at this point in the history
  • Loading branch information
webkhushboo committed Jan 18, 2020
1 parent 25006c5 commit 33552c4
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 15 deletions.
2 changes: 1 addition & 1 deletion functions/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export const findAllUserRepositories: HttpsFunction = functions.https.onCall((in
export const findAllUserEvents: HttpsFunction = functions.https.onCall((input: EventsInput, context: CallableContext) => getUserEvents(input.token, context.auth.uid, input.username));
export const findRepositoryInfo: HttpsFunction = functions.https.onCall((input: RepositoryInfoInput, context: CallableContext) => getRepositoryInfo(input.token, input.repository));
export const createGitWebhookRepository: HttpsFunction = functions.https.onCall((input: CreateGitWebhookRepositoryInput, context: CallableContext) => onCreateGitWebhookRepository(input.token, input.repositoryUid));
export const createGitWebhooks: HttpsFunction = functions.https.onCall((input: CreateGitWebhooksInput, context: CallableContext) => onCreateGitWebhooks(input.token, input.repositoryUids));
export const createGitWebhooks: HttpsFunction = functions.https.onCall((input: CreateGitWebhooksInput, context: CallableContext) => onCreateGitWebhooks(input.repositoryUids));
export const deleteGitWebhookRepository: HttpsFunction = functions.https.onCall((input: DeleteGitWebhookRepositoryInput, context: CallableContext) => onDeleteGitWebhookRepository(input.token, input.data));
export const responseGitWebhookRepository: HttpsFunction = onResponseGitWebhookRepository;
export const pingMonitor: HttpsFunction = functions.https.onCall((input: MonitorInfoInput, context: CallableContext) => ping(input.projectUid, input.monitorUid, input.type));
Expand Down
17 changes: 7 additions & 10 deletions functions/src/repository/create-git-webhook-repository.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { enviroment } from '../environments/environment';
import { GitHubRepositoryWebhookMapper, GitHubRepositoryWebhookModel, GitHubRepositoryWebhookRequestCreate, GitHubRepositoryWebhookResponse } from '../mappers/github/webhook.mapper';
import { RepositoryModel } from '../models/index.model';
import { DocumentData, DocumentReference, FirebaseAdmin } from './../client/firebase-admin';
import { getUserRepos } from '../user/repos';
import { DocumentData, DocumentReference, FirebaseAdmin, WriteResult } from './../client/firebase-admin';
import { GitHubClientPost } from './../client/github';
import { Logger } from './../client/logger';
import { deleteWebhook } from './delete-git-webhook-repository';
Expand All @@ -13,7 +14,6 @@ export interface CreateGitWebhookRepositoryInput {
}

export interface CreateGitWebhooksInput {
token: string;
repositoryUids: string[];
}

Expand Down Expand Up @@ -87,18 +87,15 @@ export async function getWebhook(repositoryFullName: string, token: string): Pro
return GitHubRepositoryWebhookMapper.import(await createWebhook(repositoryFullName, token));
}

export const onCreateGitWebhooks: any = async (token: string, repositoryUids: string[]) => {
const promises: Promise<any>[] = [];
export const onCreateGitWebhooks: any = async (repositoryUids: string[]) => {
const promises: Promise<WriteResult>[] = [];
repositoryUids.forEach((repoUid: string) =>
FirebaseAdmin
promises.push(FirebaseAdmin
.firestore()
.collection('repositories')
.doc(repoUid)
.set(
{
resetWebhook: true,
}
, { merge: true })
.set({ resetWebhook: true }, { merge: true }))
);
await Promise.all(promises);
await getUserRepos();
};
5 changes: 1 addition & 4 deletions web/src/app/core/services/repository.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,7 @@ export class RepositoryService {
public createGitWebhooks(repos: IRepository[]): Observable<RepositoryModel> {
const callable: any = this.fns.httpsCallable('createGitWebhooks');

return of(new RepositoryModel(callable({
repositoryUids: repos.map((repo: IRepository) => repo.uid),
token: this.authService.profile.oauth.githubToken,
})));
return of(new RepositoryModel(callable({ repositoryUids: repos.map((repo: IRepository) => repo.uid) })));
}

/**
Expand Down

0 comments on commit 33552c4

Please sign in to comment.