Skip to content
Snippets Groups Projects
Commit ac4c7f11 authored by BARBIER Jean-Matthieu's avatar BARBIER Jean-Matthieu
Browse files

[broken] Rewriting en cours...

parent 0a8dbcc0
Branches
Tags
No related merge requests found
......@@ -9,9 +9,9 @@ System.config({
map: {
app: "./src",
lib: "./lib",
'@angular': 'https://npmcdn.com/@angular',
'rxjs': 'https://npmcdn.com/rxjs@5.0.0-beta.6',
"lodash": "https://npmcdn.com/lodash"
'@angular': './node_modules/@angular',
'rxjs': './node_modules/rxjs',
"lodash": "./node_modules/lodash"
},
//packages defines our app package
packages: {
......@@ -58,6 +58,7 @@ System.config({
defaultExtension: 'js'
},
lodash: {
main: "index.js",
defaultExtension: 'js'
}
}
......
......@@ -4,10 +4,10 @@
<head>
<base href="." />
<title>angular2 playground</title>
<script src="https://npmcdn.com/zone.js@0.6.12/dist/zone.js"></script>
<script src="https://npmcdn.com/reflect-metadata@0.1.3/Reflect.js"></script>
<script src="https://npmcdn.com/systemjs@0.19.31/dist/system.js"></script>
<script src="https://npmcdn.com/typescript@1.8.10/lib/typescript.js"></script>
<script src="./node_modules/zone.js/dist/zone.js"></script>
<script src="./node_modules/reflect-metadata/Reflect.js"></script>
<script src="./node_modules/systemjs/dist/system.js"></script>
<script src="./node_modules/typescript/lib/typescript.js"></script>
<script src="config.js"></script>
<script>
System.import('app')
......
{
"name": "simple",
"version": "1.0.0",
"description": "",
"main": "config.js",
"scripts": {
"start": "live-server ./"
},
"author": "",
"license": "ISC",
"dependencies": {
"@angular/common": "^2.0.0-rc.5",
"@angular/compiler": "^2.0.0-rc.5",
"@angular/core": "^2.0.0-rc.5",
"@angular/forms": "^0.3.0",
"@angular/http": "^2.0.0-rc.5",
"@angular/platform-browser": "^2.0.0-rc.5",
"@angular/platform-browser-dynamic": "^2.0.0-rc.5",
"@angular/router": "^3.0.0-rc.1",
"live-server": "^1.1.0",
"lodash": "^4.15.0",
"reflect-metadata": "^0.1.3",
"rxjs": "^5.0.0-beta.6",
"systemjs": "^0.19.31",
"typescript": "^1.8.10",
"zone.js": "^0.6.12"
}
}
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
// our root app component
var core_1 = require("@angular/core");
var platform_browser_1 = require("@angular/platform-browser");
var model_1 = require("./model");
var datastore_module_1 = require("lib/datastore.module");
var App = (function () {
function App(train) {
this.train = train;
this.name = "Train service ?" + this.train.name;
console.log(this.train);
}
App = __decorate([
core_1.Component({
selector: "my-app",
template: "\n <div>\n <h2>Hello {{name}}</h2>\n\n </div>\n ",
})
], App);
return App;
}());
exports.App = App;
var AppModule = (function () {
function AppModule() {
}
AppModule = __decorate([
core_1.NgModule({
imports: [platform_browser_1.BrowserModule, datastore_module_1.RestModule],
declarations: [App],
bootstrap: [App],
providers: [model_1.TrainService]
})
], AppModule);
return AppModule;
}());
exports.AppModule = AppModule;
......@@ -2,7 +2,9 @@
import {Component, NgModule} from "@angular/core";
import {BrowserModule} from "@angular/platform-browser";
import {TrainService} from "./model";
import {HttpModule} from "@angular/http";
import {RestModule} from "lib/datastore.module";
import {REST_BACKEND_CONFIG} from "lib/backends/rest";
import {REST_ADAPTER_CONFIG} from "lib/adapters/resturl";
@Component({
......@@ -16,23 +18,18 @@ import {HttpModule} from "@angular/http";
})
export class App {
constructor(public train: TrainService) {
this.name = "Train service ?" + this.train.name;
this.name = "Train service ?" + this.train.backend._config.host;
console.log(this.train);
}
}
import {DSRestDataService} from "lib/service/service";
import {DSRestBackend} from "lib/backends/rest";
import {DSDefaultSerializer} from "lib/serializers/default";
import {DSRestUrlAdapter} from "lib/adapters/resturl";
import {DSRegister} from "lib/register/register";
import {DSMemoryPersistence} from "lib/persistence/memory";
import {DSJsonParser} from "lib/parsers/json";
import {DSJsonRenderer} from "lib/renderers/json";
@NgModule({
imports: [ BrowserModule, HttpModule],
imports: [ BrowserModule, RestModule],
declarations: [ App ],
bootstrap: [ App ],
providers: [TrainService, DSRestDataService, DSDefaultSerializer, DSRestUrlAdapter, DSRegister, DSMemoryPersistence, DSJsonParser, DSJsonRenderer]
providers: [TrainService,
{provide: REST_BACKEND_CONFIG, useValue: {host: "localhost", port: "8000", scheme: "http"}},
{provide: REST_ADAPTER_CONFIG, useValue: {basePath: "/api/v1/trains"}}]
})
export class AppModule {}
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var model_1 = require("lib/model/model");
var collection_1 = require("lib/collection/collection");
var core_1 = require("@angular/core");
var service_1 = require("lib/service/service");
var Train = (function (_super) {
__extends(Train, _super);
function Train() {
_super.apply(this, arguments);
this.id = 12;
}
return Train;
}(model_1.DSModel));
exports.Train = Train;
var TrainCollection = (function (_super) {
__extends(TrainCollection, _super);
function TrainCollection() {
_super.apply(this, arguments);
}
TrainCollection = __decorate([
core_1.Injectable()
], TrainCollection);
return TrainCollection;
}(collection_1.DSCollection));
exports.TrainCollection = TrainCollection;
var TrainService = (function (_super) {
__extends(TrainService, _super);
function TrainService(backend, serializer, adapter, persistence, registry) {
_super.call(this, backend, serializer, adapter, persistence, registry);
this.backend = backend;
this.serializer = serializer;
this.adapter = adapter;
this.persistence = persistence;
this.registry = registry;
}
TrainService = __decorate([
core_1.Injectable()
], TrainService);
return TrainService;
}(service_1.DSRestDataService));
exports.TrainService = TrainService;
import {DSModel} from "lib/model/model";
import {DSCollection} from "lib/collection/collection";
import {Injectable} from "@angular/core";
import {Injectable, Optional} from "@angular/core";
import {DSRestDataService} from "lib/service/service";
import {DSRestBackend} from "lib/backends/rest";
import {DSDefaultSerializer} from "lib/serializers/default";
......@@ -13,17 +13,29 @@ export class Train extends DSModel {
}
export class TrainCollection extends DSCollection<Train> {
public PARAMS: any = {
adapter: {
baseUrl: "/api/v1/trains"
},
persistence: {
timeout: 3600 * 1000
}
};
protected _serializer:DSDefaultSerializer = new DSDefaultSerializer();
protected _adapter:DSRestUrlAdapter = new DSRestUrlAdapter({
basePath: "/api/v1/trains"
});
}
@Injectable()
export class TrainService extends DSRestDataService<Train> {
constructor(
public backend: DSRestBackend,
public serializer: DSDefaultSerializer,
public adapter: DSRestUrlAdapter,
public persistence: DSMemoryPersistence,
public registry: DSRegister
constructor(public backend: DSRestBackend, // global or semi-global
public serializer: DSDefaultSerializer, // generic or semi-local
public adapter: DSRestUrlAdapter, // local
public persistence: DSMemoryPersistence, // global or semi-global
public registry: DSRegister // global or semi-global
) {
super(backend, serializer, adapter, persistence, registry);
}
......
import {IDSAdapter, IDSAdapterIdentifierParams} from "./interface";
import {IDSRestIdentifier} from "../backends/rest";
import {IDSModel} from "../model/interface";
import {Injectable} from "@angular/core";
import {Injectable, OpaqueToken, Inject} from "@angular/core";
export let REST_ADAPTER_CONFIG = new OpaqueToken("adapter.resturl.config");
export interface IDSRestAdapterConfig {
basePath: string;
}
@Injectable()
export class DSRestUrlAdapter implements IDSAdapter {
constructor(@Inject(REST_ADAPTER_CONFIG) protected _config: IDSRestAdapterConfig) {
}
public identifier(instance: IDSModel, params: IDSAdapterIdentifierParams = {}): IDSRestIdentifier {
return {
url: "http://todo",
......
......@@ -2,7 +2,7 @@ import {Headers, URLSearchParams, RequestOptions, Http} from "@angular/http";
import {Observable} from "rxjs/Rx";
import {IDSBackend} from "./interface";
import {DSJsonParser} from "../parsers/json";
import {Injectable} from "@angular/core";
import {Injectable, OpaqueToken, Inject} from "@angular/core";
import {DSJsonRenderer} from "../renderers/json";
......@@ -12,6 +12,13 @@ export interface IDSRestIdentifier {
headers?: {[index: string]: string};
}
export let REST_BACKEND_CONFIG = new OpaqueToken("backend.res.config");
export interface IDSRestBackendConfig {
host: string;
port: string;
scheme: string;
}
/**
* Makes data requests to a REST API.
......@@ -21,7 +28,8 @@ export class DSRestBackend implements IDSBackend {
constructor(private _http: Http,
protected _parser: DSJsonParser,
protected _renderer: DSJsonRenderer) {
protected _renderer: DSJsonRenderer,
@Inject(REST_BACKEND_CONFIG) protected _config: IDSRestBackendConfig) {
}
public retrieve(identifier: IDSRestIdentifier, params: any): Observable<any> {
......@@ -107,3 +115,5 @@ export class DSRestBackend implements IDSBackend {
});
}
}
import {NgModule} from "@angular/core";
import {HttpModule} from "@angular/http";
import {DSRestBackend} from "./backends/rest";
import {DSRestDataService} from "./service/service";
import {DSDefaultSerializer} from "./serializers/default";
import {DSRestUrlAdapter} from "./adapters/resturl";
import {DSRegister} from "./register/register";
import {DSMemoryPersistence} from "./persistence/memory";
import {DSJsonParser} from "./parsers/json";
import {DSJsonRenderer} from "./renderers/json";
@NgModule({
imports: [
HttpModule
],
providers: [
DSRestBackend,
DSRestDataService,
DSDefaultSerializer,
DSRestUrlAdapter,
DSRegister,
DSMemoryPersistence,
DSJsonParser,
DSJsonRenderer
],
exports: []
})
export class RestModule {
}
\ No newline at end of file
export * from "./adapters/resturl";
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment