mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-19 17:14:57 +00:00
#649 Move the ecm-model service methods of the form component inside the js api
This commit is contained in:
parent
3a288c6b1b
commit
a95c98326a
@ -31,7 +31,7 @@ declare let jasmine: any;
|
|||||||
|
|
||||||
describe('EcmModelService', () => {
|
describe('EcmModelService', () => {
|
||||||
|
|
||||||
let service;
|
let service: EcmModelService;
|
||||||
|
|
||||||
beforeAll(() => {
|
beforeAll(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
@ -88,11 +88,11 @@ describe('EcmModelService', () => {
|
|||||||
|
|
||||||
let typeName = 'typeTest';
|
let typeName = 'typeTest';
|
||||||
|
|
||||||
service.createEcmType(typeName, service.MODEL_NAME, service.TYPE_MODEL).subscribe(() => {
|
service.createEcmType(typeName, EcmModelService.MODEL_NAME, EcmModelService.TYPE_MODEL).subscribe(() => {
|
||||||
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('versions/1/cmm/' + service.MODEL_NAME + '/types')).toBeTruthy();
|
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('versions/1/cmm/' + EcmModelService.MODEL_NAME + '/types')).toBeTruthy();
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).name).toEqual(typeName);
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).name).toEqual(typeName);
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).title).toEqual(typeName);
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).title).toEqual(typeName);
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).parentName).toEqual(service.TYPE_MODEL);
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).parentName).toEqual(EcmModelService.TYPE_MODEL);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -108,11 +108,11 @@ describe('EcmModelService', () => {
|
|||||||
let typeName = 'typeTest:testName@#$*!';
|
let typeName = 'typeTest:testName@#$*!';
|
||||||
let cleanName = 'testName';
|
let cleanName = 'testName';
|
||||||
|
|
||||||
service.createEcmType(typeName, service.MODEL_NAME, service.TYPE_MODEL).subscribe(() => {
|
service.createEcmType(typeName, EcmModelService.MODEL_NAME, EcmModelService.TYPE_MODEL).subscribe(() => {
|
||||||
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('versions/1/cmm/' + service.MODEL_NAME + '/types')).toBeTruthy();
|
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('versions/1/cmm/' + EcmModelService.MODEL_NAME + '/types')).toBeTruthy();
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).name).toEqual(cleanName);
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).name).toEqual(cleanName);
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).title).toEqual(typeName);
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).title).toEqual(typeName);
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).parentName).toEqual(service.TYPE_MODEL);
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).parentName).toEqual(EcmModelService.TYPE_MODEL);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -133,8 +133,8 @@ describe('EcmModelService', () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
service.addPropertyToAType(service.MODEL_NAME, typeName, formFields).subscribe(() => {
|
service.addPropertyToAType(EcmModelService.MODEL_NAME, typeName, formFields).subscribe(() => {
|
||||||
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('1/cmm/' + service.MODEL_NAME + '/types/' + typeName + '?select=props')).toBeTruthy();
|
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('1/cmm/' + EcmModelService.MODEL_NAME + '/types/' + typeName + '?select=props')).toBeTruthy();
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).name).toEqual(typeName);
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).name).toEqual(typeName);
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).properties).toEqual([{
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).properties).toEqual([{
|
||||||
name: 'test',
|
name: 'test',
|
||||||
@ -174,8 +174,8 @@ describe('EcmModelService', () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
service.addPropertyToAType(service.MODEL_NAME, typeName, formFields).subscribe(() => {
|
service.addPropertyToAType(EcmModelService.MODEL_NAME, typeName, formFields).subscribe(() => {
|
||||||
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('1/cmm/' + service.MODEL_NAME + '/types/' + cleanName + '?select=props')).toBeTruthy();
|
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('1/cmm/' + EcmModelService.MODEL_NAME + '/types/' + cleanName + '?select=props')).toBeTruthy();
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).name).toEqual(cleanName);
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).name).toEqual(cleanName);
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).properties).toEqual([{
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).properties).toEqual([{
|
||||||
name: 'test',
|
name: 'test',
|
||||||
@ -206,7 +206,7 @@ describe('EcmModelService', () => {
|
|||||||
|
|
||||||
it('Should create ECM model', (done) => {
|
it('Should create ECM model', (done) => {
|
||||||
|
|
||||||
service.createEcmModel(service.MODEL_NAME, service.MODEL_NAMESPACE).subscribe(() => {
|
service.createEcmModel(EcmModelService.MODEL_NAME, EcmModelService.MODEL_NAMESPACE).subscribe(() => {
|
||||||
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('alfresco/versions/1/cmm')).toBeTruthy();
|
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('alfresco/versions/1/cmm')).toBeTruthy();
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).status).toEqual('DRAFT');
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).status).toEqual('DRAFT');
|
||||||
done();
|
done();
|
||||||
@ -221,8 +221,8 @@ describe('EcmModelService', () => {
|
|||||||
|
|
||||||
it('Should activate ECM model', (done) => {
|
it('Should activate ECM model', (done) => {
|
||||||
|
|
||||||
service.activeEcmModel(service.MODEL_NAME).subscribe(() => {
|
service.activeEcmModel(EcmModelService.MODEL_NAME).subscribe(() => {
|
||||||
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('alfresco/versions/1/cmm/' + service.MODEL_NAME + '?select=status')).toBeTruthy();
|
expect(jasmine.Ajax.requests.mostRecent().url.endsWith('alfresco/versions/1/cmm/' + EcmModelService.MODEL_NAME + '?select=status')).toBeTruthy();
|
||||||
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).status).toEqual('ACTIVE');
|
expect(JSON.parse(jasmine.Ajax.requests.mostRecent().params).status).toEqual('ACTIVE');
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
@ -16,9 +16,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { AlfrescoAuthenticationService, AlfrescoSettingsService } from 'ng2-alfresco-core';
|
import { AlfrescoAuthenticationService, AlfrescoApiService } from 'ng2-alfresco-core';
|
||||||
import { Observable } from 'rxjs/Rx';
|
import { Observable } from 'rxjs/Rx';
|
||||||
import { Response, Http, Headers, RequestOptions } from '@angular/http';
|
|
||||||
import { FormModel } from '../components/widgets/core/form.model';
|
import { FormModel } from '../components/widgets/core/form.model';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
@ -29,8 +28,7 @@ export class EcmModelService {
|
|||||||
public static TYPE_MODEL: string = 'cm:folder';
|
public static TYPE_MODEL: string = 'cm:folder';
|
||||||
|
|
||||||
constructor(private authService: AlfrescoAuthenticationService,
|
constructor(private authService: AlfrescoAuthenticationService,
|
||||||
private http: Http,
|
public apiService: AlfrescoApiService) {
|
||||||
public alfrescoSettingsService: AlfrescoSettingsService) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public createEcmTypeForActivitiForm(formName: string, form: FormModel): Observable<any> {
|
public createEcmTypeForActivitiForm(formName: string, form: FormModel): Observable<any> {
|
||||||
@ -126,71 +124,39 @@ export class EcmModelService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public activeEcmModel(modelName: string): Observable<any> {
|
public activeEcmModel(modelName: string): Observable<any> {
|
||||||
let url = `${this.alfrescoSettingsService.ecmHost}/alfresco/api/-default-/private/alfresco/versions/1/cmm/${modelName}?select=status`;
|
return Observable.fromPromise(this.apiService.getInstance().core.customModelApi.activateCustomModel(modelName))
|
||||||
let options = this.getRequestOptions();
|
|
||||||
let body = {status: 'ACTIVE'};
|
|
||||||
|
|
||||||
return this.http
|
|
||||||
.put(url, body, options)
|
|
||||||
.map(this.toJson)
|
.map(this.toJson)
|
||||||
.catch(this.handleError);
|
.catch(this.handleError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public createEcmModel(modelName: string, nameSpace: string): Observable<any> {
|
public createEcmModel(modelName: string, nameSpace: string): Observable<any> {
|
||||||
let url = `${this.alfrescoSettingsService.ecmHost}/alfresco/api/-default-/private/alfresco/versions/1/cmm`;
|
return Observable.fromPromise(this.apiService.getInstance().core.customModelApi.createCustomModel('DRAFT', '', modelName, modelName, nameSpace))
|
||||||
let options = this.getRequestOptions();
|
|
||||||
let body = {
|
|
||||||
status: 'DRAFT', namespaceUri: modelName, namespacePrefix: nameSpace, name: modelName, description: '', author: ''
|
|
||||||
};
|
|
||||||
|
|
||||||
return this.http
|
|
||||||
.post(url, body, options)
|
|
||||||
.map(this.toJson)
|
.map(this.toJson)
|
||||||
.catch(this.handleError);
|
.catch(this.handleError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getEcmModels(): Observable<any> {
|
public getEcmModels(): Observable<any> {
|
||||||
let url = `${this.alfrescoSettingsService.ecmHost}/alfresco/api/-default-/private/alfresco/versions/1/cmm`;
|
return Observable.fromPromise(this.apiService.getInstance().core.customModelApi.getAllCustomModel())
|
||||||
let options = this.getRequestOptions();
|
|
||||||
|
|
||||||
return this.http
|
|
||||||
.get(url, options)
|
|
||||||
.map(this.toJson)
|
.map(this.toJson)
|
||||||
.catch(this.handleError);
|
.catch(this.handleError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getEcmType(modelName: string): Observable<any> {
|
public getEcmType(modelName: string): Observable<any> {
|
||||||
let url = `${this.alfrescoSettingsService.ecmHost}/alfresco/api/-default-/private/alfresco/versions/1/cmm/${modelName}/types`;
|
return Observable.fromPromise(this.apiService.getInstance().core.customModelApi.getAllCustomType(modelName))
|
||||||
let options = this.getRequestOptions();
|
|
||||||
|
|
||||||
return this.http
|
|
||||||
.get(url, options)
|
|
||||||
.map(this.toJson)
|
.map(this.toJson)
|
||||||
.catch(this.handleError);
|
.catch(this.handleError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public createEcmType(typeName: string, modelName: string, parentType: string): Observable<any> {
|
public createEcmType(typeName: string, modelName: string, parentType: string): Observable<any> {
|
||||||
let name = this.cleanNameType(typeName);
|
let name = this.cleanNameType(typeName);
|
||||||
let url = `${this.alfrescoSettingsService.ecmHost}/alfresco/api/-default-/private/alfresco/versions/1/cmm/${modelName}/types`;
|
|
||||||
let options = this.getRequestOptions();
|
|
||||||
|
|
||||||
let body = {
|
return Observable.fromPromise(this.apiService.getInstance().core.customModelApi.createCustomType(modelName, name, parentType, typeName, ''))
|
||||||
name: name,
|
|
||||||
parentName: parentType,
|
|
||||||
title: typeName,
|
|
||||||
description: ''
|
|
||||||
};
|
|
||||||
|
|
||||||
return this.http
|
|
||||||
.post(url, body, options)
|
|
||||||
.map(this.toJson)
|
.map(this.toJson)
|
||||||
.catch(this.handleError);
|
.catch(this.handleError);
|
||||||
}
|
}
|
||||||
|
|
||||||
public addPropertyToAType(modelName: string, typeName: string, formFields: any) {
|
public addPropertyToAType(modelName: string, typeName: string, formFields: any) {
|
||||||
let name = this.cleanNameType(typeName);
|
let name = this.cleanNameType(typeName);
|
||||||
let url = `${this.alfrescoSettingsService.ecmHost}/alfresco/api/-default-/private/alfresco/versions/1/cmm/${modelName}/types/${name}?select=props`;
|
|
||||||
let options = this.getRequestOptions();
|
|
||||||
|
|
||||||
let properties = [];
|
let properties = [];
|
||||||
if (formFields && formFields.values) {
|
if (formFields && formFields.values) {
|
||||||
@ -209,15 +175,10 @@ export class EcmModelService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let body = {
|
return Observable.fromPromise(this.apiService.getInstance().core.customModelApi.addPropertyToType(modelName, name, properties))
|
||||||
name: name,
|
|
||||||
properties: properties
|
|
||||||
};
|
|
||||||
|
|
||||||
return this.http
|
|
||||||
.put(url, body, options)
|
|
||||||
.map(this.toJson)
|
.map(this.toJson)
|
||||||
.catch(this.handleError);
|
.catch(this.handleError);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public cleanNameType(name: string): string {
|
public cleanNameType(name: string): string {
|
||||||
@ -228,23 +189,9 @@ export class EcmModelService {
|
|||||||
return cleanName.replace(/[^a-zA-Z ]/g, '');
|
return cleanName.replace(/[^a-zA-Z ]/g, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
public getHeaders(): Headers {
|
toJson(res: any) {
|
||||||
return new Headers({
|
|
||||||
'Accept': 'application/json',
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
'Authorization': this.authService.getTicketEcmBase64()
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public getRequestOptions(): RequestOptions {
|
|
||||||
let headers = this.getHeaders();
|
|
||||||
return new RequestOptions({headers: headers});
|
|
||||||
}
|
|
||||||
|
|
||||||
toJson(res: Response) {
|
|
||||||
if (res) {
|
if (res) {
|
||||||
let body = res.json();
|
return res || {};
|
||||||
return body || {};
|
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user