Skip to content

Commit

Permalink
Merge pull request #78 from supermurat/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
supermurat committed Sep 25, 2020
2 parents 2ad95ad + 138d51d commit 230f0cc
Show file tree
Hide file tree
Showing 7 changed files with 88 additions and 39 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -56,6 +56,7 @@ typings/

# dotenv environment variables file
.env
.env.*

# next.js build output
.next
Expand Down
89 changes: 65 additions & 24 deletions README.md
@@ -1,20 +1,19 @@
[![Build Status](https://travis-ci.org/supermurat/super-firebase-angular.svg?branch=master)](https://travis-ci.org/supermurat/super-firebase-angular)
[![BrowserStack Status](https://automate.browserstack.com/badge.svg?badge_key=NW5WdStCU1RVVVpZOERoaGFFMnc0VWJRVlF3MVBYQ29EQWswWTJ1bmU1ST0tLTB1T3JrNmpFQWpvcDJwTGZoTHF6Snc9PQ==--d4bf8976f4d2485a4971d6606e5a72bd0559a8cb)](https://automate.browserstack.com/public-build/NW5WdStCU1RVVVpZOERoaGFFMnc0VWJRVlF3MVBYQ29EQWswWTJ1bmU1ST0tLTB1T3JrNmpFQWpvcDJwTGZoTHF6Snc9PQ==--d4bf8976f4d2485a4971d6606e5a72bd0559a8cb)
[![Coverage Status](https://coveralls.io/repos/github/supermurat/super-firebase-angular/badge.svg?branch=master)](https://coveralls.io/github/supermurat/super-firebase-angular?branch=master)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/d8bd28c7d9e4499aa0e0cee622fe2352)](https://www.codacy.com/app/supermurat/super-firebase-angular?utm_source=github.com&utm_medium=referral&utm_content=supermurat/super-firebase-angular&utm_campaign=Badge_Grade)
[![Angular Style Guide](https://mgechev.github.io/angular2-style-guide/images/badge.svg)](https://angular.io/styleguide)

[![Dependency Status](https://david-dm.org/supermurat/super-firebase-angular.svg)](https://david-dm.org/supermurat/super-firebase-angular)
[![devDependency Status](https://david-dm.org/supermurat/super-firebase-angular/dev-status.svg)](https://david-dm.org/supermurat/super-firebase-angular?type=dev)

[![GitHub issues](https://img.shields.io/github/issues/supermurat/super-firebase-angular.svg)](https://github.com/supermurat/super-firebase-angular/issues)
[![GitHub forks](https://img.shields.io/github/forks/supermurat/super-firebase-angular.svg)](https://github.com/supermurat/super-firebase-angular/network)
[![GitHub stars](https://img.shields.io/github/stars/supermurat/super-firebase-angular.svg)](https://github.com/supermurat/super-firebase-angular/stargazers)
[![GitHub license](https://img.shields.io/github/license/supermurat/super-firebase-angular.svg)](https://github.com/supermurat/super-firebase-angular/blob/master/LICENSE)

[![repo size](https://img.shields.io/github/repo-size/supermurat/super-firebase-angular.svg)](https://github.com/supermurat/super-firebase-angular)
[![last commit](https://img.shields.io/github/last-commit/supermurat/super-firebase-angular.svg)](https://github.com/supermurat/super-firebase-angular/commits/master)
[![commit activity](https://img.shields.io/github/commit-activity/w/supermurat/super-firebase-angular.svg)](https://github.com/supermurat/super-firebase-angular/commits/master)
[![Build Status][badge-url-travis]][badge-lnk-travis]
[![BrowserStack Status][badge-url-browserstack]][badge-lnk-browserstack]
[![Coverage Status][badge-url-coveralls]][badge-lnk-coveralls]
[![Codacy Badge][badge-url-codacy]][badge-lnk-codacy]
[![Angular Style Guide][badge-url-styleguide]][badge-lnk-styleguide]

[![Dependency Status][badge-url-david-dm]][badge-lnk-david-dm]
[![devDependency Status][badge-url-david-dm-dev]][badge-lnk-david-dm-dev]
[![GitHub issues][badge-url-issues]][badge-lnk-issues]
[![GitHub forks][badge-url-network]][badge-lnk-network]
[![GitHub stars][badge-url-stargazers]][badge-lnk-stargazers]
[![GitHub license][badge-url-license]][badge-lnk-license]

[![repo size][badge-url-repo-size]][badge-lnk-repo-size]
[![last commit][badge-url-last-commit]][badge-lnk-last-commit]
[![commit activity][badge-url-commit-activity]][badge-lnk-commit-activity]

# super-firebase-angular
All-In-One firebase and angular project.
Expand Down Expand Up @@ -73,11 +72,11 @@ npm run deploy:prod
```

## Angular CLI
get more info [`angular-cli/wiki`](https://github.com/angular/angular-cli/wiki)
get more info [`angular-cli/wiki`][site-angular-cli-wiki]

ng generate [`angular-cli/wiki/generate`](https://github.com/angular/angular-cli/wiki/generate)
ng generate [`angular-cli/wiki/generate`][site-angular-cli-generate]

stories [`angular-cli/wiki/stories`](https://github.com/angular/angular-cli/wiki/stories)
stories [`angular-cli/wiki/stories`][site-angular-cli-stories]

## Contributing
- Fork this repository to your GitHub account
Expand All @@ -92,7 +91,49 @@ stories [`angular-cli/wiki/stories`](https://github.com/angular/angular-cli/wiki
MIT

## Thanks to
| [![Google Firebase](/docs/images/firebase.png "Google Firebase")](https://firebase.google.com/) | [![JetBrains](/docs/images/jetbrains.png "JetBrains")](https://www.jetbrains.com/?from=SuperFirebaseAngular) |
| --- | --- |
| [![Browser Stack](/docs/images/browserstack.png "Browser Stack")](https://www.browserstack.com/) | [![Travis-CI](/docs/images/travis-ci.png "Travis-CI")](https://www.travis-ci.org/) |
| [![Codacy](/docs/images/codacy.png "Codacy")](https://www.codacy.com/) | [![Coveralls](/docs/images/coveralls.png "Coveralls")](https://coveralls.io/) |
| [![Google Firebase](/docs/images/firebase.png "Google Firebase")][site-firebase] | [![JetBrains](/docs/images/jetbrains.png "JetBrains")][site-jetbrains] |
| --- | --- |
| [![Browser Stack](/docs/images/browserstack.png "Browser Stack")][site-browserstack] | [![Travis-CI](/docs/images/travis-ci.png "Travis-CI")][site-travis-ci] |
| [![Codacy](/docs/images/codacy.png "Codacy")][site-codacy] | [![Coveralls](/docs/images/coveralls.png "Coveralls")][site-coveralls] |

[badge-url-travis]: https://travis-ci.org/supermurat/super-firebase-angular.svg?branch=master
[badge-lnk-travis]: https://travis-ci.org/supermurat/super-firebase-angular
[badge-url-browserstack]: https://automate.browserstack.com/badge.svg?badge_key=NW5WdStCU1RVVVpZOERoaGFFMnc0VWJRVlF3MVBYQ29EQWswWTJ1bmU1ST0tLTB1T3JrNmpFQWpvcDJwTGZoTHF6Snc9PQ==--d4bf8976f4d2485a4971d6606e5a72bd0559a8cb
[badge-lnk-browserstack]: https://automate.browserstack.com/public-build/NW5WdStCU1RVVVpZOERoaGFFMnc0VWJRVlF3MVBYQ29EQWswWTJ1bmU1ST0tLTB1T3JrNmpFQWpvcDJwTGZoTHF6Snc9PQ==--d4bf8976f4d2485a4971d6606e5a72bd0559a8cb
[badge-url-coveralls]: https://coveralls.io/repos/github/supermurat/super-firebase-angular/badge.svg?branch=master
[badge-lnk-coveralls]: https://coveralls.io/github/supermurat/super-firebase-angular?branch=master
[badge-url-codacy]: https://api.codacy.com/project/badge/Grade/d8bd28c7d9e4499aa0e0cee622fe2352
[badge-lnk-codacy]: https://www.codacy.com/app/supermurat/super-firebase-angular?utm_source=github.com&utm_medium=referral&utm_content=supermurat/super-firebase-angular&utm_campaign=Badge_Grade
[badge-url-styleguide]: https://mgechev.github.io/angular2-style-guide/images/badge.svg
[badge-lnk-styleguide]: https://angular.io/styleguide

[badge-url-david-dm]: https://david-dm.org/supermurat/super-firebase-angular.svg
[badge-lnk-david-dm]: https://david-dm.org/supermurat/super-firebase-angular
[badge-url-david-dm-dev]: https://david-dm.org/supermurat/super-firebase-angular/dev-status.svg
[badge-lnk-david-dm-dev]: https://david-dm.org/supermurat/super-firebase-angular?type=dev
[badge-url-issues]: https://img.shields.io/github/issues/supermurat/super-firebase-angular.svg
[badge-lnk-issues]: https://github.com/supermurat/super-firebase-angular/issues
[badge-url-network]: https://img.shields.io/github/forks/supermurat/super-firebase-angular.svg
[badge-lnk-network]: https://github.com/supermurat/super-firebase-angular/network
[badge-url-stargazers]: https://img.shields.io/github/stars/supermurat/super-firebase-angular.svg
[badge-lnk-stargazers]: https://github.com/supermurat/super-firebase-angular/stargazers
[badge-url-license]: https://img.shields.io/github/license/supermurat/super-firebase-angular.svg
[badge-lnk-license]: https://github.com/supermurat/super-firebase-angular/blob/master/LICENSE

[badge-url-repo-size]: https://img.shields.io/github/repo-size/supermurat/super-firebase-angular.svg
[badge-lnk-repo-size]: https://github.com/supermurat/super-firebase-angular
[badge-url-last-commit]: https://img.shields.io/github/last-commit/supermurat/super-firebase-angular.svg
[badge-lnk-last-commit]: https://github.com/supermurat/super-firebase-angular/commits/master
[badge-url-commit-activity]: https://img.shields.io/github/commit-activity/w/supermurat/super-firebase-angular.svg
[badge-lnk-commit-activity]: https://github.com/supermurat/super-firebase-angular/commits/master

[site-angular-cli-wiki]: https://github.com/angular/angular-cli/wiki
[site-angular-cli-generate]: https://github.com/angular/angular-cli/wiki/generate
[site-angular-cli-stories]: https://github.com/angular/angular-cli/wiki/stories

[site-firebase]: https://firebase.google.com
[site-jetbrains]: https://www.jetbrains.com/?from=SuperFirebaseAngular
[site-browserstack]: https://www.browserstack.com
[site-travis-ci]: https://www.travis-ci.org
[site-codacy]: https://www.codacy.com
[site-coveralls]: https://coveralls.io
8 changes: 4 additions & 4 deletions functions/package.json
Expand Up @@ -6,10 +6,10 @@
"scripts": {
"lint": "tslint --project tsconfig.json",
"build": "tsc --project tsconfig.json",
"serve:beta": "npm run build && firebase serve --project super-murat-beta --only functions",
"serve:prod": "npm run build && firebase serve --project supermurat-com --only functions",
"shell:beta": "npm run build && firebase functions:shell --project super-murat-beta",
"shell:prod": "npm run build && firebase functions:shell --project supermurat-com",
"serve:beta": "ncp ./.env.beta ./.env && npm run build && firebase serve --project super-murat-beta --only functions",
"serve:prod": "ncp ./.env.prod ./.env && npm run build && firebase serve --project supermurat-com --only functions",
"shell:beta": "ncp ./.env.beta ./.env && npm run build && firebase functions:shell --project super-murat-beta",
"shell:prod": "ncp ./.env.prod ./.env && npm run build && firebase functions:shell --project supermurat-com",
"deploy:beta": "firebase deploy --project super-murat-beta --only functions",
"deploy:prod": "firebase deploy --project supermurat-com --only functions",
"logs:beta": "firebase functions:log --project super-murat-beta",
Expand Down
5 changes: 5 additions & 0 deletions functions/src/helpers.ts
Expand Up @@ -116,3 +116,8 @@ export const sendMail = async (mailContent: MailModel, privateConfig: PrivateCon
}
}
});

/** get null instead of undefined because of firestore */
export const getNullInsteadOfUndefined = (value: string): string =>
// tslint:disable-next-line:no-null-keyword
value === undefined ? null : value;
4 changes: 2 additions & 2 deletions functions/src/jobs.spec.ts
Expand Up @@ -680,7 +680,7 @@ describe('Jobs - GoogleAuth', (): void => {
set(data): any {
if (data.result) {
expect(data.result.backupUrl)
.toContain('gs://undefined.appspot.com/backups/firestore/');
.toContain('gs://not-a-project.appspot.com/backups/firestore/');
expect(data.isSucceed)
.toEqual(true);
}
Expand All @@ -693,7 +693,7 @@ describe('Jobs - GoogleAuth', (): void => {
const res = await wrapped(snap);

expect(res.result.backupUrl)
.toContain('gs://undefined.appspot.com/backups/firestore/');
.toContain('gs://not-a-project.appspot.com/backups/firestore/');
expect(res.isSucceed)
.toEqual(true);
});
Expand Down
18 changes: 10 additions & 8 deletions functions/src/jobs.ts
Expand Up @@ -8,6 +8,7 @@ import * as moment from 'moment';
import { EnumChangefreq, SitemapItem, SitemapStream, streamToPromise } from 'sitemap';

import { FUNCTIONS_CONFIG } from './config';
import { getNullInsteadOfUndefined } from './helpers';
import { JobModel, LocaleAlternateModel } from './models/';
import { playAtPlayground } from './playground';

Expand Down Expand Up @@ -92,7 +93,7 @@ const generateSEOData = async (jobData: JobModel): Promise<any> => {
processedDocCount++;
processedDocs.push({
path: `${collectionPrefix}_${cultureCode}/${mainDoc.id}`,
old: mData.seo, new: seo});
old: getNullInsteadOfUndefined(mData.seo), new: seo});
});
}

Expand Down Expand Up @@ -126,7 +127,7 @@ const generateJsonLDs = async (jobData: JobModel): Promise<any> => {
processedDocCount++;
processedDocs.push({
path: `${collectionPrefix}_${cultureCode}/${mainDoc.id}`,
old: mData.jsonLDs, new: jsonLDs});
old: getNullInsteadOfUndefined(mData.jsonLDs), new: jsonLDs});
});
}

Expand Down Expand Up @@ -183,7 +184,7 @@ const generateLocales = async (jobData: JobModel): Promise<any> => {
processedDocCount++;
processedDocs.push({
path: `${collectionPrefix}_${cultureCode}/${mainDoc.id}`,
old: mData.locales, new: locales});
old: getNullInsteadOfUndefined(mData.locales), new: locales});
})
);
}
Expand Down Expand Up @@ -225,7 +226,7 @@ const generateDescription = async (jobData: JobModel): Promise<any> => {
processedDocCount++;
processedDocs.push({
path: `${collectionPrefix}_${cultureCode}/${mainDoc.id}`,
old: mData.description, new: description});
old: getNullInsteadOfUndefined(mData.description), new: description});
});
}

Expand All @@ -243,7 +244,8 @@ const generateDescription = async (jobData: JobModel): Promise<any> => {
const fixPublicFilesPermissions = async (jobData: JobModel): Promise<any> => {
console.log('fixPublicFilesPermissions is started');
const storage = new Storage();
const bucketName = `${process.env.GCP_PROJECT}.appspot.com`;
const projectId = process.env.GCLOUD_PROJECT;
const bucketName = `${projectId}.appspot.com`;
const bucket = admin.storage().bucket(bucketName);

let processedDocCount = 0;
Expand Down Expand Up @@ -338,7 +340,7 @@ const recalculateOrderNo = async (jobData: JobModel): Promise<any> => {
processedDocCount++;
processedDocs.push({
path: `${collectionPrefix}_${cultureCode}/${mainDoc.id}`,
old: mainDoc.data().orderNo, new: -1});
old: getNullInsteadOfUndefined(mainDoc.data().orderNo), new: -1});
});
}
}));
Expand Down Expand Up @@ -367,7 +369,7 @@ const recalculateOrderNo = async (jobData: JobModel): Promise<any> => {
processedDocCount++;
processedDocs.push({
path: `${collectionPrefix}_${cultureCode}/${doc.mainDoc.id}`,
old: doc.orderNo, new: doc.newOrderNo});
old: getNullInsteadOfUndefined(doc.orderNo), new: doc.newOrderNo});
});
}
}));
Expand Down Expand Up @@ -445,7 +447,7 @@ export const backupFirestore = async (jobData: JobModel): Promise<any> => {
]
});
const client = await auth.getClient();
const projectId = process.env.GCP_PROJECT;
const projectId = process.env.GCLOUD_PROJECT;
const bucketName = `${projectId}.appspot.com`;
const backupFileName = new Date().toISOString();
const backupUrl = `gs://${bucketName}/backups/firestore/${backupFileName}.json`;
Expand Down
2 changes: 1 addition & 1 deletion functions/src/triggers.spec.ts
Expand Up @@ -169,7 +169,7 @@ describe('Triggers - Pub/Sub', (): void => {
const res = await wrapped({});

expect(res.backupUrl)
.toContain('gs://undefined.appspot.com/backups/firestore/');
.toContain('gs://not-a-project.appspot.com/backups/firestore/');
});

it('should fail backupFirestore', async () => {
Expand Down

0 comments on commit 230f0cc

Please sign in to comment.