Skip to content

Added GetModel functionality and tests #781

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 10, 2020
Merged

Added GetModel functionality and tests #781

merged 3 commits into from
Feb 10, 2020

Conversation

ifielker
Copy link
Contributor

@ifielker ifielker commented Feb 8, 2020

Added Firebase Machine Learning GetModel functionality and tests

Copy link
Contributor

@hiranya911 hiranya911 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks pretty solid. My main points of feedback are:

  1. Remove anything that's not directly related to the getModel API from this PR.
  2. Add unit tests for the API client implementation.


describe('admin.machineLearning', () => {
describe('getModel()', () => {
it('rejects with not-found when the Ruleset does not exist', () => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/Ruleset/Model

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

});

it('rejects with invalid-argument when the ModelId is invalid', () => {
return admin.machineLearning().getModel('abc')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Use something more explicit like invalid-model-id to be clear instead of abc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

'code', 'machine-learning/invalid-argument');
});

it('resolves with existing Model', () => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove from this PR. Makes future additions easier to review.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done.

}

public listModels(options: {listFilter?: string, pageSize?: number, pageToken?: string}) {
throw new Error('NotImplemented');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove all the not-implemented stuff from this PR. Makes the future additions easier to review.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done.


import { PrefixedFirebaseError } from '../utils/error';

export type MachineLearningErrorCode =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove any errors codes that you're not explicitly referencing for now. You can add them in the future PR if they become necessary.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are all possible to come back from the server.

this.published = model.state?.published || false;
this.etag = model.etag;
if (model.modelHash) {
this.modelHash = model.modelHash;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is set conditionally, change the type declaration to be modelHash?. Both here in the class, and also in the d.ts file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done.

@@ -0,0 +1,244 @@
/*!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also add unit tests for machine-learning-api-client.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@hiranya911 hiranya911 assigned ifielker and unassigned hiranya911 Feb 8, 2020
Copy link
Contributor

@hiranya911 hiranya911 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with a couple of nits 👍

}


private getUrl(): Promise<string> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I'd recommend pushing helpers like this to the bottom of the class, so that more important functionality like getResouce appears first.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

});
});

it('should throw when a full platform error response is received', () => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should reject

Here and other similar tests.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@hiranya911 hiranya911 removed their assignment Feb 10, 2020
@ifielker ifielker merged commit 3f2ec51 into ml Feb 10, 2020
@ifielker ifielker deleted the ml-2 branch February 10, 2020 20:51
hiranya911 added a commit that referenced this pull request Apr 20, 2020
* Firebase ML Node.js SDK Structure (#778)

* Firebase ML Node.js SDK Structure
* added tests

* Added GetModel functionality and tests (#781)

* Added GetModel functionality and tests

* Added DeleteModel functionality and tests (#782)

* Added DeleteModel functionality and tests

* Added CreateModel functionality and tests (#788)

* Added CreateModel functionality and tests

* Added UpdateModel, publishModel,and unpublishModel functionality + tests (#791)

* Added UpdateModel, publishModel,and unpublishModel functionality plus tests

* Added ListModels functionality for Firebase ML (#795)

* Added ListModels functionality for Firebase ML

* Firebase ML changed endpoint (#813)

* Add ML APIs to docgen toc (#847)

* Docstring fixes and additions (#848)

* Docstring fixes and additions

* A few edits

* Ml merge (#851)

* Custom Action for sending Tweets (#784)

* Experimental custom Action for sending Tweets

* Added license headers

* Added README file

* Updated package descriptions

* Improve customClaims Typing (#768)

* chore: Experimental release flow based on Actions (#780)

* chore: Experimental release flow based on Actions

* Added tarball verification step; Simplified CI trigger

* Splitting staging and publish phases into separate jobs

* Fleshed out the full workflow

* Trigger RC build

* chore: Migrated to ESlint (#790)

* chore: Migrated to ESlint

* Added licesne header

* Enabling additional ESLint checks (#794)

* chore: Enabling more ESLint checks and fixing errors (#797)

* Fix compilation error in integration tests (#798)

Introduced by #790

* Build integration tests during CI (and release) (#800)

Note that this won't actually run them.

Additionally, the *unit* tests are also built, impying that we're
building them twice (once during this step, and possibly again when
running the unit tests.)

* Fix revokeRefreshTokens to round consistently with the other platforms. (#801)

This also makes it consistent with the comments a few lines above, as
well as the integration test.

* feat(auth): Multi-factor Auth support with SMS for Google Cloud Identity Platform (#804)

Defines multi-factor auth administrative APIs for Google Cloud Identity Platform.

* Defines new MFA types in toc.yaml. (#807)

* Removes special char from index.d.ts. (#808)

This is causing errors in the reference generation process.

* Defines MultiFactor{Create|Update}Settings interfaces. (#809)

* Defines MultiFactor{Create|Update}Settings interfaces.

* chore: Adding a .npmrc file to the root of the repo (#810)

* chore: Adding a .npmrc file to the root of the repo

* Removing the root-level .npmrc file

* [chore] Release 8.10.0 (#811)

* [chore] Release 8.10.0 (take 2) (#812)

* Bump acorn from 6.1.1 to 6.4.1 (#815)

Bumps [acorn](https://github.com/acornjs/acorn) from 6.1.1 to 6.4.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](acornjs/acorn@6.1.1...6.4.1)

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixing Android notification options descriptions (#820)

* Fixing doc bug that conflated sound and tag options for Android notifications.

* Removing duplicate documentation for tag.

* Adding tag details in the right place this time, hopefully.

* chore: Splitting the index.d.ts file into smaller files (#751)

* Splitting the index.d.ts file into smaller files

* Database return type fixed

* chore: Cleaning up package verification scripts (#822)

* chore: Cleaning up package verification scripts

* Added package metadata to test package.json file

* fix(auth): Fixing UserImportRecord typings declaration (#835)

* fix(auth): Fixing UserImportRecord typings declaration

* Fixing more integration test compilation errors

* Trigger CI

* Removed redundant line

* Bump minimist from 1.2.0 to 1.2.3 (#839)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.3.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.3)

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* remerge conflict

Co-authored-by: Hiranya Jayathilaka <[email protected]>
Co-authored-by: William Sedlacek <[email protected]>
Co-authored-by: rsgowman <[email protected]>
Co-authored-by: bojeil-google <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: egilmorez <[email protected]>

* Added Firebase ML API requirements to Contributing doc (#853)

Co-authored-by: Kevin Cheung <[email protected]>
Co-authored-by: Hiranya Jayathilaka <[email protected]>
Co-authored-by: William Sedlacek <[email protected]>
Co-authored-by: rsgowman <[email protected]>
Co-authored-by: bojeil-google <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: egilmorez <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants