| import apiClient from './apiClient'; |
|
|
| class LinkedInAuthService { |
| |
| |
| |
| |
| async initiateAuth() { |
| try { |
| const response = await apiClient.post('/accounts', { |
| account_name: 'LinkedIn Account', |
| social_network: 'LinkedIn' |
| }); |
| |
| if (response.data.success && response.data.authorization_url) { |
| return { |
| success: true, |
| authorization_url: response.data.authorization_url, |
| state: response.data.state |
| }; |
| } else { |
| throw new Error(response.data.message || 'Failed to initiate LinkedIn authentication'); |
| } |
| } catch (error) { |
| return { |
| success: false, |
| message: error.response?.data?.message || 'Failed to start LinkedIn authentication' |
| }; |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| |
| async handleCallback(code, state) { |
| try { |
| const response = await apiClient.post('/accounts/callback', { |
| code: code, |
| state: state, |
| social_network: 'LinkedIn' |
| }); |
| |
| return response.data; |
| } catch (error) { |
| return { |
| success: false, |
| message: error.response?.data?.message || 'Failed to complete LinkedIn authentication' |
| }; |
| } |
| } |
|
|
| |
| |
| |
| |
| async getLinkedInAccounts() { |
| try { |
| const response = await apiClient.get('/accounts'); |
| |
| |
| let accounts = []; |
| |
| if (response.data && response.data.success && response.data.accounts) { |
| |
| accounts = response.data.accounts; |
| } else if (Array.isArray(response.data)) { |
| |
| accounts = response.data; |
| } else { |
| throw new Error('Unexpected response format from API'); |
| } |
| |
| |
| const linkedinAccounts = accounts.filter( |
| account => account && account.social_network && account.social_network.toLowerCase() === 'linkedin' |
| ); |
| |
| return { success: true, accounts: linkedinAccounts }; |
| } catch (error) { |
| return { success: false, accounts: [], message: error.response?.data?.message || 'Failed to fetch LinkedIn accounts' }; |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| async deleteLinkedInAccount(accountId) { |
| try { |
| const response = await apiClient.delete(`/accounts/${accountId}`); |
| |
| return response.data; |
| } catch (error) { |
| return { |
| success: false, |
| message: error.response?.data?.message || 'Failed to delete LinkedIn account' |
| }; |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| async setPrimaryAccount(accountId) { |
| try { |
| const response = await apiClient.put(`/accounts/${accountId}/primary`); |
| |
| return response.data; |
| } catch (error) { |
| return { |
| success: false, |
| message: error.response?.data?.message || 'Failed to set primary account' |
| }; |
| } |
| } |
| } |
|
|
| export default new LinkedInAuthService(); |