Skip to content

Commit

Permalink
Merge pull request #193 from patrick-rodgers/dev
Browse files Browse the repository at this point in the history
Fix for spExtractODataId
  • Loading branch information
patrick-rodgers committed Aug 6, 2018
2 parents 8f98c32 + c553db3 commit f4b0a72
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
17 changes: 12 additions & 5 deletions packages/sp/src/odata.ts
@@ -1,15 +1,22 @@
import { SharePointQueryableConstructor } from "./sharepointqueryable";
import { extend } from "@pnp/common";
import { extend, combinePaths } from "@pnp/common";
import { Logger, LogLevel } from "@pnp/logging";
import { ODataParser, ODataParserBase } from "@pnp/odata";
import { extractWebUrl } from "./utils/extractweburl";

export function spExtractODataId(candidate: any): string {

if (candidate.hasOwnProperty("odata.id")) {
return candidate["odata.id"];
} else if (candidate.hasOwnProperty("__metadata") && candidate.__metadata.hasOwnProperty("id")) {
return candidate.__metadata.id;
if (candidate.hasOwnProperty("odata.metadata") && candidate.hasOwnProperty("odata.editLink")) {
// we are dealign with minimal metadata (default)
return combinePaths(extractWebUrl(candidate["odata.metadata"]), "_api", candidate["odata.editLink"]);
} else if (candidate.hasOwnProperty("odata.editLink")) {
return combinePaths("_api", candidate["odata.editLink"]);
} else if (candidate.hasOwnProperty("__metadata")) {
// we are dealing with verbose, which has an absolute uri
return candidate.__metadata.uri;
} else {
// we are likely dealing with nometadata, so don't error but we won't be able to
// chain off these objects
Logger.write("No uri information found in ODataEntity parsing, chaining will fail for this object.", LogLevel.Warning);
return "";
}
Expand Down
4 changes: 3 additions & 1 deletion packages/sp/src/utils/extractweburl.ts
@@ -1,6 +1,8 @@
import { stringIsNullOrEmpty } from "@pnp/common";

export function extractWebUrl(candidateUrl: string) {

if (candidateUrl === null) {
if (stringIsNullOrEmpty(candidateUrl)) {
return "";
}

Expand Down

0 comments on commit f4b0a72

Please sign in to comment.