diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 1f96b69b..56b1ee37 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -20,7 +20,7 @@ import { AuthService } from "./services/auth.service"; import { AccountsService } from "./services/accounts.service"; import { StreamsService } from "./services/streams.service"; import { StreamingService } from "./services/streaming.service"; -import { RegisteredAppsState } from "./stores/registered-apps.state"; +import { RegisteredAppsState } from "./states/registered-apps.state"; const routes: Routes = [ { path: "", redirectTo: "home", pathMatch: "full" }, diff --git a/src/app/pages/register-new-account/register-new-account.component.ts b/src/app/pages/register-new-account/register-new-account.component.ts index aaa4cf74..d90ae5dc 100644 --- a/src/app/pages/register-new-account/register-new-account.component.ts +++ b/src/app/pages/register-new-account/register-new-account.component.ts @@ -4,7 +4,7 @@ import { Store, Select } from '@ngxs/store'; import { AuthService } from "../../services/auth.service"; import { TokenData } from "../../services/models/mastodon.interfaces"; import { AccountsService } from "../../services/accounts.service"; -import { AddRegisteredApp, RegisteredAppsState, RegisteredAppsStateModel } from "../../stores/registered-apps.state"; +import { AddRegisteredApp, RegisteredAppsState, RegisteredAppsStateModel } from "../../states/registered-apps.state"; import { Observable } from "rxjs"; @Component({ diff --git a/src/app/services/app.service.ts b/src/app/services/app.service.ts new file mode 100644 index 00000000..eb45796b --- /dev/null +++ b/src/app/services/app.service.ts @@ -0,0 +1,37 @@ +import { Injectable } from '@angular/core'; +import { Http, Response, RequestOptions } from '@angular/http'; +import { ApiRoutes } from './models/api.settings'; + +@Injectable() +export class AppService { + private apiRoutes = new ApiRoutes(); + + constructor(private readonly httpService: Http) { + } + + createNewApplication(mastodonUrl: string): Promise<> { + const url = mastodonUrl + this.apiRoutes.createApp; + + const options = new RequestOptions(); + const formData = new FormData(); + + formData.append('client_name', 'Sengi'); + formData.append('redirect_uris', ''); + formData.append('scopes', 'read write follow'); + formData.append('website', 'https://github.com/NicolasConstant/sengi'); + + return this.httpService.post(url, formData, options) + .pipe( + map((res: Response) => { + const result = res.json(); + return result as TokenData; + })) + .toPromise() + + + .then((res: Response) => { + const result = res.json(); + return result as TokenData; + }); + } +} \ No newline at end of file diff --git a/src/app/stores/registered-apps.state.ts b/src/app/states/registered-apps.state.ts similarity index 85% rename from src/app/stores/registered-apps.state.ts rename to src/app/states/registered-apps.state.ts index d358818f..e2095f11 100644 --- a/src/app/stores/registered-apps.state.ts +++ b/src/app/states/registered-apps.state.ts @@ -19,9 +19,13 @@ export class RegisteredAppsState { @Action(AddRegisteredApp) AddRegisteredApp(ctx: StateContext, action: AddRegisteredApp) { const state = ctx.getState(); - ctx.setState({ + ctx.patchState({ registeredApps: [...state.registeredApps, action.app] }); + + // ctx.setState({ + // registeredApps: [...state.registeredApps, action.app] + // }); } }