diff --git a/api/src/main/kotlin/edu/wgu/osmt/api/model/ApiKeyword.kt b/api/src/main/kotlin/edu/wgu/osmt/api/model/ApiKeyword.kt index c9d25c1fc..ed2ea7b46 100644 --- a/api/src/main/kotlin/edu/wgu/osmt/api/model/ApiKeyword.kt +++ b/api/src/main/kotlin/edu/wgu/osmt/api/model/ApiKeyword.kt @@ -11,8 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired @JsonInclude(JsonInclude.Include.ALWAYS) class ApiKeyword( private val keyword: Keyword, - private val totalSkills: Long?, - private val appConfig: AppConfig + private val totalSkills: Long? ) { @get:JsonProperty val id: Long? @@ -38,30 +37,22 @@ class ApiKeyword( val skillCount: Long? get() = totalSkills - @get:JsonProperty - val publicUrl: String - get() = "${appConfig.baseUrl}/api/metadata/keywords/${id}" - companion object { fun fromDao( - keywordDao: KeywordDao, - appConfig: AppConfig + keywordDao: KeywordDao ): ApiKeyword { return ApiKeyword( keyword = keywordDao.toModel(), - totalSkills = keywordDao.skills.count(), - appConfig = appConfig + totalSkills = keywordDao.skills.count() ) } fun fromModel( - keyword: Keyword, - appConfig: AppConfig + keyword: Keyword ): ApiKeyword { return ApiKeyword( totalSkills = keyword.id?.let { KeywordDao.findById(it)?.skills?.count() ?: 0 }, - keyword = keyword, - appConfig = appConfig + keyword = keyword ) } } diff --git a/api/src/main/kotlin/edu/wgu/osmt/keyword/KeywordController.kt b/api/src/main/kotlin/edu/wgu/osmt/keyword/KeywordController.kt index f611750ee..47026d66d 100644 --- a/api/src/main/kotlin/edu/wgu/osmt/keyword/KeywordController.kt +++ b/api/src/main/kotlin/edu/wgu/osmt/keyword/KeywordController.kt @@ -49,7 +49,6 @@ class KeywordController @Autowired constructor( val keywordEsRepo: KeywordEsRepo, val richSkillEsRepo: RichSkillEsRepo, val taskMessageService: TaskMessageService, - val appConfig: AppConfig, val oAuthHelper: OAuthHelper, ) { @@ -75,16 +74,7 @@ class KeywordController @Autowired constructor( return ResponseEntity.status(200) .headers(responseHeaders) - .body(searchResults.map { ApiKeyword.fromModel(it.content, appConfig) }.toList()) - } - - @RequestMapping(path = [ - "${RoutePaths.API}${RoutePaths.UNVERSIONED}${RoutePaths.KEYWORD_DETAIL}" - ], - produces = [MediaType.TEXT_HTML_VALUE]) - fun byUUIDHtmlView(@PathVariable id: String): String { - System.out.println("here by uuid html view keyword") - return "forward:${RoutePaths.UNVERSIONED}/metadata/keywords/$id" + .body(searchResults.map { ApiKeyword.fromModel(it.content) }.toList()) } @GetMapping( @@ -114,7 +104,7 @@ class KeywordController @Autowired constructor( return ResponseEntity .status(HttpStatus.OK) - .body(keywordRepository.createFromApi(apiKeywordUpdate)?.let { ApiKeyword(it.toModel(), it.skills.count(), appConfig) }) + .body(keywordRepository.createFromApi(apiKeywordUpdate)?.let { ApiKeyword(it.toModel(), it.skills.count()) }) } @PostMapping( @@ -136,7 +126,7 @@ class KeywordController @Autowired constructor( oAuthHelper.readableUserName(user) ) ?.let { - ApiKeyword(it.toModel(), it.skills.count(), appConfig) + ApiKeyword(it.toModel(), it.skills.count()) } ) } @@ -159,7 +149,7 @@ class KeywordController @Autowired constructor( private fun byId( id: Long, ): ApiKeyword? { - val found = keywordRepository.findById(id)?.let { ApiKeyword(it.toModel(), it.skills.count(), appConfig) } + val found = keywordRepository.findById(id)?.let { ApiKeyword(it.toModel(), it.skills.count()) } return found } diff --git a/api/src/main/kotlin/edu/wgu/osmt/security/SecurityConfig.kt b/api/src/main/kotlin/edu/wgu/osmt/security/SecurityConfig.kt index e47974934..8f65d2471 100644 --- a/api/src/main/kotlin/edu/wgu/osmt/security/SecurityConfig.kt +++ b/api/src/main/kotlin/edu/wgu/osmt/security/SecurityConfig.kt @@ -85,7 +85,6 @@ class SecurityConfig : WebSecurityConfigurerAdapter() { .mvcMatchers(GET, "${RoutePaths.API}${RoutePaths.API_V3}${RoutePaths.SKILL_DETAIL}", "${RoutePaths.API}${RoutePaths.API_V2}${RoutePaths.SKILL_DETAIL}", "${RoutePaths.API}${RoutePaths.UNVERSIONED}${RoutePaths.SKILL_DETAIL}").permitAll() - .mvcMatchers(GET,"${RoutePaths.API}${RoutePaths.UNVERSIONED}${RoutePaths.KEYWORD_DETAIL}").permitAll() .mvcMatchers(GET, "${RoutePaths.API}${RoutePaths.API_V3}${RoutePaths.COLLECTION_DETAIL}", "${RoutePaths.API}${RoutePaths.API_V2}${RoutePaths.COLLECTION_DETAIL}", "${RoutePaths.API}${RoutePaths.UNVERSIONED}${RoutePaths.COLLECTION_DETAIL}").permitAll() diff --git a/api/src/test/kotlin/edu/wgu/osmt/api/model/ApiKeywordTest.kt b/api/src/test/kotlin/edu/wgu/osmt/api/model/ApiKeywordTest.kt index 2fa9045d4..8ed0e21ee 100644 --- a/api/src/test/kotlin/edu/wgu/osmt/api/model/ApiKeywordTest.kt +++ b/api/src/test/kotlin/edu/wgu/osmt/api/model/ApiKeywordTest.kt @@ -1,13 +1,11 @@ package edu.wgu.osmt.api.model -import edu.wgu.osmt.config.AppConfig import edu.wgu.osmt.keyword.Keyword import edu.wgu.osmt.mockdata.MockData import org.assertj.core.api.Assertions import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance -import org.springframework.beans.factory.annotation.Autowired @TestInstance(TestInstance.Lifecycle.PER_CLASS) internal class ApiKeywordTest { @@ -25,7 +23,7 @@ internal class ApiKeywordTest { val kw: Keyword = mockData.getKeywords().first() // Act - val api: ApiKeyword = ApiKeyword(kw, 7, mockData.appConfig) + val api: ApiKeyword = ApiKeyword(kw, 7) // Assert Assertions.assertThat(api.id).isEqualTo(kw.id) diff --git a/ui/src/app/app-routing.module.ts b/ui/src/app/app-routing.module.ts index 0d3267f80..308500cf0 100644 --- a/ui/src/app/app-routing.module.ts +++ b/ui/src/app/app-routing.module.ts @@ -132,6 +132,11 @@ const routes: Routes = [ component: MetadataPublicComponent, canActivate: [AuthGuard] }, + { + path: "named-references/:id", + component: MetadataPublicComponent, + canActivate: [AuthGuard] + }, // admin metadata detail { path: "named-references/:id/manage", @@ -248,10 +253,6 @@ const routes: Routes = [ {path: "collections/:uuid", component: CollectionPublicComponent}, {path: "api/skills/:uuid", component: RichSkillPublicComponent}, {path: "api/collections/:uuid", component: CollectionPublicComponent}, - { - path: "api/metadata/keywords/:id", - component: MetadataPublicComponent - }, /* AUTHENTICATION REDIRECTS */ {path: "login", component: LoginComponent}, // redirect to oauth login diff --git a/ui/src/app/metadata/detail/metadata-manage/action-bar-vertical/metadata-manage-action-bar-vertical.component.html b/ui/src/app/metadata/detail/metadata-manage/action-bar-vertical/metadata-manage-action-bar-vertical.component.html index 03af220a7..399db5323 100644 --- a/ui/src/app/metadata/detail/metadata-manage/action-bar-vertical/metadata-manage-action-bar-vertical.component.html +++ b/ui/src/app/metadata/detail/metadata-manage/action-bar-vertical/metadata-manage-action-bar-vertical.component.html @@ -10,17 +10,6 @@ Edit - - - - - - - Copy Public URL - - {{metadataPublicUrl}} - - diff --git a/ui/src/app/metadata/detail/metadata-manage/action-bar-vertical/metadata-manage-action-bar-vertical.component.ts b/ui/src/app/metadata/detail/metadata-manage/action-bar-vertical/metadata-manage-action-bar-vertical.component.ts index ce2b89686..e0c6a3f52 100644 --- a/ui/src/app/metadata/detail/metadata-manage/action-bar-vertical/metadata-manage-action-bar-vertical.component.ts +++ b/ui/src/app/metadata/detail/metadata-manage/action-bar-vertical/metadata-manage-action-bar-vertical.component.ts @@ -49,16 +49,6 @@ export class ManageMetadataActionBarVerticalComponent implements OnInit { this.setEnableFlags(); } - handleCopyPublicURL(): void { - navigator.clipboard.writeText(this.metadataPublicUrl) - .then( - () => this.toastService.showToast("Success!", "URL copied to clipboard") - ) - .catch( - () => this.toastService.showToast("Error", "Could not copy to clipboard") - ); - } - setEnableFlags(): void { this.canMetadataUpdate = this.authService.isEnabledByRoles(ButtonAction.MetadataUpdate); this.canMetadataCreate = this.authService.isEnabledByRoles(ButtonAction.MetadataCreate); diff --git a/ui/src/app/metadata/detail/metadata-public/metadata-public.component.html b/ui/src/app/metadata/detail/metadata-public/metadata-public.component.html index 62bcdb136..cb6954d9f 100644 --- a/ui/src/app/metadata/detail/metadata-public/metadata-public.component.html +++ b/ui/src/app/metadata/detail/metadata-public/metadata-public.component.html @@ -8,22 +8,6 @@ [showSkillCount]="false" > - - - - - - - Quick Links - Back to top - - - diff --git a/ui/src/app/metadata/named-reference/NamedReference.ts b/ui/src/app/metadata/named-reference/NamedReference.ts index 5caee08f8..eb5d2d50d 100644 --- a/ui/src/app/metadata/named-reference/NamedReference.ts +++ b/ui/src/app/metadata/named-reference/NamedReference.ts @@ -7,7 +7,6 @@ export interface NamedReferenceInterface { url: string framework: string skillCount: number - publicUrl: string } export class ApiNamedReference implements NamedReferenceInterface { @@ -17,7 +16,6 @@ export class ApiNamedReference implements NamedReferenceInterface { type?: MetadataType = MetadataType.Category url = "" skillCount: number = 0 - publicUrl = "" constructor(o?: NamedReferenceInterface) { if (o !== undefined) { diff --git a/ui/test/resource/mock-data.ts b/ui/test/resource/mock-data.ts index 6fc6eb284..1dfe415bd 100644 --- a/ui/test/resource/mock-data.ts +++ b/ui/test/resource/mock-data.ts @@ -62,8 +62,7 @@ export function createMockNamedReference2( url = "http://url123", framework = "Framework" ): NamedReferenceInterface { - return {id,name,type,url,framework, skillCount: 0, publicUrl: url - } + return {id,name,type,url,framework, skillCount: 0} } export const mockJobCodesParents: IJobCode[] = [