MCPcopy Create free account
hub / github.com/ember-learn/ember-api-docs / findRecord

Method findRecord

app/adapters/application.js:41–101  ·  view source on GitHub ↗
(store, { modelName }, id)

Source from the content-addressed store, hash-verified

39 }
40
41 async findRecord(store, { modelName }, id) {
42 let url;
43 let projectName = this.currentProject;
44
45 if (['namespace', 'class', 'module'].indexOf(modelName) > -1) {
46 let [version] =
47 id
48 .replace(`${projectName}-`, '')
49 .match(/^(\d+\.\d+\.\d+(?:-[a-z]+\.\d+)?)/i) || [];
50 let revId = this.metaStore.getRevId(projectName, version, modelName, id);
51
52 let modelNameToUse = modelName;
53 // To account for namespaces that are also classes but not defined properly in yuidocs
54 if (isBlank(revId) && modelNameToUse === 'class') {
55 revId = this.metaStore.getRevId(projectName, version, 'namespace', id);
56 modelNameToUse = 'namespace';
57 }
58
59 if (typeof revId !== 'undefined') {
60 let encodedRevId = encodeURIComponent(revId);
61 url = `json-docs/${projectName}/${version}/${pluralize(
62 modelNameToUse,
63 )}/${encodedRevId}`;
64 } else {
65 throw new Error('Documentation item not found');
66 }
67 } else if (modelName === 'missing') {
68 let version = this.projectService.version;
69 let revId = this.metaStore.getRevId(projectName, version, modelName, id);
70 url = `json-docs/${projectName}/${version}/${pluralize(
71 modelName,
72 )}/${revId}`;
73 } else if (modelName === 'project') {
74 this.currentProject = id;
75 url = `rev-index/${id}`;
76 } else if (modelName === 'project-version') {
77 this.currentProjectVersion = id;
78 url = `rev-index/${id}`;
79 } else {
80 throw new Error('Unexpected model lookup');
81 }
82
83 const base = this.fastboot.isFastBoot
84 ? config.APP.domain
85 : window.location.origin;
86
87 url = `${base}/${url}.json`;
88 try {
89 let response = await fetch(url);
90 if (!response.ok) {
91 throw new Error(
92 `Network response was not ok: ${response.status} ${response.statusText}`,
93 );
94 }
95 let json = await response.json();
96 return json;
97 } catch (error) {
98 console.error(`Failed to fetch or parse JSON from ${url}:`, error);

Callers 8

modelMethod · 0.80
redirectMethod · 0.80
modelMethod · 0.80
modelMethod · 0.80
modelMethod · 0.80
findMethod · 0.80
modelMethod · 0.80
modelMethod · 0.80

Calls 1

getRevIdMethod · 0.80

Tested by

no test coverage detected