diff --git a/frontend/src/components/DomainSelector.vue b/frontend/src/components/DomainSelector.vue index 2fb7c60..1369480 100644 --- a/frontend/src/components/DomainSelector.vue +++ b/frontend/src/components/DomainSelector.vue @@ -12,10 +12,10 @@ :disable="isUnclickable" > - - + {{domain.domainName}} @@ -27,21 +27,28 @@ + \ No newline at end of file diff --git a/frontend/src/stores/useAuthStore.ts b/frontend/src/stores/useAuthStore.ts index 985d893..b7631bc 100644 --- a/frontend/src/stores/useAuthStore.ts +++ b/frontend/src/stores/useAuthStore.ts @@ -1,7 +1,7 @@ import { defineStore } from 'pinia'; import { api } from 'boot/axios'; import { router } from 'src/router'; -import { IDomainInfo } from '../types/ActionTypes'; +import { IDomainInfo } from '../types/DomainTypes'; import { jwtDecode } from 'jwt-decode'; interface UserInfo { firstName: string; @@ -76,11 +76,13 @@ export const useAuthStore = defineStore('auth', { async getUserDomains(): Promise { const resp = await api.get(`api/domain`); const domains = resp.data as any[]; - return domains.map((data) => ({ - id: data.id, - domainName: data.name, - kintoneUrl: data.url, - })); + return domains + .filter(data => data.is_active) + .map((data) => ({ + id: data.id, + domainName: data.name, + kintoneUrl: data.url, + })); }, async getUserInfo():Promise{ const resp = (await api.get(`api/v1/users/me`)).data; diff --git a/frontend/src/stores/useDomainStore.ts b/frontend/src/stores/useDomainStore.ts new file mode 100644 index 0000000..d5c64fa --- /dev/null +++ b/frontend/src/stores/useDomainStore.ts @@ -0,0 +1,23 @@ +import { defineStore } from 'pinia'; +import { api } from 'boot/axios'; +import { IDomainInfo, IDomain } from '../types/DomainTypes'; + +export const useDomainStore = defineStore('domain', { + state: () => ({ + userDomains: [] as IDomainInfo[], + }), + actions: { + async loadUserDomains(): Promise { + const resp = await api.get(`api/domain`); + const domains = resp.data as IDomain[]; + this.userDomains = domains + .filter(data => data.is_active) + .map((data) => ({ + id: data.id, + domainName: data.name, + kintoneUrl: data.url, + })); + return this.userDomains; + }, + }, +}); diff --git a/frontend/src/types/ActionTypes.ts b/frontend/src/types/ActionTypes.ts index 942a25d..3ccdce1 100644 --- a/frontend/src/types/ActionTypes.ts +++ b/frontend/src/types/ActionTypes.ts @@ -1,9 +1,4 @@ import { v4 as uuidv4 } from 'uuid'; -export interface IDomainInfo{ - id:number; - domainName:string; - kintoneUrl:string; -} /** * アプリ情報 diff --git a/frontend/src/types/AppTypes.ts b/frontend/src/types/AppTypes.ts index 4606f0d..496165c 100644 --- a/frontend/src/types/AppTypes.ts +++ b/frontend/src/types/AppTypes.ts @@ -1,8 +1,4 @@ -interface IUser { - first_name: string; - last_name: string; - email: string; -} +import { IUser } from './UserTypes'; export interface IManagedApp { appid: string; diff --git a/frontend/src/types/DomainTypes.ts b/frontend/src/types/DomainTypes.ts new file mode 100644 index 0000000..380081f --- /dev/null +++ b/frontend/src/types/DomainTypes.ts @@ -0,0 +1,35 @@ +import { IDomain } from './ActionTypes'; +import { IUser } from './UserTypes'; + +export interface IDomainInfo { + id: number; + domainName: string; + kintoneUrl: string; +} + +export interface IDomain { + id: number; + tenantid: string; + name: string; + url: string; + kintoneuser: string, + kintonepwd: string, + create_time: string; + update_time: string; + is_active: boolean; + owner: IUser +} + +export interface IDomainSubmit extends Omit { + ownerid: string; +} + +export interface IDomainDisplay { + id: number; + tenantid: string; + name: string; + url: string; + user: string; + password: string; + domainActive: boolean; +} \ No newline at end of file diff --git a/frontend/src/types/UserTypes.ts b/frontend/src/types/UserTypes.ts new file mode 100644 index 0000000..54250b2 --- /dev/null +++ b/frontend/src/types/UserTypes.ts @@ -0,0 +1,8 @@ +export interface IUser { + first_name: string; + last_name: string; + email: string; + is_active: boolean, + is_superuser: boolean, + roles: string[] +}