Skip to content

Commit

Permalink
Merge pull request #2094 from doccano/fix/social-login
Browse files Browse the repository at this point in the history
Add error handling to social login
  • Loading branch information
Hironsan committed Dec 12, 2022
2 parents 7c447ad + 0daad7e commit 4788388
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 35 deletions.
34 changes: 19 additions & 15 deletions frontend/components/auth/SocialLogin.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,32 +15,36 @@
</template>

<script lang="ts">
import Vue from 'vue'
import Vue, { PropType } from 'vue'
export default Vue.extend({
props: {
fetchSocialLink: {
type: Function,
default: () => Promise
type: Function as PropType<() => Promise<any>>,
required: true
}
},
data() {
return {
social: {}
social: {} as any
}
},
async mounted() {
const response = await this.fetchSocialLink()
this.social = Object.entries(response)
.map(([key, value]: any) => ({
provider: key,
value
}))
.filter((item) => !!item.value?.authorize_url)
.map((item: any) => ({
...item,
href: `${item.value.authorize_url}&redirect_uri=${location.origin}${item.value.redirect_path}`
}))
try {
const response = await this.fetchSocialLink()
this.social = Object.entries(response)
.map(([key, value]: any) => ({
provider: key,
value
}))
.filter((item) => !!item.value?.authorize_url)
.map((item: any) => ({
...item,
href: `${item.value.authorize_url}&redirect_uri=${location.origin}${item.value.redirect_path}`
}))
} catch (e) {
console.error(e)
}
}
})
</script>
5 changes: 2 additions & 3 deletions frontend/pages/auth.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
<v-row align="center" justify="center">
<v-col cols="12" sm="8" md="4">
<form-login :login="authenticateUser" />

<social-login :fetch-social-link="fetchSocialLink" />
</v-col>
</v-row>
Expand All @@ -15,10 +14,10 @@
</template>

<script lang="ts">
import Vue from 'vue'
import { mapActions } from 'vuex'
import FormLogin from '@/components/auth/FormLogin.vue'
import SocialLogin from '@/components/auth/SocialLogin.vue'
import Vue from 'vue'
import { mapActions } from 'vuex'
export default Vue.extend({
components: {
Expand Down
32 changes: 16 additions & 16 deletions frontend/plugins/services.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
import { Plugin } from '@nuxt/types'
import { AuthApplicationService } from '@/services/application/auth/authApplicationService'
import { ConfigApplicationService } from '@/services/application/autoLabeling/configApplicationService'
import { TemplateApplicationService } from '@/services/application/autoLabeling/templateApplicationService'
import { TaskStatusApplicationService } from '@/services/application/celery/taskStatusApplicationService'
import { CatalogApplicationService } from '@/services/application/upload/catalogApplicationService'
import { ParseApplicationService } from '@/services/application/upload/parseApplicationService'
import { CommentApplicationService } from '@/services/application/comment/commentApplicationService'
import { DownloadApplicationService } from '@/services/application/download/downloadApplicationService'
import { DownloadFormatApplicationService } from '@/services/application/download/downloadFormatApplicationService'
import { ExampleApplicationService } from '@/services/application/example/exampleApplicationService'
import { LabelApplicationService } from '@/services/application/label/labelApplicationService'
import { MemberApplicationService } from '@/services/application/member/memberApplicationService'
import { UserApplicationService } from '@/services/application/user/userApplicationService'
import { RoleApplicationService } from '@/services/application/role/roleApplicationService'
import { ProjectApplicationService } from '@/services/application/project/projectApplicationService'
import { CommentApplicationService } from '@/services/application/comment/commentApplicationService'
import { MetricsApplicationService } from '@/services/application/metrics/metricsApplicationService'
import { ExampleApplicationService } from '@/services/application/example/exampleApplicationService'
import { OptionApplicationService } from '@/services/application/option/optionApplicationService'
import { SequenceLabelingApplicationService } from '@/services/application/tasks/sequenceLabeling/sequenceLabelingApplicationService'
import { Seq2seqApplicationService } from '@/services/application/tasks/seq2seq/seq2seqApplicationService'
import { ConfigApplicationService } from '@/services/application/autoLabeling/configApplicationService'
import { TemplateApplicationService } from '@/services/application/autoLabeling/templateApplicationService'
import { TextClassificationService } from '@/services/application/tasks/textClassification/textClassificationApplicationService'
import { AuthApplicationService } from '@/services/application/auth/authApplicationService'
import { DownloadApplicationService } from '@/services/application/download/downloadApplicationService'
import { DownloadFormatApplicationService } from '@/services/application/download/downloadFormatApplicationService'
import { ProjectApplicationService } from '@/services/application/project/projectApplicationService'
import { RoleApplicationService } from '@/services/application/role/roleApplicationService'
import { TagApplicationService } from '@/services/application/tag/tagApplicationService'
import { BoundingBoxApplicationService } from '@/services/application/tasks/boundingBox/boundingBoxApplicationService'
import { SegmentationApplicationService } from '@/services/application/tasks/segmentation/segmentationApplicationService'
import { Seq2seqApplicationService } from '@/services/application/tasks/seq2seq/seq2seqApplicationService'
import { SequenceLabelingApplicationService } from '@/services/application/tasks/sequenceLabeling/sequenceLabelingApplicationService'
import { TextClassificationService } from '@/services/application/tasks/textClassification/textClassificationApplicationService'
import { CatalogApplicationService } from '@/services/application/upload/catalogApplicationService'
import { ParseApplicationService } from '@/services/application/upload/parseApplicationService'
import { UserApplicationService } from '@/services/application/user/userApplicationService'
import { Plugin } from '@nuxt/types'
import { repositories } from './repositories'

export interface Services {
Expand Down
2 changes: 1 addition & 1 deletion frontend/repositories/auth/apiAuthRepository.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import ApiService from '@/services/api.service'
import { AuthRepository } from '@/domain/models/auth/authRepository'
import ApiService from '@/services/api.service'

export class APIAuthRepository implements AuthRepository {
constructor(private readonly request = ApiService) {}
Expand Down

0 comments on commit 4788388

Please sign in to comment.